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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1149) hide show
  1. package/LICENSE +149 -21
  2. package/NOTICE +41 -0
  3. package/dist/agentModel.cjs +1 -1
  4. package/dist/agentModel.d.mts +2 -2
  5. package/dist/agentModel.mjs +1 -2
  6. package/dist/apiContracts.cjs +623 -802
  7. package/dist/apiContracts.cjs.map +1 -1
  8. package/dist/apiContracts.d.mts +277 -615
  9. package/dist/apiContracts.d.mts.map +1 -1
  10. package/dist/apiContracts.mjs +617 -794
  11. package/dist/apiContracts.mjs.map +1 -1
  12. package/dist/askUser.cjs +2 -2
  13. package/dist/askUser.d.mts +2 -2
  14. package/dist/askUser.mjs +1 -2
  15. package/dist/authorTools.mjs +1 -2
  16. package/dist/backgroundWork.cjs +3 -3
  17. package/dist/backgroundWork.d.mts +2 -2
  18. package/dist/backgroundWork.mjs +1 -2
  19. package/dist/bundleAssetPolicy.mjs +1 -2
  20. package/dist/chatgptAuth.cjs +3 -2
  21. package/dist/chatgptAuth.d.mts +3 -2
  22. package/dist/chatgptAuth.mjs +2 -1
  23. package/dist/childProcess.cjs +1 -1
  24. package/dist/childProcess.d.mts +2 -2
  25. package/dist/childProcess.mjs +1 -2
  26. package/dist/childSession.cjs +11 -6
  27. package/dist/childSession.d.mts +3 -3
  28. package/dist/childSession.mjs +3 -3
  29. package/dist/cockpitContainer.mjs +1 -2
  30. package/dist/config.cjs +1 -1
  31. package/dist/config.d.mts +3 -3
  32. package/dist/config.mjs +1 -2
  33. package/dist/contextApi.cjs +1 -0
  34. package/dist/contextApi.d.mts +2 -2
  35. package/dist/contextApi.mjs +2 -2
  36. package/dist/contextContributions.cjs +4 -4
  37. package/dist/contextContributions.d.mts +3 -3
  38. package/dist/contextContributions.mjs +3 -3
  39. package/dist/contextDetailStore.cjs +7 -5
  40. package/dist/contextDetailStore.cjs.map +1 -1
  41. package/dist/contextDetailStore.d.mts +2 -1
  42. package/dist/contextDetailStore.d.mts.map +1 -1
  43. package/dist/contextDetailStore.mjs +6 -4
  44. package/dist/contextDetailStore.mjs.map +1 -1
  45. package/dist/contextProjection.cjs +7 -2
  46. package/dist/contextProjection.cjs.map +1 -1
  47. package/dist/contextProjection.d.mts +4 -1
  48. package/dist/contextProjection.d.mts.map +1 -1
  49. package/dist/contextProjection.mjs +5 -2
  50. package/dist/contextProjection.mjs.map +1 -1
  51. package/dist/cordisHost.cjs +11 -11
  52. package/dist/cordisHost.d.mts +2 -2
  53. package/dist/cordisHost.mjs +1 -2
  54. package/dist/delegation.cjs +8 -8
  55. package/dist/delegation.d.mts +2 -2
  56. package/dist/delegation.mjs +1 -2
  57. package/dist/executionBudget.cjs +4 -3
  58. package/dist/executionBudget.cjs.map +1 -1
  59. package/dist/executionBudget.d.mts +2 -2
  60. package/dist/executionBudget.d.mts.map +1 -1
  61. package/dist/executionBudget.mjs +4 -3
  62. package/dist/executionBudget.mjs.map +1 -1
  63. package/dist/extensionFile.cjs +5 -0
  64. package/dist/extensionFile.d.mts +4 -2
  65. package/dist/extensionFile.mjs +4 -2
  66. package/dist/footer.d.mts +2 -2
  67. package/dist/footer.mjs +1 -2
  68. package/dist/headless.cjs +14 -14
  69. package/dist/headless.d.mts +2 -2
  70. package/dist/headless.mjs +1 -2
  71. package/dist/headlessHub.cjs +308 -109
  72. package/dist/headlessHub.cjs.map +1 -1
  73. package/dist/headlessHub.d.mts +71 -36
  74. package/dist/headlessHub.d.mts.map +1 -1
  75. package/dist/headlessHub.mjs +309 -110
  76. package/dist/headlessHub.mjs.map +1 -1
  77. package/dist/headlessProtocol.cjs +327 -0
  78. package/dist/headlessProtocol.cjs.map +1 -0
  79. package/dist/headlessProtocol.d.mts +30 -0
  80. package/dist/headlessProtocol.d.mts.map +1 -0
  81. package/dist/headlessProtocol.mjs +326 -0
  82. package/dist/headlessProtocol.mjs.map +1 -0
  83. package/dist/headlessServer.cjs +166 -151
  84. package/dist/headlessServer.cjs.map +1 -1
  85. package/dist/headlessServer.d.mts +13 -5
  86. package/dist/headlessServer.d.mts.map +1 -1
  87. package/dist/headlessServer.mjs +166 -151
  88. package/dist/headlessServer.mjs.map +1 -1
  89. package/dist/headlessSessionHost.d.mts +58 -21
  90. package/dist/headlessSessionHost.d.mts.map +1 -1
  91. package/dist/help.cjs +20 -20
  92. package/dist/help.d.mts +2 -2
  93. package/dist/help.mjs +2 -2
  94. package/dist/history.cjs +16 -20
  95. package/dist/history.d.mts +9 -7
  96. package/dist/history.mjs +6 -7
  97. package/dist/historyOwnership.cjs.map +1 -1
  98. package/dist/historyOwnership.d.mts +1 -1
  99. package/dist/historyOwnership.mjs.map +1 -1
  100. package/dist/hubChannel.cjs +9 -0
  101. package/dist/hubChannel.d.mts +3 -2
  102. package/dist/hubChannel.mjs +3 -2
  103. package/dist/index.cjs +26 -28
  104. package/dist/index.d.mts +6 -6
  105. package/dist/index.mjs +6 -6
  106. package/dist/interop/chord.mjs +1 -0
  107. package/dist/interop/chordContext.mjs +1 -0
  108. package/dist/json.cjs +11 -5
  109. package/dist/json.d.mts +4 -2
  110. package/dist/json.mjs +4 -2
  111. package/dist/kernel.cjs +1 -1
  112. package/dist/kernel.d.mts +3 -3
  113. package/dist/kernel.mjs +1 -2
  114. package/dist/leader.d.mts +2 -2
  115. package/dist/leader.mjs +1 -2
  116. package/dist/logSinkTelemetry.mjs +1 -2
  117. package/dist/machineApi.cjs +80 -74
  118. package/dist/machineApi.cjs.map +1 -1
  119. package/dist/machineApi.d.mts +5 -2
  120. package/dist/machineApi.d.mts.map +1 -1
  121. package/dist/machineApi.mjs +78 -71
  122. package/dist/machineApi.mjs.map +1 -1
  123. package/dist/main.cjs +2 -1
  124. package/dist/main.d.mts +2 -1
  125. package/dist/main.mjs +2 -1
  126. package/dist/mcpFacet.d.mts +3 -3
  127. package/dist/mcpProjection.cjs +13 -13
  128. package/dist/mcpProjection.d.mts +2 -2
  129. package/dist/mcpProjection.mjs +1 -2
  130. package/dist/mcpSchemaCost.cjs +4 -4
  131. package/dist/mcpSchemaCost.cjs.map +1 -1
  132. package/dist/mcpSchemaCost.d.mts +2 -2
  133. package/dist/mcpSchemaCost.mjs +4 -4
  134. package/dist/mcpSchemaCost.mjs.map +1 -1
  135. package/dist/mcpSession.cjs +7 -7
  136. package/dist/mcpSession.d.mts +2 -2
  137. package/dist/mcpSession.mjs +1 -2
  138. package/dist/mcpStatus.cjs +2 -2
  139. package/dist/mcpStatus.d.mts +2 -2
  140. package/dist/mcpStatus.mjs +1 -2
  141. package/dist/mcpToolResolver.cjs +3 -3
  142. package/dist/mcpToolResolver.d.mts +2 -2
  143. package/dist/mcpToolResolver.mjs +1 -2
  144. package/dist/mcpWidget.d.mts +2 -2
  145. package/dist/moduleResolution.cjs +43 -8
  146. package/dist/moduleResolution.cjs.map +1 -1
  147. package/dist/moduleResolution.d.mts +10 -1
  148. package/dist/moduleResolution.d.mts.map +1 -1
  149. package/dist/moduleResolution.mjs +40 -7
  150. package/dist/moduleResolution.mjs.map +1 -1
  151. package/dist/narration.cjs +3 -3
  152. package/dist/narration.d.mts +2 -2
  153. package/dist/narration.mjs +1 -2
  154. package/dist/native.cjs +9 -0
  155. package/dist/native.d.mts +4 -3
  156. package/dist/native.mjs +3 -2
  157. package/dist/nodePlatform.cjs +77 -0
  158. package/dist/nodePlatform.cjs.map +1 -0
  159. package/dist/nodePlatform.d.mts +17 -0
  160. package/dist/nodePlatform.d.mts.map +1 -0
  161. package/dist/nodePlatform.mjs +72 -0
  162. package/dist/nodePlatform.mjs.map +1 -0
  163. package/dist/notification.cjs +15 -15
  164. package/dist/notification.d.mts +2 -2
  165. package/dist/notification.mjs +1 -2
  166. package/dist/packageApi.cjs +11 -11
  167. package/dist/packageApi.d.mts +2 -2
  168. package/dist/packageApi.mjs +2 -2
  169. package/dist/packageApiServer.cjs +45 -27
  170. package/dist/packageApiServer.cjs.map +1 -1
  171. package/dist/packageApiServer.d.mts +36 -26
  172. package/dist/packageApiServer.d.mts.map +1 -1
  173. package/dist/packageApiServer.mjs +44 -26
  174. package/dist/packageApiServer.mjs.map +1 -1
  175. package/dist/piSettings.cjs +41 -20
  176. package/dist/piSettings.d.mts +4 -2
  177. package/dist/piSettings.mjs +4 -2
  178. package/dist/platform.cjs +62 -0
  179. package/dist/platform.d.mts +10 -0
  180. package/dist/platform.mjs +10 -0
  181. package/dist/pluginProtocol.cjs +7 -8
  182. package/dist/pluginProtocol.d.mts +2 -2
  183. package/dist/pluginProtocol.mjs +1 -2
  184. package/dist/poPackage.cjs +12 -0
  185. package/dist/poPackage.d.mts +3 -0
  186. package/dist/poPackage.mjs +3 -0
  187. package/dist/profileIdentity.cjs +1 -1
  188. package/dist/profileIdentity.d.mts +2 -2
  189. package/dist/profileIdentity.mjs +1 -2
  190. package/dist/protocol.cjs +3 -3
  191. package/dist/protocol.d.mts +2 -2
  192. package/dist/protocol.mjs +1 -2
  193. package/dist/readiness.cjs +6 -6
  194. package/dist/readiness.d.mts +2 -2
  195. package/dist/readiness.mjs +1 -2
  196. package/dist/remoteApi.cjs.map +1 -1
  197. package/dist/remoteApi.d.mts +2 -2
  198. package/dist/remoteApi.mjs.map +1 -1
  199. package/dist/remoteRuntime.cjs +42 -65
  200. package/dist/remoteRuntime.cjs.map +1 -1
  201. package/dist/remoteRuntime.d.mts +3 -2
  202. package/dist/remoteRuntime.d.mts.map +1 -1
  203. package/dist/remoteRuntime.mjs +41 -62
  204. package/dist/remoteRuntime.mjs.map +1 -1
  205. package/dist/runtimeConfig.cjs +4 -4
  206. package/dist/runtimeConfig.cjs.map +1 -1
  207. package/dist/runtimeConfig.d.mts +10 -9
  208. package/dist/runtimeConfig.d.mts.map +1 -1
  209. package/dist/runtimeConfig.mjs +4 -4
  210. package/dist/runtimeConfig.mjs.map +1 -1
  211. package/dist/runtimeContextApi.cjs +10 -3
  212. package/dist/runtimeContextApi.cjs.map +1 -1
  213. package/dist/runtimeContextApi.d.mts +3 -3
  214. package/dist/runtimeContextApi.d.mts.map +1 -1
  215. package/dist/runtimeContextApi.mjs +10 -3
  216. package/dist/runtimeContextApi.mjs.map +1 -1
  217. package/dist/runtimeCordisHost.cjs +46 -46
  218. package/dist/runtimeCordisHost.cjs.map +1 -1
  219. package/dist/runtimeCordisHost.d.mts +29 -28
  220. package/dist/runtimeCordisHost.d.mts.map +1 -1
  221. package/dist/runtimeCordisHost.mjs +42 -42
  222. package/dist/runtimeCordisHost.mjs.map +1 -1
  223. package/dist/runtimeIdentity.cjs +6 -9
  224. package/dist/runtimeIdentity.cjs.map +1 -1
  225. package/dist/runtimeIdentity.d.mts +5 -1
  226. package/dist/runtimeIdentity.d.mts.map +1 -1
  227. package/dist/runtimeIdentity.mjs +5 -8
  228. package/dist/runtimeIdentity.mjs.map +1 -1
  229. package/dist/runtimeJson.cjs +10 -45
  230. package/dist/runtimeJson.d.mts +3 -22
  231. package/dist/runtimeJson.mjs +3 -39
  232. package/dist/runtimeLogSinkTelemetry.cjs +19 -19
  233. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
  234. package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
  235. package/dist/runtimeLogSinkTelemetry.mjs +19 -19
  236. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
  237. package/dist/runtimePackages.cjs +7 -2
  238. package/dist/runtimePackages.cjs.map +1 -1
  239. package/dist/runtimePackages.d.mts +4 -1
  240. package/dist/runtimePackages.d.mts.map +1 -1
  241. package/dist/runtimePackages.mjs +7 -2
  242. package/dist/runtimePackages.mjs.map +1 -1
  243. package/dist/runtimePiSettings.cjs +40 -263
  244. package/dist/runtimePiSettings.d.mts +3 -72
  245. package/dist/runtimePiSettings.mjs +3 -241
  246. package/dist/runtimeProtocol.cjs +19 -19
  247. package/dist/runtimeProtocol.cjs.map +1 -1
  248. package/dist/runtimeProtocol.d.mts +7 -7
  249. package/dist/runtimeProtocol.d.mts.map +1 -1
  250. package/dist/runtimeProtocol.mjs +17 -17
  251. package/dist/runtimeProtocol.mjs.map +1 -1
  252. package/dist/runtimeTransition.cjs +9 -9
  253. package/dist/runtimeTransition.cjs.map +1 -1
  254. package/dist/runtimeTransition.d.mts +10 -10
  255. package/dist/runtimeTransition.d.mts.map +1 -1
  256. package/dist/runtimeTransition.mjs +7 -7
  257. package/dist/runtimeTransition.mjs.map +1 -1
  258. package/dist/sandboxHarness.mjs +1 -2
  259. package/dist/server.cjs +3 -7
  260. package/dist/server.d.mts +6 -6
  261. package/dist/server.mjs +3 -4
  262. package/dist/serverPlugin.cjs +39 -0
  263. package/dist/serverPlugin.d.mts +12 -0
  264. package/dist/serverPlugin.mjs +11 -0
  265. package/dist/serverTelemetry.cjs +1 -1
  266. package/dist/serverTelemetry.cjs.map +1 -1
  267. package/dist/serverTelemetry.d.mts +2 -2
  268. package/dist/serverTelemetry.mjs +2 -2
  269. package/dist/serverTelemetry.mjs.map +1 -1
  270. package/dist/sessionFilesApi.cjs +41 -37
  271. package/dist/sessionFilesApi.cjs.map +1 -1
  272. package/dist/sessionFilesApi.d.mts +6 -3
  273. package/dist/sessionFilesApi.d.mts.map +1 -1
  274. package/dist/sessionFilesApi.mjs +41 -36
  275. package/dist/sessionFilesApi.mjs.map +1 -1
  276. package/dist/sessionProtocol.cjs +31 -6
  277. package/dist/sessionProtocol.d.mts +8 -3
  278. package/dist/sessionProtocol.mjs +8 -2
  279. package/dist/skills.cjs +5 -5
  280. package/dist/skills.d.mts +2 -2
  281. package/dist/skills.mjs +1 -2
  282. package/dist/sqliteSessionStorage.cjs +28 -50
  283. package/dist/sqliteSessionStorage.cjs.map +1 -1
  284. package/dist/sqliteSessionStorage.d.mts +13 -20
  285. package/dist/sqliteSessionStorage.d.mts.map +1 -1
  286. package/dist/sqliteSessionStorage.mjs +25 -48
  287. package/dist/sqliteSessionStorage.mjs.map +1 -1
  288. package/dist/src/constants/agentSettled.cjs +7 -0
  289. package/dist/src/constants/agentSettled.cjs.map +1 -0
  290. package/dist/src/constants/agentSettled.mjs +7 -0
  291. package/dist/src/constants/agentSettled.mjs.map +1 -0
  292. package/dist/src/constants/contextApi.cjs +3 -1
  293. package/dist/src/constants/contextApi.cjs.map +1 -1
  294. package/dist/src/constants/contextApi.d.mts +2 -1
  295. package/dist/src/constants/contextApi.d.mts.map +1 -1
  296. package/dist/src/constants/contextApi.mjs +3 -2
  297. package/dist/src/constants/contextApi.mjs.map +1 -1
  298. package/dist/src/constants/voiceTools.cjs +6 -6
  299. package/dist/src/constants/voiceTools.cjs.map +1 -1
  300. package/dist/src/constants/voiceTools.d.mts +3 -3
  301. package/dist/src/constants/voiceTools.mjs +4 -4
  302. package/dist/src/constants/voiceTools.mjs.map +1 -1
  303. package/dist/src/extensions/extensionFile.cjs +22 -5
  304. package/dist/src/extensions/extensionFile.cjs.map +1 -1
  305. package/dist/src/extensions/extensionFile.d.mts +17 -4
  306. package/dist/src/extensions/extensionFile.d.mts.map +1 -1
  307. package/dist/src/extensions/extensionFile.mjs +22 -6
  308. package/dist/src/extensions/extensionFile.mjs.map +1 -1
  309. package/dist/src/extensions/serverPlugin.cjs +231 -92
  310. package/dist/src/extensions/serverPlugin.cjs.map +1 -1
  311. package/dist/src/extensions/serverPlugin.d.mts +2 -2
  312. package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
  313. package/dist/src/extensions/serverPlugin.mjs +232 -93
  314. package/dist/src/extensions/serverPlugin.mjs.map +1 -1
  315. package/dist/src/pi/piSessionRuntime.cjs +349 -142
  316. package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
  317. package/dist/src/pi/piSessionRuntime.d.mts +18 -17
  318. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
  319. package/dist/src/pi/piSessionRuntime.mjs +342 -135
  320. package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
  321. package/dist/src/schemas/agentModel.cjs +2 -2
  322. package/dist/src/schemas/agentModel.cjs.map +1 -1
  323. package/dist/src/schemas/agentModel.d.mts +1 -1
  324. package/dist/src/schemas/agentModel.mjs +2 -2
  325. package/dist/src/schemas/agentModel.mjs.map +1 -1
  326. package/dist/src/schemas/apiContracts.d.mts +2 -2
  327. package/dist/src/schemas/apiContracts.d.mts.map +1 -1
  328. package/dist/src/schemas/askUser.cjs +4 -4
  329. package/dist/src/schemas/askUser.cjs.map +1 -1
  330. package/dist/src/schemas/askUser.d.mts +4 -4
  331. package/dist/src/schemas/askUser.d.mts.map +1 -1
  332. package/dist/src/schemas/askUser.mjs +3 -3
  333. package/dist/src/schemas/askUser.mjs.map +1 -1
  334. package/dist/src/schemas/backgroundWork.cjs +10 -10
  335. package/dist/src/schemas/backgroundWork.cjs.map +1 -1
  336. package/dist/src/schemas/backgroundWork.d.mts +9 -9
  337. package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
  338. package/dist/src/schemas/backgroundWork.mjs +8 -8
  339. package/dist/src/schemas/backgroundWork.mjs.map +1 -1
  340. package/dist/src/schemas/childProcess.cjs +5 -5
  341. package/dist/src/schemas/childProcess.cjs.map +1 -1
  342. package/dist/src/schemas/childProcess.d.mts +2 -2
  343. package/dist/src/schemas/childProcess.mjs +5 -5
  344. package/dist/src/schemas/childProcess.mjs.map +1 -1
  345. package/dist/src/schemas/contextContributions.cjs +10 -10
  346. package/dist/src/schemas/contextContributions.cjs.map +1 -1
  347. package/dist/src/schemas/contextContributions.d.mts +16 -16
  348. package/dist/src/schemas/contextContributions.d.mts.map +1 -1
  349. package/dist/src/schemas/contextContributions.mjs +8 -8
  350. package/dist/src/schemas/contextContributions.mjs.map +1 -1
  351. package/dist/src/schemas/delegation.cjs +17 -17
  352. package/dist/src/schemas/delegation.cjs.map +1 -1
  353. package/dist/src/schemas/delegation.d.mts +16 -16
  354. package/dist/src/schemas/delegation.d.mts.map +1 -1
  355. package/dist/src/schemas/delegation.mjs +10 -10
  356. package/dist/src/schemas/delegation.mjs.map +1 -1
  357. package/dist/src/schemas/extensionFile.d.mts +23 -19
  358. package/dist/src/schemas/extensionFile.d.mts.map +1 -1
  359. package/dist/src/schemas/footer.cjs.map +1 -1
  360. package/dist/src/schemas/footer.d.mts +5 -5
  361. package/dist/src/schemas/footer.d.mts.map +1 -1
  362. package/dist/src/schemas/footer.mjs.map +1 -1
  363. package/dist/src/schemas/headless.cjs +37 -37
  364. package/dist/src/schemas/headless.cjs.map +1 -1
  365. package/dist/src/schemas/headless.d.mts +100 -101
  366. package/dist/src/schemas/headless.d.mts.map +1 -1
  367. package/dist/src/schemas/headless.mjs +24 -24
  368. package/dist/src/schemas/headless.mjs.map +1 -1
  369. package/dist/src/schemas/help.cjs +60 -60
  370. package/dist/src/schemas/help.cjs.map +1 -1
  371. package/dist/src/schemas/help.d.mts +43 -43
  372. package/dist/src/schemas/help.d.mts.map +1 -1
  373. package/dist/src/schemas/help.mjs +41 -41
  374. package/dist/src/schemas/help.mjs.map +1 -1
  375. package/dist/src/schemas/home.cjs +127 -0
  376. package/dist/src/schemas/home.cjs.map +1 -0
  377. package/dist/src/schemas/home.d.mts +63 -0
  378. package/dist/src/schemas/home.d.mts.map +1 -0
  379. package/dist/src/schemas/home.mjs +121 -0
  380. package/dist/src/schemas/home.mjs.map +1 -0
  381. package/dist/src/schemas/httpApiContracts.cjs +441 -0
  382. package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
  383. package/dist/src/schemas/httpApiContracts.d.mts +78 -0
  384. package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
  385. package/dist/src/schemas/httpApiContracts.mjs +434 -0
  386. package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
  387. package/dist/src/schemas/hubChannel.cjs +3 -0
  388. package/dist/src/schemas/hubChannel.cjs.map +1 -1
  389. package/dist/src/schemas/hubChannel.d.mts +84 -60
  390. package/dist/src/schemas/hubChannel.d.mts.map +1 -1
  391. package/dist/src/schemas/hubChannel.mjs +3 -1
  392. package/dist/src/schemas/hubChannel.mjs.map +1 -1
  393. package/dist/src/schemas/leader.cjs.map +1 -1
  394. package/dist/src/schemas/leader.d.mts +3 -3
  395. package/dist/src/schemas/leader.d.mts.map +1 -1
  396. package/dist/src/schemas/leader.mjs.map +1 -1
  397. package/dist/src/schemas/mcpBundle.d.mts +3 -3
  398. package/dist/src/schemas/mcpFacet.cjs.map +1 -1
  399. package/dist/src/schemas/mcpFacet.d.mts +22 -22
  400. package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
  401. package/dist/src/schemas/mcpFacet.mjs.map +1 -1
  402. package/dist/src/schemas/mcpProjection.cjs +41 -41
  403. package/dist/src/schemas/mcpProjection.cjs.map +1 -1
  404. package/dist/src/schemas/mcpProjection.d.mts +31 -30
  405. package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
  406. package/dist/src/schemas/mcpProjection.mjs +29 -29
  407. package/dist/src/schemas/mcpProjection.mjs.map +1 -1
  408. package/dist/src/schemas/mcpSession.cjs +23 -23
  409. package/dist/src/schemas/mcpSession.cjs.map +1 -1
  410. package/dist/src/schemas/mcpSession.d.mts +12 -12
  411. package/dist/src/schemas/mcpSession.d.mts.map +1 -1
  412. package/dist/src/schemas/mcpSession.mjs +18 -18
  413. package/dist/src/schemas/mcpSession.mjs.map +1 -1
  414. package/dist/src/schemas/mcpStatus.cjs +5 -5
  415. package/dist/src/schemas/mcpStatus.cjs.map +1 -1
  416. package/dist/src/schemas/mcpStatus.d.mts +4 -4
  417. package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
  418. package/dist/src/schemas/mcpStatus.mjs +4 -4
  419. package/dist/src/schemas/mcpStatus.mjs.map +1 -1
  420. package/dist/src/schemas/mcpToolResolver.cjs +9 -9
  421. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
  422. package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
  423. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
  424. package/dist/src/schemas/mcpToolResolver.mjs +7 -7
  425. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
  426. package/dist/src/schemas/narration.cjs +9 -9
  427. package/dist/src/schemas/narration.cjs.map +1 -1
  428. package/dist/src/schemas/narration.d.mts +5 -5
  429. package/dist/src/schemas/narration.d.mts.map +1 -1
  430. package/dist/src/schemas/narration.mjs +7 -7
  431. package/dist/src/schemas/narration.mjs.map +1 -1
  432. package/dist/src/schemas/notification.cjs +45 -45
  433. package/dist/src/schemas/notification.cjs.map +1 -1
  434. package/dist/src/schemas/notification.d.mts +22 -22
  435. package/dist/src/schemas/notification.d.mts.map +1 -1
  436. package/dist/src/schemas/notification.mjs +31 -31
  437. package/dist/src/schemas/notification.mjs.map +1 -1
  438. package/dist/src/schemas/packageApi.cjs +28 -28
  439. package/dist/src/schemas/packageApi.cjs.map +1 -1
  440. package/dist/src/schemas/packageApi.d.mts +91 -65
  441. package/dist/src/schemas/packageApi.d.mts.map +1 -1
  442. package/dist/src/schemas/packageApi.mjs +18 -18
  443. package/dist/src/schemas/packageApi.mjs.map +1 -1
  444. package/dist/src/schemas/platform.cjs +34 -0
  445. package/dist/src/schemas/platform.cjs.map +1 -0
  446. package/dist/src/schemas/platform.d.mts +75 -0
  447. package/dist/src/schemas/platform.d.mts.map +1 -0
  448. package/dist/src/schemas/platform.mjs +27 -0
  449. package/dist/src/schemas/platform.mjs.map +1 -0
  450. package/dist/src/schemas/pluginContributions.cjs.map +1 -1
  451. package/dist/src/schemas/pluginContributions.d.mts +12 -12
  452. package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
  453. package/dist/src/schemas/pluginContributions.mjs.map +1 -1
  454. package/dist/src/schemas/pluginProtocol.cjs +24 -27
  455. package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
  456. package/dist/src/schemas/pluginProtocol.d.mts +21 -21
  457. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
  458. package/dist/src/schemas/pluginProtocol.mjs +18 -20
  459. package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
  460. package/dist/src/schemas/profileIdentity.cjs +2 -2
  461. package/dist/src/schemas/profileIdentity.cjs.map +1 -1
  462. package/dist/src/schemas/profileIdentity.d.mts +1 -1
  463. package/dist/src/schemas/profileIdentity.mjs +2 -2
  464. package/dist/src/schemas/profileIdentity.mjs.map +1 -1
  465. package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
  466. package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
  467. package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
  468. package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
  469. package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
  470. package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
  471. package/dist/src/schemas/protocolContracts.cjs +168 -0
  472. package/dist/src/schemas/protocolContracts.cjs.map +1 -0
  473. package/dist/src/schemas/protocolContracts.d.mts +69 -0
  474. package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
  475. package/dist/src/schemas/protocolContracts.mjs +164 -0
  476. package/dist/src/schemas/protocolContracts.mjs.map +1 -0
  477. package/dist/src/schemas/protocolHubContract.cjs +51 -0
  478. package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
  479. package/dist/src/schemas/protocolHubContract.d.mts +218 -0
  480. package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
  481. package/dist/src/schemas/protocolHubContract.mjs +49 -0
  482. package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
  483. package/dist/src/schemas/protocolSessionContract.cjs +22 -0
  484. package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
  485. package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
  486. package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
  487. package/dist/src/schemas/protocolSessionContract.mjs +22 -0
  488. package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
  489. package/dist/src/schemas/protocolThreadContract.cjs +21 -0
  490. package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
  491. package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
  492. package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
  493. package/dist/src/schemas/protocolThreadContract.mjs +20 -0
  494. package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
  495. package/dist/src/schemas/readiness.cjs +36 -36
  496. package/dist/src/schemas/readiness.cjs.map +1 -1
  497. package/dist/src/schemas/readiness.d.mts +37 -37
  498. package/dist/src/schemas/readiness.d.mts.map +1 -1
  499. package/dist/src/schemas/readiness.mjs +31 -31
  500. package/dist/src/schemas/readiness.mjs.map +1 -1
  501. package/dist/src/schemas/serverBundle.d.mts +5 -5
  502. package/dist/src/schemas/serverPlugin.cjs +103 -0
  503. package/dist/src/schemas/serverPlugin.cjs.map +1 -0
  504. package/dist/src/schemas/serverPlugin.d.mts +176 -0
  505. package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
  506. package/dist/src/schemas/serverPlugin.mjs +95 -0
  507. package/dist/src/schemas/serverPlugin.mjs.map +1 -0
  508. package/dist/src/schemas/serverScope.cjs +37 -0
  509. package/dist/src/schemas/serverScope.cjs.map +1 -0
  510. package/dist/src/schemas/serverScope.d.mts +77 -0
  511. package/dist/src/schemas/serverScope.d.mts.map +1 -0
  512. package/dist/src/schemas/serverScope.mjs +33 -0
  513. package/dist/src/schemas/serverScope.mjs.map +1 -0
  514. package/dist/src/schemas/sessionApiContracts.cjs +320 -0
  515. package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
  516. package/dist/src/schemas/sessionApiContracts.mjs +318 -0
  517. package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
  518. package/dist/src/schemas/sessionProtocol.cjs +20 -13
  519. package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
  520. package/dist/src/schemas/sessionProtocol.d.mts +37 -54
  521. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
  522. package/dist/src/schemas/sessionProtocol.mjs +17 -8
  523. package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
  524. package/dist/src/schemas/skills.cjs +16 -16
  525. package/dist/src/schemas/skills.cjs.map +1 -1
  526. package/dist/src/schemas/skills.d.mts +7 -7
  527. package/dist/src/schemas/skills.d.mts.map +1 -1
  528. package/dist/src/schemas/skills.mjs +12 -12
  529. package/dist/src/schemas/skills.mjs.map +1 -1
  530. package/dist/src/schemas/toolOverrides.cjs +9 -9
  531. package/dist/src/schemas/toolOverrides.cjs.map +1 -1
  532. package/dist/src/schemas/toolOverrides.d.mts +8 -8
  533. package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
  534. package/dist/src/schemas/toolOverrides.mjs +7 -7
  535. package/dist/src/schemas/toolOverrides.mjs.map +1 -1
  536. package/dist/src/schemas/toolSurface.cjs +9 -9
  537. package/dist/src/schemas/toolSurface.cjs.map +1 -1
  538. package/dist/src/schemas/toolSurface.d.mts +13 -13
  539. package/dist/src/schemas/toolSurface.d.mts.map +1 -1
  540. package/dist/src/schemas/toolSurface.mjs +7 -7
  541. package/dist/src/schemas/toolSurface.mjs.map +1 -1
  542. package/dist/src/schemas/uiHub.cjs +9 -9
  543. package/dist/src/schemas/uiHub.cjs.map +1 -1
  544. package/dist/src/schemas/uiHub.d.mts +12 -12
  545. package/dist/src/schemas/uiHub.d.mts.map +1 -1
  546. package/dist/src/schemas/uiHub.mjs +7 -7
  547. package/dist/src/schemas/uiHub.mjs.map +1 -1
  548. package/dist/src/server/directHarnessRuntime.cjs +691 -775
  549. package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
  550. package/dist/src/server/directHarnessRuntime.d.mts +5 -1
  551. package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
  552. package/dist/src/server/directHarnessRuntime.mjs +671 -754
  553. package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
  554. package/dist/src/server/largeFrameLink.cjs +47 -0
  555. package/dist/src/server/largeFrameLink.cjs.map +1 -0
  556. package/dist/src/server/largeFrameLink.mjs +47 -0
  557. package/dist/src/server/largeFrameLink.mjs.map +1 -0
  558. package/dist/src/server/liveImport.cjs +1 -1
  559. package/dist/src/server/liveImport.cjs.map +1 -1
  560. package/dist/src/server/liveImport.d.mts +1 -1
  561. package/dist/src/server/liveImport.mjs +1 -1
  562. package/dist/src/server/liveImport.mjs.map +1 -1
  563. package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
  564. package/dist/src/server/mcpBundleLoader.d.mts +6 -6
  565. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
  566. package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
  567. package/dist/src/server/serverPackages.cjs +60 -0
  568. package/dist/src/server/serverPackages.cjs.map +1 -0
  569. package/dist/src/server/serverPackages.d.mts +44 -0
  570. package/dist/src/server/serverPackages.d.mts.map +1 -0
  571. package/dist/src/server/serverPackages.mjs +59 -0
  572. package/dist/src/server/serverPackages.mjs.map +1 -0
  573. package/dist/src/server/serverScope.cjs +510 -0
  574. package/dist/src/server/serverScope.cjs.map +1 -0
  575. package/dist/src/server/serverScope.d.mts +123 -0
  576. package/dist/src/server/serverScope.d.mts.map +1 -0
  577. package/dist/src/server/serverScope.mjs +510 -0
  578. package/dist/src/server/serverScope.mjs.map +1 -0
  579. package/dist/src/server/sessionMcpHandler.cjs +3 -3
  580. package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
  581. package/dist/src/server/sessionMcpHandler.mjs +4 -4
  582. package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
  583. package/dist/src/server/sessionMcpRoutes.cjs +2 -1
  584. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
  585. package/dist/src/server/sessionMcpRoutes.mjs +2 -1
  586. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
  587. package/dist/src/server/threadJournals.cjs +38 -107
  588. package/dist/src/server/threadJournals.cjs.map +1 -1
  589. package/dist/src/server/threadJournals.mjs +38 -104
  590. package/dist/src/server/threadJournals.mjs.map +1 -1
  591. package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
  592. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
  593. package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
  594. package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
  595. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
  596. package/dist/src/services/chatgptAuth/index.cjs +1 -220
  597. package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
  598. package/dist/src/services/chatgptAuth/index.d.mts +0 -18
  599. package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
  600. package/dist/src/services/chatgptAuth/index.mjs +1 -217
  601. package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
  602. package/dist/src/services/chatgptImages/index.cjs +1 -1
  603. package/dist/src/services/chatgptImages/index.cjs.map +1 -1
  604. package/dist/src/services/chatgptImages/index.mjs +1 -1
  605. package/dist/src/services/chatgptImages/index.mjs.map +1 -1
  606. package/dist/src/services/chatgptLogin/index.cjs +230 -0
  607. package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
  608. package/dist/src/services/chatgptLogin/index.d.mts +21 -0
  609. package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
  610. package/dist/src/services/chatgptLogin/index.mjs +227 -0
  611. package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
  612. package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
  613. package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
  614. package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
  615. package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
  616. package/dist/src/services/contextContributions/index.cjs +8 -8
  617. package/dist/src/services/contextContributions/index.cjs.map +1 -1
  618. package/dist/src/services/contextContributions/index.d.mts +3 -3
  619. package/dist/src/services/contextContributions/index.d.mts.map +1 -1
  620. package/dist/src/services/contextContributions/index.mjs +8 -8
  621. package/dist/src/services/contextContributions/index.mjs.map +1 -1
  622. package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
  623. package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
  624. package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
  625. package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
  626. package/dist/src/services/devProxyStore/index.cjs +7 -101
  627. package/dist/src/services/devProxyStore/index.cjs.map +1 -1
  628. package/dist/src/services/devProxyStore/index.mjs +7 -101
  629. package/dist/src/services/devProxyStore/index.mjs.map +1 -1
  630. package/dist/src/services/devProxyStore/sync.cjs +66 -0
  631. package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
  632. package/dist/src/services/devProxyStore/sync.mjs +63 -0
  633. package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
  634. package/dist/src/services/durableNavigation/docs.cjs +15 -0
  635. package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
  636. package/dist/src/services/durableNavigation/docs.mjs +16 -0
  637. package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
  638. package/dist/src/services/durableNavigation/index.cjs +3 -18
  639. package/dist/src/services/durableNavigation/index.cjs.map +1 -1
  640. package/dist/src/services/durableNavigation/index.mjs +2 -17
  641. package/dist/src/services/durableNavigation/index.mjs.map +1 -1
  642. package/dist/src/services/durableQueue/docs.cjs +12 -0
  643. package/dist/src/services/durableQueue/docs.cjs.map +1 -0
  644. package/dist/src/services/durableQueue/docs.mjs +13 -0
  645. package/dist/src/services/durableQueue/docs.mjs.map +1 -0
  646. package/dist/src/services/durableQueue/index.cjs +151 -0
  647. package/dist/src/services/durableQueue/index.cjs.map +1 -0
  648. package/dist/src/services/durableQueue/index.mjs +149 -0
  649. package/dist/src/services/durableQueue/index.mjs.map +1 -0
  650. package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
  651. package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
  652. package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
  653. package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
  654. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
  655. package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
  656. package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
  657. package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
  658. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
  659. package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
  660. package/dist/src/services/durableSession/docs.cjs +65 -0
  661. package/dist/src/services/durableSession/docs.cjs.map +1 -0
  662. package/dist/src/services/durableSession/docs.d.mts +17 -0
  663. package/dist/src/services/durableSession/docs.d.mts.map +1 -0
  664. package/dist/src/services/durableSession/docs.mjs +60 -0
  665. package/dist/src/services/durableSession/docs.mjs.map +1 -0
  666. package/dist/src/services/durableSession/index.cjs +21 -0
  667. package/dist/src/services/durableSession/index.cjs.map +1 -0
  668. package/dist/src/services/durableSession/index.d.mts +13 -0
  669. package/dist/src/services/durableSession/index.d.mts.map +1 -0
  670. package/dist/src/services/durableSession/index.mjs +20 -0
  671. package/dist/src/services/durableSession/index.mjs.map +1 -0
  672. package/dist/src/services/durableSubagents/docs.cjs +15 -0
  673. package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
  674. package/dist/src/services/durableSubagents/docs.mjs +16 -0
  675. package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
  676. package/dist/src/services/durableSubagents/extension.cjs +11 -0
  677. package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
  678. package/dist/src/services/durableSubagents/extension.mjs +12 -0
  679. package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
  680. package/dist/src/services/durableSubagents/index.cjs +95 -0
  681. package/dist/src/services/durableSubagents/index.cjs.map +1 -0
  682. package/dist/src/services/durableSubagents/index.mjs +90 -0
  683. package/dist/src/services/durableSubagents/index.mjs.map +1 -0
  684. package/dist/src/services/durableSubagents/tasks.cjs +25 -0
  685. package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
  686. package/dist/src/services/durableSubagents/tasks.mjs +26 -0
  687. package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
  688. package/dist/src/services/headlessClient/index.cjs +20 -13
  689. package/dist/src/services/headlessClient/index.cjs.map +1 -1
  690. package/dist/src/services/headlessClient/index.mjs +21 -14
  691. package/dist/src/services/headlessClient/index.mjs.map +1 -1
  692. package/dist/src/services/historyOwnership/type.d.mts +15 -0
  693. package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
  694. package/dist/src/services/hubChannelHarness/index.cjs +2 -2
  695. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
  696. package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
  697. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
  698. package/dist/src/services/hubChannelHarness/index.mjs +2 -2
  699. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
  700. package/dist/src/services/json/core.cjs +30 -0
  701. package/dist/src/services/json/core.cjs.map +1 -0
  702. package/dist/src/services/json/core.d.mts +21 -0
  703. package/dist/src/services/json/core.d.mts.map +1 -0
  704. package/dist/src/services/json/core.mjs +26 -0
  705. package/dist/src/services/json/core.mjs.map +1 -0
  706. package/dist/src/services/json/sync.cjs +48 -0
  707. package/dist/src/services/json/sync.cjs.map +1 -0
  708. package/dist/src/services/json/sync.d.mts +22 -0
  709. package/dist/src/services/json/sync.d.mts.map +1 -0
  710. package/dist/src/services/json/sync.mjs +43 -0
  711. package/dist/src/services/json/sync.mjs.map +1 -0
  712. package/dist/src/services/kernel/index.cjs +2 -2
  713. package/dist/src/services/kernel/index.cjs.map +1 -1
  714. package/dist/src/services/kernel/index.d.mts +3 -3
  715. package/dist/src/services/kernel/index.d.mts.map +1 -1
  716. package/dist/src/services/kernel/index.mjs +2 -2
  717. package/dist/src/services/kernel/index.mjs.map +1 -1
  718. package/dist/src/services/nativeChildTools/index.cjs +16 -0
  719. package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
  720. package/dist/src/services/nativeChildTools/index.mjs +16 -0
  721. package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
  722. package/dist/src/services/nodeHost/index.cjs +30 -0
  723. package/dist/src/services/nodeHost/index.cjs.map +1 -0
  724. package/dist/src/services/nodeHost/index.d.mts +16 -0
  725. package/dist/src/services/nodeHost/index.d.mts.map +1 -0
  726. package/dist/src/services/nodeHost/index.mjs +27 -0
  727. package/dist/src/services/nodeHost/index.mjs.map +1 -0
  728. package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
  729. package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
  730. package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
  731. package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
  732. package/dist/src/services/openSessionRegistry/index.cjs +6 -128
  733. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
  734. package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
  735. package/dist/src/services/openSessionRegistry/index.mjs +6 -128
  736. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
  737. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
  738. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
  739. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
  740. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
  741. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
  742. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
  743. package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
  744. package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
  745. package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
  746. package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
  747. package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
  748. package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
  749. package/dist/src/services/packageApiHarness/index.cjs +1 -1
  750. package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
  751. package/dist/src/services/packageApiHarness/index.d.mts +6 -6
  752. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
  753. package/dist/src/services/packageApiHarness/index.mjs +2 -2
  754. package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
  755. package/dist/src/services/piArgs/index.cjs +53 -0
  756. package/dist/src/services/piArgs/index.cjs.map +1 -0
  757. package/dist/src/services/piArgs/index.d.mts +6 -0
  758. package/dist/src/services/piArgs/index.d.mts.map +1 -0
  759. package/dist/src/services/piArgs/index.mjs +53 -0
  760. package/dist/src/services/piArgs/index.mjs.map +1 -0
  761. package/dist/src/services/piExtensionHost/index.cjs +47 -39
  762. package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
  763. package/dist/src/services/piExtensionHost/index.d.mts +83 -0
  764. package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
  765. package/dist/src/services/piExtensionHost/index.mjs +47 -38
  766. package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
  767. package/dist/src/services/piHelpTools/index.cjs +5 -5
  768. package/dist/src/services/piHelpTools/index.cjs.map +1 -1
  769. package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
  770. package/dist/src/services/piHelpTools/index.mjs +7 -7
  771. package/dist/src/services/piHelpTools/index.mjs.map +1 -1
  772. package/dist/src/services/piMessages/index.cjs +106 -0
  773. package/dist/src/services/piMessages/index.cjs.map +1 -0
  774. package/dist/src/services/piMessages/index.mjs +105 -0
  775. package/dist/src/services/piMessages/index.mjs.map +1 -0
  776. package/dist/src/services/piSessionEntries/index.cjs +4 -4
  777. package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
  778. package/dist/src/services/piSessionEntries/index.mjs +3 -3
  779. package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
  780. package/dist/src/services/piSettings/core.cjs +308 -0
  781. package/dist/src/services/piSettings/core.cjs.map +1 -0
  782. package/dist/src/services/piSettings/core.d.mts +102 -0
  783. package/dist/src/services/piSettings/core.d.mts.map +1 -0
  784. package/dist/src/services/piSettings/core.mjs +276 -0
  785. package/dist/src/services/piSettings/core.mjs.map +1 -0
  786. package/dist/src/services/piSettings/sync.cjs +119 -0
  787. package/dist/src/services/piSettings/sync.cjs.map +1 -0
  788. package/dist/src/services/piSettings/sync.d.mts +44 -0
  789. package/dist/src/services/piSettings/sync.d.mts.map +1 -0
  790. package/dist/src/services/piSettings/sync.mjs +110 -0
  791. package/dist/src/services/piSettings/sync.mjs.map +1 -0
  792. package/dist/src/services/piSummary/index.cjs +7 -0
  793. package/dist/src/services/piSummary/index.cjs.map +1 -0
  794. package/dist/src/services/piSummary/index.mjs +7 -0
  795. package/dist/src/services/piSummary/index.mjs.map +1 -0
  796. package/dist/src/services/platformFiles/index.cjs +44 -0
  797. package/dist/src/services/platformFiles/index.cjs.map +1 -0
  798. package/dist/src/services/platformFiles/index.d.mts +16 -0
  799. package/dist/src/services/platformFiles/index.d.mts.map +1 -0
  800. package/dist/src/services/platformFiles/index.mjs +39 -0
  801. package/dist/src/services/platformFiles/index.mjs.map +1 -0
  802. package/dist/src/services/pluginLifecycle/index.cjs +19 -13
  803. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
  804. package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
  805. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
  806. package/dist/src/services/pluginLifecycle/index.mjs +19 -14
  807. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
  808. package/dist/src/services/poPackage/core.cjs +73 -0
  809. package/dist/src/services/poPackage/core.cjs.map +1 -0
  810. package/dist/src/services/poPackage/core.d.mts +32 -0
  811. package/dist/src/services/poPackage/core.d.mts.map +1 -0
  812. package/dist/src/services/poPackage/core.mjs +66 -0
  813. package/dist/src/services/poPackage/core.mjs.map +1 -0
  814. package/dist/src/services/poPackage/sync.cjs +55 -0
  815. package/dist/src/services/poPackage/sync.cjs.map +1 -0
  816. package/dist/src/services/poPackage/sync.d.mts +21 -0
  817. package/dist/src/services/poPackage/sync.d.mts.map +1 -0
  818. package/dist/src/services/poPackage/sync.mjs +50 -0
  819. package/dist/src/services/poPackage/sync.mjs.map +1 -0
  820. package/dist/src/services/providerAuth/index.cjs +11 -7
  821. package/dist/src/services/providerAuth/index.cjs.map +1 -1
  822. package/dist/src/services/providerAuth/index.mjs +11 -7
  823. package/dist/src/services/providerAuth/index.mjs.map +1 -1
  824. package/dist/src/services/publicFileShares/index.cjs +1 -1
  825. package/dist/src/services/publicFileShares/index.cjs.map +1 -1
  826. package/dist/src/services/publicFileShares/index.d.mts +2 -2
  827. package/dist/src/services/publicFileShares/index.mjs +2 -2
  828. package/dist/src/services/publicFileShares/index.mjs.map +1 -1
  829. package/dist/src/services/remoteAccess/index.d.mts +1 -0
  830. package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
  831. package/dist/src/services/remoteAccessStore/index.cjs +8 -190
  832. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
  833. package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
  834. package/dist/src/services/remoteAccessStore/index.mjs +7 -187
  835. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
  836. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
  837. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
  839. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
  841. package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
  843. package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
  844. package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
  845. package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
  846. package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
  847. package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
  848. package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
  849. package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
  850. package/dist/src/services/serialRunner/index.cjs +25 -0
  851. package/dist/src/services/serialRunner/index.cjs.map +1 -0
  852. package/dist/src/services/serialRunner/index.d.mts +10 -0
  853. package/dist/src/services/serialRunner/index.d.mts.map +1 -0
  854. package/dist/src/services/serialRunner/index.mjs +25 -0
  855. package/dist/src/services/serialRunner/index.mjs.map +1 -0
  856. package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
  857. package/dist/src/services/serverHost/index.cjs.map +1 -0
  858. package/dist/src/services/serverHost/index.d.mts +31 -0
  859. package/dist/src/services/serverHost/index.d.mts.map +1 -0
  860. package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
  861. package/dist/src/services/serverHost/index.mjs.map +1 -0
  862. package/dist/src/services/sessionAttachments/index.cjs +4 -3
  863. package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
  864. package/dist/src/services/sessionAttachments/index.d.mts +1 -6
  865. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
  866. package/dist/src/services/sessionAttachments/index.mjs +3 -2
  867. package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
  868. package/dist/src/services/sessionAttachments/type.d.mts +9 -0
  869. package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
  870. package/dist/src/services/sessionFiles/index.cjs +96 -0
  871. package/dist/src/services/sessionFiles/index.cjs.map +1 -0
  872. package/dist/src/services/sessionFiles/index.d.mts +33 -0
  873. package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
  874. package/dist/src/services/sessionFiles/index.mjs +89 -0
  875. package/dist/src/services/sessionFiles/index.mjs.map +1 -0
  876. package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
  877. package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
  878. package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
  879. package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
  880. package/dist/src/services/sessionGitStatus/index.cjs +31 -33
  881. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
  882. package/dist/src/services/sessionGitStatus/index.mjs +31 -33
  883. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
  884. package/dist/src/services/sessionPresentation/index.cjs +3 -27
  885. package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
  886. package/dist/src/services/sessionPresentation/index.mjs +3 -27
  887. package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
  888. package/dist/src/services/skillPrompt/index.cjs +11 -0
  889. package/dist/src/services/skillPrompt/index.cjs.map +1 -0
  890. package/dist/src/services/skillPrompt/index.mjs +11 -0
  891. package/dist/src/services/skillPrompt/index.mjs.map +1 -0
  892. package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
  893. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
  894. package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
  895. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
  896. package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
  897. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
  898. package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
  899. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
  900. package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
  901. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
  902. package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
  903. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
  904. package/dist/src/services/testMode/index.cjs +162 -0
  905. package/dist/src/services/testMode/index.cjs.map +1 -0
  906. package/dist/src/services/testMode/index.d.mts +17 -0
  907. package/dist/src/services/testMode/index.d.mts.map +1 -0
  908. package/dist/src/services/testMode/index.mjs +155 -0
  909. package/dist/src/services/testMode/index.mjs.map +1 -0
  910. package/dist/src/services/toolOverrides/index.cjs +6 -6
  911. package/dist/src/services/toolOverrides/index.cjs.map +1 -1
  912. package/dist/src/services/toolOverrides/index.d.mts +3 -3
  913. package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
  914. package/dist/src/services/toolOverrides/index.mjs +6 -6
  915. package/dist/src/services/toolOverrides/index.mjs.map +1 -1
  916. package/dist/src/services/toolPrompt/index.d.mts +17 -0
  917. package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
  918. package/dist/src/services/toolSurface/index.cjs +3 -3
  919. package/dist/src/services/toolSurface/index.cjs.map +1 -1
  920. package/dist/src/services/toolSurface/index.d.mts +3 -3
  921. package/dist/src/services/toolSurface/index.d.mts.map +1 -1
  922. package/dist/src/services/toolSurface/index.mjs +4 -4
  923. package/dist/src/services/toolSurface/index.mjs.map +1 -1
  924. package/dist/src/services/traceContext/index.cjs.map +1 -1
  925. package/dist/src/services/traceContext/index.mjs.map +1 -1
  926. package/dist/src/services/transcriptPages/index.cjs +159 -33
  927. package/dist/src/services/transcriptPages/index.cjs.map +1 -1
  928. package/dist/src/services/transcriptPages/index.mjs +158 -34
  929. package/dist/src/services/transcriptPages/index.mjs.map +1 -1
  930. package/dist/src/services/voiceToolsContract/index.cjs +7 -7
  931. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
  932. package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
  933. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
  934. package/dist/src/services/voiceToolsContract/index.mjs +7 -7
  935. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
  936. package/dist/src/services/workspaceRegistry/index.cjs +9 -179
  937. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
  938. package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
  939. package/dist/src/services/workspaceRegistry/index.mjs +7 -176
  940. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
  941. package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
  942. package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
  943. package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
  944. package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
  945. package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
  946. package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
  947. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
  948. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
  949. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
  950. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
  951. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
  952. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
  953. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
  954. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
  955. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
  956. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
  957. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
  958. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
  959. package/dist/src/systems/child/services/childSession/index.cjs +94 -20
  960. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
  961. package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
  962. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
  963. package/dist/src/systems/child/services/childSession/index.mjs +94 -20
  964. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
  965. package/dist/src/systems/child/types/childSession.cjs +33 -13
  966. package/dist/src/systems/child/types/childSession.cjs.map +1 -1
  967. package/dist/src/systems/child/types/childSession.d.mts +143 -80
  968. package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
  969. package/dist/src/systems/child/types/childSession.mjs +24 -9
  970. package/dist/src/systems/child/types/childSession.mjs.map +1 -1
  971. package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
  972. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
  973. package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
  974. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
  975. package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
  976. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
  977. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
  978. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
  979. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
  980. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
  981. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
  982. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
  983. package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
  984. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
  985. package/dist/src/testing/pi/testHost.cjs +2 -2
  986. package/dist/src/testing/pi/testHost.cjs.map +1 -1
  987. package/dist/src/testing/pi/testHost.d.mts +3 -2
  988. package/dist/src/testing/pi/testHost.mjs +3 -3
  989. package/dist/src/testing/pi/testHost.mjs.map +1 -1
  990. package/dist/src/types/config.d.mts +1 -1
  991. package/dist/src/types/config.d.mts.map +1 -1
  992. package/dist/src/types/kernel.d.mts +3 -3
  993. package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
  994. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
  995. package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
  996. package/dist/src/web/services/apiClient/index.d.mts +1 -0
  997. package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
  998. package/dist/src/web/services/apiPaths/index.d.mts +1 -1
  999. package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
  1000. package/dist/src/web/services/mcpWidget.cjs.map +1 -1
  1001. package/dist/src/web/services/mcpWidget.d.mts +2 -2
  1002. package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
  1003. package/dist/src/web/services/mcpWidget.mjs.map +1 -1
  1004. package/dist/src/web/services/testing/templateRail.cjs +3 -0
  1005. package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
  1006. package/dist/src/web/services/testing/templateRail.mjs +3 -0
  1007. package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
  1008. package/dist/src/web/types/mcpWidget.d.mts +1 -1
  1009. package/dist/src/web/types/nativeTemplate.d.mts +1 -1
  1010. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
  1011. package/dist/src/web/types/template.d.mts +8 -0
  1012. package/dist/src/web/types/template.d.mts.map +1 -1
  1013. package/dist/src/web/types/webPlugin.d.mts +17 -5
  1014. package/dist/src/web/types/webPlugin.d.mts.map +1 -1
  1015. package/dist/testMode.cjs +4 -0
  1016. package/dist/testMode.d.mts +2 -0
  1017. package/dist/testMode.mjs +1 -0
  1018. package/dist/testing.cjs +1 -1
  1019. package/dist/testing.d.mts +2 -2
  1020. package/dist/testing.mjs +2 -2
  1021. package/dist/toolInventory.cjs.map +1 -1
  1022. package/dist/toolInventory.mjs.map +1 -1
  1023. package/dist/toolNames.mjs +1 -2
  1024. package/dist/toolOverrides.cjs +4 -4
  1025. package/dist/toolOverrides.d.mts +3 -3
  1026. package/dist/toolOverrides.mjs +3 -3
  1027. package/dist/toolSurface.cjs +4 -4
  1028. package/dist/toolSurface.d.mts +3 -3
  1029. package/dist/toolSurface.mjs +3 -3
  1030. package/dist/transition.cjs +3 -3
  1031. package/dist/transition.d.cjs +3 -3
  1032. package/dist/transition.d.mts +2 -2
  1033. package/dist/transition.mjs +1 -2
  1034. package/dist/transitionClassifier.cjs.map +1 -1
  1035. package/dist/transitionClassifier.d.mts +2 -2
  1036. package/dist/transitionClassifier.d.mts.map +1 -1
  1037. package/dist/transitionClassifier.mjs.map +1 -1
  1038. package/dist/transitionCoordinator.cjs +3 -3
  1039. package/dist/transitionCoordinator.cjs.map +1 -1
  1040. package/dist/transitionCoordinator.d.mts +4 -4
  1041. package/dist/transitionCoordinator.d.mts.map +1 -1
  1042. package/dist/transitionCoordinator.mjs +3 -3
  1043. package/dist/transitionCoordinator.mjs.map +1 -1
  1044. package/dist/typesContextApi.d.mts +2 -1
  1045. package/dist/typesContextApi.d.mts.map +1 -1
  1046. package/dist/uiHub.cjs +3 -3
  1047. package/dist/uiHub.d.mts +2 -2
  1048. package/dist/uiHub.mjs +1 -2
  1049. package/dist/voiceTools.cjs +5 -5
  1050. package/dist/voiceTools.d.mts +3 -3
  1051. package/dist/voiceTools.mjs +3 -3
  1052. package/dist/web.cjs +8 -0
  1053. package/dist/web.d.mts +3 -2
  1054. package/dist/web.mjs +2 -1
  1055. package/dist/webCompositions.cjs.map +1 -1
  1056. package/dist/webCompositions.d.mts +7 -7
  1057. package/dist/webCompositions.d.mts.map +1 -1
  1058. package/dist/webCompositions.mjs.map +1 -1
  1059. package/licenses/Codex-Apache-2.0.txt +201 -0
  1060. package/package.json +58 -53
  1061. package/dist/doomPackage.cjs +0 -61
  1062. package/dist/doomPackage.cjs.map +0 -1
  1063. package/dist/doomPackage.d.mts +0 -17
  1064. package/dist/doomPackage.d.mts.map +0 -1
  1065. package/dist/doomPackage.mjs +0 -54
  1066. package/dist/doomPackage.mjs.map +0 -1
  1067. package/dist/jsonlSessionRepo.cjs +0 -44
  1068. package/dist/jsonlSessionRepo.cjs.map +0 -1
  1069. package/dist/jsonlSessionRepo.d.mts +0 -7
  1070. package/dist/jsonlSessionRepo.d.mts.map +0 -1
  1071. package/dist/jsonlSessionRepo.mjs +0 -42
  1072. package/dist/jsonlSessionRepo.mjs.map +0 -1
  1073. package/dist/runtimeJson.cjs.map +0 -1
  1074. package/dist/runtimeJson.d.mts.map +0 -1
  1075. package/dist/runtimeJson.mjs.map +0 -1
  1076. package/dist/runtimePiSettings.cjs.map +0 -1
  1077. package/dist/runtimePiSettings.d.mts.map +0 -1
  1078. package/dist/runtimePiSettings.mjs.map +0 -1
  1079. package/dist/serverFacet.cjs +0 -34
  1080. package/dist/serverFacet.d.mts +0 -10
  1081. package/dist/serverFacet.mjs +0 -9
  1082. package/dist/src/pi/piWebSocketListener.cjs +0 -115
  1083. package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
  1084. package/dist/src/pi/piWebSocketListener.mjs +0 -115
  1085. package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
  1086. package/dist/src/schemas/serverFacet.cjs +0 -111
  1087. package/dist/src/schemas/serverFacet.cjs.map +0 -1
  1088. package/dist/src/schemas/serverFacet.d.mts +0 -152
  1089. package/dist/src/schemas/serverFacet.d.mts.map +0 -1
  1090. package/dist/src/schemas/serverFacet.mjs +0 -101
  1091. package/dist/src/schemas/serverFacet.mjs.map +0 -1
  1092. package/dist/src/schemas/sessionUpdates.d.mts +0 -34
  1093. package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
  1094. package/dist/src/server/headlessProtocol.cjs +0 -382
  1095. package/dist/src/server/headlessProtocol.cjs.map +0 -1
  1096. package/dist/src/server/headlessProtocol.mjs +0 -382
  1097. package/dist/src/server/headlessProtocol.mjs.map +0 -1
  1098. package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
  1099. package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
  1100. package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
  1101. package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
  1102. package/dist/src/server/serverFacetLoader.cjs +0 -214
  1103. package/dist/src/server/serverFacetLoader.cjs.map +0 -1
  1104. package/dist/src/server/serverFacetLoader.d.mts +0 -72
  1105. package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
  1106. package/dist/src/server/serverFacetLoader.mjs +0 -212
  1107. package/dist/src/server/serverFacetLoader.mjs.map +0 -1
  1108. package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
  1109. package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
  1110. package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
  1111. package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
  1112. package/dist/src/services/historyImport/index.cjs +0 -8
  1113. package/dist/src/services/historyImport/index.cjs.map +0 -1
  1114. package/dist/src/services/historyImport/index.d.mts +0 -68
  1115. package/dist/src/services/historyImport/index.d.mts.map +0 -1
  1116. package/dist/src/services/historyImport/index.mjs +0 -8
  1117. package/dist/src/services/historyImport/index.mjs.map +0 -1
  1118. package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
  1119. package/dist/src/services/requestReceipts/index.cjs.map +0 -1
  1120. package/dist/src/services/requestReceipts/index.d.mts +0 -11
  1121. package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
  1122. package/dist/src/services/requestReceipts/index.mjs.map +0 -1
  1123. package/dist/src/services/rpcTranscript/index.cjs +0 -633
  1124. package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
  1125. package/dist/src/services/rpcTranscript/index.d.mts +0 -50
  1126. package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
  1127. package/dist/src/services/rpcTranscript/index.mjs +0 -632
  1128. package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
  1129. package/dist/src/services/serverFacet/index.cjs.map +0 -1
  1130. package/dist/src/services/serverFacet/index.d.mts +0 -31
  1131. package/dist/src/services/serverFacet/index.d.mts.map +0 -1
  1132. package/dist/src/services/serverFacet/index.mjs.map +0 -1
  1133. package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
  1134. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
  1135. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
  1136. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
  1137. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
  1138. package/dist/terminalPiChildSessionService.cjs +0 -324
  1139. package/dist/terminalPiChildSessionService.cjs.map +0 -1
  1140. package/dist/terminalPiChildSessionService.d.mts +0 -46
  1141. package/dist/terminalPiChildSessionService.d.mts.map +0 -1
  1142. package/dist/terminalPiChildSessionService.mjs +0 -318
  1143. package/dist/terminalPiChildSessionService.mjs.map +0 -1
  1144. package/dist/v3Export.cjs +0 -10
  1145. package/dist/v3Export.cjs.map +0 -1
  1146. package/dist/v3Export.d.mts +0 -35
  1147. package/dist/v3Export.d.mts.map +0 -1
  1148. package/dist/v3Export.mjs +0 -9
  1149. package/dist/v3Export.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionApiContracts.mjs","names":[],"sources":["../../../src/schemas/sessionApiContracts.ts"],"sourcesContent":["import { Type, type TSchema } from 'typebox';\n\nimport type { PoSocketContract } from './apiContracts';\nimport { ChannelFrameSchema, PoChannelsStateSchema } from './protocolChannelsContract';\nimport { chordMethods, type PoMethodSchemas } from './protocolContracts';\nimport { PoHubStateSchema } from './protocolHubContract';\nimport { PoThreadFrameSchema } from './protocolThreadContract';\nimport type { JsonValue } from './sessionProtocol';\n\nconst Text = Type.String();\nconst NumberValue = Type.Number();\nconst Flag = Type.Boolean();\nconst Json = Type.Unsafe<JsonValue>(\n Type.Unknown({\n description:\n 'Strict JSON application value supplied by the active tool, journal entry, or extension; validated by the Pi codec.',\n }),\n);\nconst Optional = Type.Optional;\nconst Strings = Type.Array(Text);\nconst Model = Type.Object({ provider: Text, id: Text });\nconst Thinking = Type.Union([\n Type.Literal('off'),\n Type.Literal('minimal'),\n Type.Literal('low'),\n Type.Literal('medium'),\n Type.Literal('high'),\n Type.Literal('max'),\n Type.Literal('xhigh'),\n]);\nconst Phase = Type.Union([\n Type.Literal('idle'),\n Type.Literal('turn'),\n Type.Literal('compaction'),\n Type.Literal('retry'),\n]);\nconst Image = Type.Object({ type: Type.Literal('image'), data: Text, mimeType: Text });\nconst TextPart = Type.Object({ type: Type.Literal('text'), text: Text });\nconst ThinkingPart = Type.Object({\n type: Type.Literal('thinking'),\n thinking: Text,\n redacted: Optional(Type.Literal(true)),\n});\nconst Content = Type.Union([Image, TextPart]);\nconst Usage = Type.Object({\n input: NumberValue,\n output: NumberValue,\n cacheRead: NumberValue,\n cacheWrite: NumberValue,\n total: NumberValue,\n});\nconst Message = Type.Object({ text: Text, images: Optional(Type.Array(Image)) });\nconst Lifecycle = Type.Object({\n revision: NumberValue,\n operation: Type.Union([\n Type.Null(),\n Type.Object({\n id: Text,\n kind: Type.Union([Type.Literal('run'), Type.Literal('compaction'), Type.Literal('navigation')]),\n status: Type.Union([Type.Literal('open'), Type.Literal('aborting')]),\n }),\n ]),\n paused: Flag,\n queue: Type.Array(\n Type.Object({\n id: Text,\n text: Text,\n images: Optional(Type.Array(Image)),\n delivery: Type.Union([Type.Literal('steer'), Type.Literal('followUp'), Type.Literal('nextRun')]),\n scheduling: Type.Union([Type.Literal('automatic'), Type.Literal('held')]),\n disposition: Type.Union([Type.Literal('pending'), Type.Literal('handoff')]),\n }),\n ),\n});\nconst Frame = Type.Intersect([Type.Object({ type: Text }), Type.Record(Text, Json)], {\n description: 'Discriminated extension presentation frame; selected channel schemas describe package payloads.',\n});\nconst ProtocolEvent = Type.Object({ sequence: NumberValue, frame: Frame });\nexport const SessionServiceStateSchema = Type.Object({\n snapshot: Type.Object({\n fastMode: Flag,\n locked: Flag,\n lifecycle: Optional(Lifecycle),\n }),\n presentation: Optional(\n Type.Object({\n revision: NumberValue,\n dropped: NumberValue,\n resetRevision: Optional(NumberValue),\n events: Type.Array(ProtocolEvent),\n projections: Type.Array(ProtocolEvent),\n }),\n ),\n live: Optional(\n Type.Object({\n phase: Phase,\n message: Optional(\n Type.Object({\n role: Type.Literal('assistant'),\n content: Type.Array(Type.Union([TextPart, ThinkingPart])),\n model: Text,\n timestamp: NumberValue,\n }),\n ),\n tools: Type.Record(\n Text,\n Type.Object({\n toolCallId: Text,\n toolName: Text,\n args: Json,\n partialResult: Optional(Type.Object({ content: Type.Array(Content), details: Optional(Json) })),\n }),\n ),\n }),\n ),\n});\n/** Argument and result schemas of the `po.session` methods; the Chord contract and the API docs both read them. */\nexport const SessionMethodSchemas = {\n readTranscriptPage: {\n args: Type.Object({\n cursor: Optional(Text),\n direction: Optional(Type.Union([Type.Literal('older'), Type.Literal('newer')])),\n limit: Optional(NumberValue),\n threadId: Optional(Text),\n }),\n result: Type.Object({\n entries: Type.Array(Json),\n startCursor: Type.Union([Text, Type.Null()]),\n endCursor: Type.Union([Text, Type.Null()]),\n olderCursor: Type.Union([Text, Type.Null()]),\n newerCursor: Type.Union([Text, Type.Null()]),\n generation: NumberValue,\n revision: NumberValue,\n context: Type.Array(Json),\n }),\n },\n prompt: {\n args: Type.Union([\n Text,\n Type.Object({\n ...Message.properties,\n waitFor: Optional(Type.Union([Type.Literal('accepted'), Type.Literal('settled')])),\n }),\n ]),\n },\n steer: { args: Type.Union([Text, Message]) },\n abort: {},\n abortOperation: { args: Type.Object({ operationId: Text }) },\n setModel: { args: Model },\n setThinking: { args: Thinking },\n setFastMode: { args: Flag },\n setAgentLock: { args: Flag },\n followUp: { args: Message },\n enqueueAutomatic: { args: Message, result: Type.Object({ id: Text }) },\n removeQueued: {\n args: Type.Object({ id: Text }),\n result: Type.Union([\n Type.Literal('removed'),\n Type.Literal('in_flight'),\n Type.Literal('already_consumed'),\n Type.Literal('not_found'),\n ]),\n },\n promoteQueued: {\n args: Type.Object({ id: Text, operationId: Optional(Text) }),\n result: Type.Union([\n Type.Literal('promoted'),\n Type.Literal('in_flight'),\n Type.Literal('target_changed'),\n Type.Literal('not_found'),\n ]),\n },\n resumeQueue: {},\n clearQueue: { result: Type.Object({ steering: Strings, followUp: Strings }) },\n rewind: {\n args: Type.Object({\n itemId: Text,\n summarize: Optional(Flag),\n customInstructions: Optional(Text),\n replaceInstructions: Optional(Flag),\n label: Optional(Text),\n }),\n result: Type.Object({\n editorText: Optional(Text),\n cancelled: Flag,\n aborted: Optional(Flag),\n summaryEntry: Optional(\n Type.Object({\n id: Text,\n parentId: Type.Union([Text, Type.Null()]),\n timestamp: Text,\n fromId: Text,\n summary: Text,\n details: Optional(Json),\n usage: Optional(Usage),\n fromHook: Optional(Flag),\n }),\n ),\n }),\n },\n extensionUiResponse: {\n args: Type.Union([\n Type.Object({ id: Text, value: Text }),\n Type.Object({ id: Text, confirmed: Flag }),\n Type.Object({ id: Text, cancelled: Type.Literal(true) }),\n ]),\n },\n getState: {\n result: Type.Object({\n model: Optional(Model),\n thinkingLevel: Thinking,\n fastMode: Flag,\n agentLocked: Optional(Flag),\n isStreaming: Flag,\n isCompacting: Flag,\n steeringMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n followUpMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n sessionId: Text,\n sessionName: Optional(Text),\n autoCompactionEnabled: Flag,\n messageCount: NumberValue,\n pendingMessageCount: NumberValue,\n operationId: Optional(Text),\n executionStatus: Optional(Type.Union([Type.Literal('open'), Type.Literal('aborting')])),\n queuePaused: Optional(Flag),\n queueRevision: Optional(NumberValue),\n }),\n },\n getSessionStats: {\n result: Type.Object({\n sessionId: Text,\n totalMessages: NumberValue,\n tokens: Usage,\n cost: NumberValue,\n contextUsage: Optional(\n Type.Object({\n tokens: Type.Union([NumberValue, Type.Null()]),\n contextWindow: NumberValue,\n percent: Type.Union([NumberValue, Type.Null()]),\n }),\n ),\n }),\n },\n getCommands: {\n result: Type.Array(\n Type.Object({\n name: Text,\n description: Optional(Text),\n source: Type.Union([Type.Literal('extension'), Type.Literal('prompt'), Type.Literal('skill')]),\n sourceInfo: Optional(\n Type.Object({\n path: Text,\n source: Text,\n scope: Type.Union([Type.Literal('user'), Type.Literal('project'), Type.Literal('temporary')]),\n origin: Type.Union([Type.Literal('package'), Type.Literal('top-level')]),\n baseDir: Optional(Text),\n }),\n ),\n }),\n ),\n },\n getAvailableModels: { result: Type.Array(Model) },\n getAvailableThinkingLevels: { result: Type.Array(Thinking) },\n compact: { args: Type.Object({ customInstructions: Optional(Text) }), result: Json },\n setName: { args: Text },\n setGroups: { args: Type.Array(Text) },\n};\n/** The `po.session` methods as Chord specs. */\nexport const SessionMethods = chordMethods(SessionMethodSchemas);\n\nconst ErrorSchema = Type.Object({ code: Text, message: Text });\nconst documented = (\n id: string,\n service: string,\n member: string,\n direction: PoSocketContract['direction'],\n input: TSchema,\n description: string,\n): PoSocketContract => ({\n id,\n scope: service === 'po.hub' ? 'global' : 'session',\n service,\n member,\n direction,\n kind: direction === 'server-to-client' ? 'state' : 'method',\n input,\n ...(direction === 'server-to-client' ? {} : { errors: ErrorSchema }),\n description,\n});\nexport const sessionSocketContracts: PoSocketContract[] = [\n ...Object.entries<PoMethodSchemas>(SessionMethodSchemas).map(([member, { args, result }]): PoSocketContract => ({\n id: `session.${member}`,\n scope: 'session',\n service: 'po.session',\n member,\n direction: 'client-to-server',\n kind: 'method',\n description: `Session ${member}. The Chord call carries the argument; a void result is null.`,\n input: Type.Tuple(args === undefined ? [] : ([args] as TSchema[])),\n ...(result === undefined ? {} : { output: result }),\n errors: ErrorSchema,\n })),\n documented(\n 'session.state',\n 'po.session',\n 'state',\n 'server-to-client',\n SessionServiceStateSchema,\n 'The `state` member of `po.session`, reconstructed from Chord snapshot and delta frames.',\n ),\n documented(\n 'hub.state',\n 'po.hub',\n 'state',\n 'server-to-client',\n PoHubStateSchema,\n 'Sessions and workspaces this connection may see, and notices it has not acknowledged.',\n ),\n documented(\n 'thread.frame',\n 'po.thread',\n 'frame',\n 'server-to-client',\n PoThreadFrameSchema,\n 'The latest frame of one child thread: transcript_state while it runs, transcript_ready once finished.',\n ),\n documented(\n 'channels.latest',\n 'po.channels',\n 'latest',\n 'server-to-client',\n PoChannelsStateSchema,\n 'The latest payload of each extension channel frame type for one session.',\n ),\n documented(\n 'channels.receive',\n 'po.channels',\n 'receive',\n 'client-to-server',\n Type.Tuple([ChannelFrameSchema]),\n 'Send one extension channel frame to the session.',\n ),\n];\n"],"mappings":"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"}
@@ -1,17 +1,24 @@
1
- let _earendil_works_chord = require("@earendil-works/chord");
2
1
  //#region src/schemas/sessionProtocol.ts
3
- const DOOM_SESSION_SERVICE_ID = "po.session.v2";
4
- const DOOM_SESSION_MANAGEMENT_SERVICE_ID = "po.session-management.v1";
5
- const DOOM_COCKPIT_SERVER_ID = "646f6f6d-7069-4000-8000-000000000001";
6
- const DoomHubService = (0, _earendil_works_chord.defineService)("po.hub.v1");
7
- const DoomSessionService = (0, _earendil_works_chord.defineService)(DOOM_SESSION_SERVICE_ID);
8
- const DoomSessionManagementService = (0, _earendil_works_chord.defineService)(DOOM_SESSION_MANAGEMENT_SERVICE_ID);
2
+ /** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */
3
+ const SESSION_GROUPS_CHANGED_FRAME = "session_groups_changed";
4
+ const MAX_SESSION_GROUPS = 8;
5
+ const MAX_SESSION_GROUP_LENGTH = 32;
6
+ /**
7
+ * Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).
8
+ * Throws when the input is not a string list or breaks a limit, so callers never store a guess.
9
+ */
10
+ function normalizeSessionGroups(groups) {
11
+ if (!Array.isArray(groups) || groups.some((group) => typeof group !== "string")) throw new Error("Session groups must be a list of names.");
12
+ const names = [...new Set(groups.map((group) => group.trim()).filter((group) => group !== ""))];
13
+ if (names.length > 8) throw new Error(`A session can belong to at most 8 groups.`);
14
+ const long = names.find((group) => group.length > 32);
15
+ if (long !== void 0) throw new Error(`Group name '${long}' is longer than 32 characters.`);
16
+ return names;
17
+ }
9
18
  //#endregion
10
- exports.DOOM_COCKPIT_SERVER_ID = DOOM_COCKPIT_SERVER_ID;
11
- exports.DOOM_SESSION_MANAGEMENT_SERVICE_ID = DOOM_SESSION_MANAGEMENT_SERVICE_ID;
12
- exports.DOOM_SESSION_SERVICE_ID = DOOM_SESSION_SERVICE_ID;
13
- exports.DoomHubService = DoomHubService;
14
- exports.DoomSessionManagementService = DoomSessionManagementService;
15
- exports.DoomSessionService = DoomSessionService;
19
+ exports.MAX_SESSION_GROUPS = MAX_SESSION_GROUPS;
20
+ exports.MAX_SESSION_GROUP_LENGTH = MAX_SESSION_GROUP_LENGTH;
21
+ exports.SESSION_GROUPS_CHANGED_FRAME = SESSION_GROUPS_CHANGED_FRAME;
22
+ exports.normalizeSessionGroups = normalizeSessionGroups;
16
23
 
17
24
  //# sourceMappingURL=sessionProtocol.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionProtocol.cjs","names":["defineService"],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import { defineService, type Context, type ReplicatedState } from '@earendil-works/chord';\n\nimport type { DoomSessionUpdateEvent } from './sessionUpdates';\n\nexport const DOOM_SESSION_SERVICE_ID = 'po.session.v2';\nexport const DOOM_SESSION_MANAGEMENT_SERVICE_ID = 'po.session-management.v1';\nexport const DOOM_COCKPIT_SERVER_ID = '646f6f6d-7069-4000-8000-000000000001';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff' | 'uncertain';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\nexport type TranscriptProgress =\n | { type: 'item_started'; item: TranscriptItem }\n | { type: 'item_updated'; item: TranscriptItem }\n | { type: 'item_finished'; item: TranscriptItem };\n\nexport interface SessionSnapshot {\n id: string;\n cwd: string;\n name?: string;\n createdAt: number;\n updatedAt: number;\n phase: SessionPhase;\n model: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n attached: boolean;\n locked: boolean;\n revision: number;\n transcript: TranscriptItem[];\n queuedSteer: UserTranscriptItem[];\n queuedSteerCount: number;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\nexport interface HubService {\n readonly state: ReplicatedState<{ events: ProtocolEvent[] }>;\n send(frame: { type: string; [key: string]: JsonValue }, context: Context): Promise<void>;\n}\n\nexport const DoomHubService = defineService<HubService>('po.hub.v1');\n\nexport interface SessionServiceState {\n snapshot: Omit<SessionSnapshot, 'transcript'>;\n progress: TranscriptProgress | null;\n /** ACP v2-shaped agent events, replayed in sequence across fresh bindings. */\n updates?: DoomSessionUpdateEvent[];\n presentation?: SessionPresentation;\n /** Current concurrent drafts/tools, so a fresh attachment does not depend on missed progress events. */\n inFlight?: TranscriptItem[];\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n /** Current drafts are separate from committed history. */\n drafts: TranscriptItem[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionFile?: string;\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionFile?: string;\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n}\n\nexport interface SessionManagementService {\n attach(sessionId: string, context: Context): Promise<void>;\n detach(context: Context): Promise<void>;\n}\n\nexport const DoomSessionService = defineService<SessionService>(DOOM_SESSION_SERVICE_ID);\nexport const DoomSessionManagementService = defineService<SessionManagementService>(DOOM_SESSION_MANAGEMENT_SERVICE_ID);\n"],"mappings":";;AAIA,MAAa,0BAA0B;AACvC,MAAa,qCAAqC;AAClD,MAAa,yBAAyB;AA+HtC,MAAa,kBAAA,GAAiBA,sBAAAA,cAAAA,CAA0B,WAAW;AAyLnE,MAAa,sBAAA,GAAqBA,sBAAAA,cAAAA,CAA8B,uBAAuB;AACvF,MAAa,gCAAA,GAA+BA,sBAAAA,cAAAA,CAAwC,kCAAkC"}
1
+ {"version":3,"file":"sessionProtocol.cjs","names":[],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import type { ReplicatedState } from '@earendil-works/chord';\nimport type { Context } from '@earendil-works/chord/context';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\n/** Session settings the server owns. Run state lives in `live` and `lifecycle`, history in transcript pages. */\nexport interface SessionSnapshot {\n fastMode: boolean;\n locked: boolean;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\n/** A tool that is still running, with the output it has streamed so far. */\nexport interface SessionLiveTool {\n toolCallId: string;\n toolName: string;\n args: JsonValue;\n partialResult?: { content: Array<TextContentPart | ImageContentPart>; details?: JsonValue };\n}\n\n/** The part of a run that is not journalled yet: one ordered value, cleared when the run settles. */\nexport interface SessionLive {\n phase: SessionPhase;\n /** The assistant message being streamed, in the shape Pi's `message_update` carries. */\n message?: {\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart>;\n model: string;\n timestamp: number;\n };\n tools: Record<string, SessionLiveTool>;\n}\n\nexport interface SessionServiceState {\n snapshot: SessionSnapshot;\n presentation?: SessionPresentation;\n live?: SessionLive;\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n setGroups(groups: string[], context: Context): Promise<void>;\n}\n\n/** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */\nexport const SESSION_GROUPS_CHANGED_FRAME = 'session_groups_changed';\nexport const MAX_SESSION_GROUPS = 8;\nexport const MAX_SESSION_GROUP_LENGTH = 32;\n\n/**\n * Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).\n * Throws when the input is not a string list or breaks a limit, so callers never store a guess.\n */\nexport function normalizeSessionGroups(groups: unknown): string[] {\n if (!Array.isArray(groups) || groups.some((group) => typeof group !== 'string'))\n throw new Error('Session groups must be a list of names.');\n const names = [...new Set((groups as string[]).map((group) => group.trim()).filter((group) => group !== ''))];\n if (names.length > MAX_SESSION_GROUPS)\n throw new Error(`A session can belong to at most ${MAX_SESSION_GROUPS} groups.`);\n const long = names.find((group) => group.length > MAX_SESSION_GROUP_LENGTH);\n if (long !== undefined)\n throw new Error(`Group name '${long}' is longer than ${MAX_SESSION_GROUP_LENGTH} characters.`);\n return names;\n}\n"],"mappings":";;AA2SA,MAAa,+BAA+B;AAC5C,MAAa,qBAAqB;AAClC,MAAa,2BAA2B;;;;;AAMxC,SAAgB,uBAAuB,QAA2B;CAChE,IAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,OAAO,UAAU,QAAQ,GAC5E,MAAM,IAAI,MAAM,yCAAyC;CAC3D,MAAM,QAAQ,CAAC,GAAG,IAAI,IAAK,OAAoB,KAAK,UAAU,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,UAAU,UAAU,EAAE,CAAC,CAAC;CAC5G,IAAI,MAAM,SAAA,GACR,MAAM,IAAI,MAAM,2CAA+D;CACjF,MAAM,OAAO,MAAM,MAAM,UAAU,MAAM,SAAA,EAAiC;CAC1E,IAAI,SAAS,KAAA,GACX,MAAM,IAAI,MAAM,eAAe,KAAK,gCAAyD;CAC/F,OAAO;AACT"}
@@ -1,9 +1,6 @@
1
- import { DoomSessionUpdateEvent } from "./sessionUpdates.mjs";
2
- import { Context, ReplicatedState } from "@earendil-works/chord";
1
+ import { Context } from "@earendil-works/chord/context";
2
+ import { ReplicatedState } from "@earendil-works/chord";
3
3
  //#region src/schemas/sessionProtocol.d.ts
4
- export declare const DOOM_SESSION_SERVICE_ID = "po.session.v2";
5
- export declare const DOOM_SESSION_MANAGEMENT_SERVICE_ID = "po.session-management.v1";
6
- export declare const DOOM_COCKPIT_SERVER_ID = "646f6f6d-7069-4000-8000-000000000001";
7
4
  type JsonValue$1 = null | boolean | number | string | JsonValue$1[] | {
8
5
  [key: string]: JsonValue$1;
9
6
  };
@@ -24,7 +21,7 @@ export interface SessionLifecycle {
24
21
  images?: ImageContentPart[];
25
22
  delivery: 'steer' | 'followUp' | 'nextRun';
26
23
  scheduling: 'automatic' | 'held';
27
- disposition: 'pending' | 'handoff' | 'uncertain';
24
+ disposition: 'pending' | 'handoff';
28
25
  }>;
29
26
  }
30
27
  export interface ModelRef {
@@ -80,32 +77,10 @@ export interface ToolTranscriptItem {
80
77
  timestamp: number;
81
78
  }
82
79
  export type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;
83
- export type TranscriptProgress = {
84
- type: 'item_started';
85
- item: TranscriptItem;
86
- } | {
87
- type: 'item_updated';
88
- item: TranscriptItem;
89
- } | {
90
- type: 'item_finished';
91
- item: TranscriptItem;
92
- };
80
+ /** Session settings the server owns. Run state lives in `live` and `lifecycle`, history in transcript pages. */
93
81
  export interface SessionSnapshot {
94
- id: string;
95
- cwd: string;
96
- name?: string;
97
- createdAt: number;
98
- updatedAt: number;
99
- phase: SessionPhase;
100
- model: ModelRef;
101
- thinkingLevel: ThinkingLevel;
102
82
  fastMode: boolean;
103
- attached: boolean;
104
83
  locked: boolean;
105
- revision: number;
106
- transcript: TranscriptItem[];
107
- queuedSteer: UserTranscriptItem[];
108
- queuedSteerCount: number;
109
84
  /** Authoritative execution and queue state, independent of transcript replay. */
110
85
  lifecycle?: SessionLifecycle;
111
86
  }
@@ -124,24 +99,32 @@ export interface SessionPresentation {
124
99
  events: ProtocolEvent[];
125
100
  projections: ProtocolEvent[];
126
101
  }
127
- export interface HubService {
128
- readonly state: ReplicatedState<{
129
- events: ProtocolEvent[];
130
- }>;
131
- send(frame: {
132
- type: string;
133
- [key: string]: JsonValue$1;
134
- }, context: Context): Promise<void>;
102
+ /** A tool that is still running, with the output it has streamed so far. */
103
+ export interface SessionLiveTool {
104
+ toolCallId: string;
105
+ toolName: string;
106
+ args: JsonValue$1;
107
+ partialResult?: {
108
+ content: Array<TextContentPart | ImageContentPart>;
109
+ details?: JsonValue$1;
110
+ };
111
+ }
112
+ /** The part of a run that is not journalled yet: one ordered value, cleared when the run settles. */
113
+ export interface SessionLive {
114
+ phase: SessionPhase;
115
+ /** The assistant message being streamed, in the shape Pi's `message_update` carries. */
116
+ message?: {
117
+ role: 'assistant';
118
+ content: Array<TextContentPart | ThinkingContentPart>;
119
+ model: string;
120
+ timestamp: number;
121
+ };
122
+ tools: Record<string, SessionLiveTool>;
135
123
  }
136
- export declare const DoomHubService: import("@earendil-works/chord").Service<HubService>;
137
124
  export interface SessionServiceState {
138
- snapshot: Omit<SessionSnapshot, 'transcript'>;
139
- progress: TranscriptProgress | null;
140
- /** ACP v2-shaped agent events, replayed in sequence across fresh bindings. */
141
- updates?: DoomSessionUpdateEvent[];
125
+ snapshot: SessionSnapshot;
142
126
  presentation?: SessionPresentation;
143
- /** Current concurrent drafts/tools, so a fresh attachment does not depend on missed progress events. */
144
- inFlight?: TranscriptItem[];
127
+ live?: SessionLive;
145
128
  }
146
129
  export interface TranscriptPageRequest {
147
130
  cursor?: string;
@@ -159,8 +142,6 @@ export interface TranscriptPage {
159
142
  revision: number;
160
143
  /** Profile and other context preceding this page. */
161
144
  context: JsonValue$1[];
162
- /** Current drafts are separate from committed history. */
163
- drafts: TranscriptItem[];
164
145
  }
165
146
  export interface SessionMessageArgs {
166
147
  text: string;
@@ -231,7 +212,6 @@ export interface SessionStateInfo {
231
212
  isCompacting: boolean;
232
213
  steeringMode: 'all' | 'one-at-a-time';
233
214
  followUpMode: 'all' | 'one-at-a-time';
234
- sessionFile?: string;
235
215
  sessionId: string;
236
216
  sessionName?: string;
237
217
  autoCompactionEnabled: boolean;
@@ -243,7 +223,6 @@ export interface SessionStateInfo {
243
223
  queueRevision?: number;
244
224
  }
245
225
  export interface SessionStats {
246
- sessionFile?: string;
247
226
  sessionId: string;
248
227
  totalMessages: number;
249
228
  tokens: SessionUsage;
@@ -301,13 +280,17 @@ export interface SessionService {
301
280
  customInstructions?: string;
302
281
  }, context: Context): Promise<JsonValue$1>;
303
282
  setName(name: string, context: Context): Promise<void>;
283
+ setGroups(groups: string[], context: Context): Promise<void>;
304
284
  }
305
- export interface SessionManagementService {
306
- attach(sessionId: string, context: Context): Promise<void>;
307
- detach(context: Context): Promise<void>;
308
- }
309
- export declare const DoomSessionService: import("@earendil-works/chord").Service<SessionService>;
310
- export declare const DoomSessionManagementService: import("@earendil-works/chord").Service<SessionManagementService>;
285
+ /** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */
286
+ export declare const SESSION_GROUPS_CHANGED_FRAME = "session_groups_changed";
287
+ export declare const MAX_SESSION_GROUPS = 8;
288
+ export declare const MAX_SESSION_GROUP_LENGTH = 32;
289
+ /**
290
+ * Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).
291
+ * Throws when the input is not a string list or breaks a limit, so callers never store a guess.
292
+ */
293
+ export declare function normalizeSessionGroups(groups: unknown): string[];
311
294
  //#endregion
312
295
  export { JsonValue$1 as JsonValue };
313
296
  //# sourceMappingURL=sessionProtocol.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionProtocol.d.mts","names":["JsonValue"],"sources":["../../../src/schemas/sessionProtocol.ts"],"mappings":"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"}
1
+ {"version":3,"file":"sessionProtocol.d.mts","names":["JsonValue"],"sources":["../../../src/schemas/sessionProtocol.ts"],"mappings":";;;KAGYA,iDAA+CA;GAAiB,cAAcA;;YAC9E;YACA;;iBAGK;EACf;EACA;IAAa;IAAY;IAA2C;;EACpE;EACA,OAAO;IACL;IACA;IACA,SAAS;IACT;IACA;IACA;;;iBAIa;EACf;EACA;;iBAGe;EACf;EACA;;iBAGe;EACf;EACA;EACA;;iBAGe;EACf;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA,OAAOA;;iBAGQ;EACf;EACA;EACA,SAAS,MAAM,kBAAkB;EACjC;;iBAGe;EACf;EACA;EACA,SAAS,MAAM,kBAAkB,sBAAsB;EACvD,OAAO;EACP;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA,OAAOA;EACP,SAAS,MAAM,kBAAkB;EACjC,UAAUA;EACV;EACA;EACA;;YAGU,iBAAiB,qBAAqB,0BAA0B;;iBAG3D;EACf;EACA;;EAEA,YAAY;;iBAGG;EACf;EACA;IAAS;KAAe,cAAcA;;;iBAGvB;EACf;EACA;;EAEA;EACA,QAAQ;EACR,aAAa;;;iBAIE;EACf;EACA;EACA,MAAMA;EACN;IAAkB,SAAS,MAAM,kBAAkB;IAAmB,UAAUA;;;;iBAIjE;EACf,OAAO;;EAEP;IACE;IACA,SAAS,MAAM,kBAAkB;IACjC;IACA;;EAEF,OAAO,eAAe;;iBAGP;EACf,UAAU;EACV,eAAe;EACf,OAAO;;iBAGQ;EACf;EACA;EACA;EACA;;iBAGe;EACf,SAASA;EACT;EACA;EACA;EACA;EACA;EACA;;EAEA,SAASA;;iBAGM;EACf;EACA,SAAS;;iBAGM,mBAAmB;;EAElC;;YAEU,YAAY;YACZ,eAAe;iBACV;EACf;;iBAEe,0BAA0B;EACzC;;iBAGe;EACf;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA;EACA,UAAUA;EACV,QAAQ;EACR;;iBAGe;EACf;EACA;EACA;EACA,eAAe;;YAGL;EACN;EAAY;;EACZ;EAAY;;EACZ;EAAY;;iBAED;EACf,QAAQ;EACR,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA,QAAQ;EACR;EACA;IACE;IACA;IACA;;;iBAIa;EACf;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA,aAAa;;iBAGE;WACN,OAAO,gBAAgB;EAChC,mBAAmB,MAAM,uBAAuB,SAAS,UAAU,QAAQ;EAC3E,OAAO,cAAc,SAAS,UAAU;EACxC,OAAO,MAAM,YAAY,SAAS,UAAU;EAC5C,MAAM,cAAc,SAAS,UAAU;EACvC,MAAM,MAAM,WAAW,SAAS,UAAU;EAC1C,MAAM,SAAS,UAAU;EACzB,eAAe;IAAQ;KAAuB,SAAS,UAAU;EACjE,SAAS,OAAO,UAAU,SAAS,UAAU;EAC7C,YAAY,eAAe,eAAe,SAAS,UAAU;EAC7D,YAAY,kBAAkB,SAAS,UAAU;EACjD,aAAa,iBAAiB,SAAS,UAAU;EACjD,SAAS,MAAM,cAAc,SAAS,UAAU;EAChD,iBAAiB,MAAM,cAAc,SAAS,UAAU;IAAU;;EAClE,aACE,MAAM,gBACN,SAAS,UACR;EACH,cACE,MAAM,mBACN,SAAS,UACR;EACH,YAAY,SAAS,UAAU;EAC/B,WAAW,SAAS,UAAU,QAAQ;EACtC,OAAO,MAAM,YAAY,SAAS,UAAU,QAAQ;EACpD,oBAAoB,UAAU,qBAAqB,SAAS,UAAU;EACtE,SAAS,SAAS,UAAU,QAAQ;EACpC,gBAAgB,SAAS,UAAU,QAAQ;EAC3C,YAAY,SAAS,UAAU,QAAQ;EACvC,mBAAmB,SAAS,UAAU,QAAQ;EAC9C,2BAA2B,SAAS,UAAU,QAAQ;EACtD,QAAQ;IAAQ;KAA+B,SAAS,UAAU,QAAQA;EAC1E,QAAQ,cAAc,SAAS,UAAU;EACzC,UAAU,kBAAkB,SAAS,UAAU;;;qBAIpC;qBACA;qBACA;;;;;wBAMG,uBAAuB"}
@@ -1,12 +1,21 @@
1
- import { defineService } from "@earendil-works/chord";
2
1
  //#region src/schemas/sessionProtocol.ts
3
- const DOOM_SESSION_SERVICE_ID = "po.session.v2";
4
- const DOOM_SESSION_MANAGEMENT_SERVICE_ID = "po.session-management.v1";
5
- const DOOM_COCKPIT_SERVER_ID = "646f6f6d-7069-4000-8000-000000000001";
6
- const DoomHubService = defineService("po.hub.v1");
7
- const DoomSessionService = defineService(DOOM_SESSION_SERVICE_ID);
8
- const DoomSessionManagementService = defineService(DOOM_SESSION_MANAGEMENT_SERVICE_ID);
2
+ /** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */
3
+ const SESSION_GROUPS_CHANGED_FRAME = "session_groups_changed";
4
+ const MAX_SESSION_GROUPS = 8;
5
+ const MAX_SESSION_GROUP_LENGTH = 32;
6
+ /**
7
+ * Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).
8
+ * Throws when the input is not a string list or breaks a limit, so callers never store a guess.
9
+ */
10
+ function normalizeSessionGroups(groups) {
11
+ if (!Array.isArray(groups) || groups.some((group) => typeof group !== "string")) throw new Error("Session groups must be a list of names.");
12
+ const names = [...new Set(groups.map((group) => group.trim()).filter((group) => group !== ""))];
13
+ if (names.length > 8) throw new Error(`A session can belong to at most 8 groups.`);
14
+ const long = names.find((group) => group.length > 32);
15
+ if (long !== void 0) throw new Error(`Group name '${long}' is longer than 32 characters.`);
16
+ return names;
17
+ }
9
18
  //#endregion
10
- export { DOOM_COCKPIT_SERVER_ID, DOOM_SESSION_MANAGEMENT_SERVICE_ID, DOOM_SESSION_SERVICE_ID, DoomHubService, DoomSessionManagementService, DoomSessionService };
19
+ export { MAX_SESSION_GROUPS, MAX_SESSION_GROUP_LENGTH, SESSION_GROUPS_CHANGED_FRAME, normalizeSessionGroups };
11
20
 
12
21
  //# sourceMappingURL=sessionProtocol.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionProtocol.mjs","names":[],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import { defineService, type Context, type ReplicatedState } from '@earendil-works/chord';\n\nimport type { DoomSessionUpdateEvent } from './sessionUpdates';\n\nexport const DOOM_SESSION_SERVICE_ID = 'po.session.v2';\nexport const DOOM_SESSION_MANAGEMENT_SERVICE_ID = 'po.session-management.v1';\nexport const DOOM_COCKPIT_SERVER_ID = '646f6f6d-7069-4000-8000-000000000001';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff' | 'uncertain';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\nexport type TranscriptProgress =\n | { type: 'item_started'; item: TranscriptItem }\n | { type: 'item_updated'; item: TranscriptItem }\n | { type: 'item_finished'; item: TranscriptItem };\n\nexport interface SessionSnapshot {\n id: string;\n cwd: string;\n name?: string;\n createdAt: number;\n updatedAt: number;\n phase: SessionPhase;\n model: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n attached: boolean;\n locked: boolean;\n revision: number;\n transcript: TranscriptItem[];\n queuedSteer: UserTranscriptItem[];\n queuedSteerCount: number;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\nexport interface HubService {\n readonly state: ReplicatedState<{ events: ProtocolEvent[] }>;\n send(frame: { type: string; [key: string]: JsonValue }, context: Context): Promise<void>;\n}\n\nexport const DoomHubService = defineService<HubService>('po.hub.v1');\n\nexport interface SessionServiceState {\n snapshot: Omit<SessionSnapshot, 'transcript'>;\n progress: TranscriptProgress | null;\n /** ACP v2-shaped agent events, replayed in sequence across fresh bindings. */\n updates?: DoomSessionUpdateEvent[];\n presentation?: SessionPresentation;\n /** Current concurrent drafts/tools, so a fresh attachment does not depend on missed progress events. */\n inFlight?: TranscriptItem[];\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n /** Current drafts are separate from committed history. */\n drafts: TranscriptItem[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionFile?: string;\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionFile?: string;\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n}\n\nexport interface SessionManagementService {\n attach(sessionId: string, context: Context): Promise<void>;\n detach(context: Context): Promise<void>;\n}\n\nexport const DoomSessionService = defineService<SessionService>(DOOM_SESSION_SERVICE_ID);\nexport const DoomSessionManagementService = defineService<SessionManagementService>(DOOM_SESSION_MANAGEMENT_SERVICE_ID);\n"],"mappings":";;AAIA,MAAa,0BAA0B;AACvC,MAAa,qCAAqC;AAClD,MAAa,yBAAyB;AA+HtC,MAAa,iBAAiB,cAA0B,WAAW;AAyLnE,MAAa,qBAAqB,cAA8B,uBAAuB;AACvF,MAAa,+BAA+B,cAAwC,kCAAkC"}
1
+ {"version":3,"file":"sessionProtocol.mjs","names":[],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import type { ReplicatedState } from '@earendil-works/chord';\nimport type { Context } from '@earendil-works/chord/context';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\n/** Session settings the server owns. Run state lives in `live` and `lifecycle`, history in transcript pages. */\nexport interface SessionSnapshot {\n fastMode: boolean;\n locked: boolean;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\n/** A tool that is still running, with the output it has streamed so far. */\nexport interface SessionLiveTool {\n toolCallId: string;\n toolName: string;\n args: JsonValue;\n partialResult?: { content: Array<TextContentPart | ImageContentPart>; details?: JsonValue };\n}\n\n/** The part of a run that is not journalled yet: one ordered value, cleared when the run settles. */\nexport interface SessionLive {\n phase: SessionPhase;\n /** The assistant message being streamed, in the shape Pi's `message_update` carries. */\n message?: {\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart>;\n model: string;\n timestamp: number;\n };\n tools: Record<string, SessionLiveTool>;\n}\n\nexport interface SessionServiceState {\n snapshot: SessionSnapshot;\n presentation?: SessionPresentation;\n live?: SessionLive;\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n setGroups(groups: string[], context: Context): Promise<void>;\n}\n\n/** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */\nexport const SESSION_GROUPS_CHANGED_FRAME = 'session_groups_changed';\nexport const MAX_SESSION_GROUPS = 8;\nexport const MAX_SESSION_GROUP_LENGTH = 32;\n\n/**\n * Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).\n * Throws when the input is not a string list or breaks a limit, so callers never store a guess.\n */\nexport function normalizeSessionGroups(groups: unknown): string[] {\n if (!Array.isArray(groups) || groups.some((group) => typeof group !== 'string'))\n throw new Error('Session groups must be a list of names.');\n const names = [...new Set((groups as string[]).map((group) => group.trim()).filter((group) => group !== ''))];\n if (names.length > MAX_SESSION_GROUPS)\n throw new Error(`A session can belong to at most ${MAX_SESSION_GROUPS} groups.`);\n const long = names.find((group) => group.length > MAX_SESSION_GROUP_LENGTH);\n if (long !== undefined)\n throw new Error(`Group name '${long}' is longer than ${MAX_SESSION_GROUP_LENGTH} characters.`);\n return names;\n}\n"],"mappings":";;AA2SA,MAAa,+BAA+B;AAC5C,MAAa,qBAAqB;AAClC,MAAa,2BAA2B;;;;;AAMxC,SAAgB,uBAAuB,QAA2B;CAChE,IAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,OAAO,UAAU,QAAQ,GAC5E,MAAM,IAAI,MAAM,yCAAyC;CAC3D,MAAM,QAAQ,CAAC,GAAG,IAAI,IAAK,OAAoB,KAAK,UAAU,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,UAAU,UAAU,EAAE,CAAC,CAAC;CAC5G,IAAI,MAAM,SAAA,GACR,MAAM,IAAI,MAAM,2CAA+D;CACjF,MAAM,OAAO,MAAM,MAAM,UAAU,MAAM,SAAA,EAAiC;CAC1E,IAAI,SAAS,KAAA,GACX,MAAM,IAAI,MAAM,eAAe,KAAK,gCAAyD;CAC/F,OAAO;AACT"}
@@ -2,7 +2,7 @@ let typebox = require("typebox");
2
2
  let typebox_value = require("typebox/value");
3
3
  //#region src/schemas/skills.ts
4
4
  /** Provider-owned Cordis service for live skill-directory contributions. */
5
- const DOOM_SKILL_SOURCES_SERVICE = "doom/skill-sources";
5
+ const PO_SKILL_SOURCES_SERVICE = "po/skill-sources";
6
6
  /**
7
7
  * The custom session entry journaled once Pi has rebuilt its resource catalog
8
8
  * for a reload.
@@ -17,7 +17,7 @@ const DOOM_SKILL_SOURCES_SERVICE = "doom/skill-sources";
17
17
  * way the minor-mode catalog projection does, so it needs no new protocol, and
18
18
  * a custom entry with no registered renderer is invisible in the TUI.
19
19
  */
20
- const DOOM_RESOURCE_CATALOG_ENTRY_TYPE = "doom-resource-catalog";
20
+ const PO_RESOURCE_CATALOG_ENTRY_TYPE = "po-resource-catalog";
21
21
  const MAX_GENERATION_LENGTH = 256;
22
22
  const SkillSourceNameSchema = typebox.Type.String({
23
23
  minLength: 1,
@@ -38,17 +38,17 @@ function cloneContribution(contribution) {
38
38
  function validateContribution(contribution) {
39
39
  if ((0, typebox_value.Check)(SkillSourceContributionSchema, contribution)) return cloneContribution(contribution);
40
40
  const [first] = (0, typebox_value.Errors)(SkillSourceContributionSchema, contribution);
41
- throw new TypeError(`Invalid Doom skill-source contribution${first ? ` at ${first.instancePath || "/"}: ${first.message}` : ""}.`);
41
+ throw new TypeError(`Invalid Po skill-source contribution${first ? ` at ${first.instancePath || "/"}: ${first.message}` : ""}.`);
42
42
  }
43
43
  /** Creates the provider-owned skill-source registry for one Cordis session. */
44
- function createDoomSkillSourcesService(generation) {
45
- if (generation.length === 0 || generation.length > MAX_GENERATION_LENGTH) throw new TypeError("Doom skill sources require a valid generation.");
44
+ function createPoSkillSourcesService(generation) {
45
+ if (generation.length === 0 || generation.length > MAX_GENERATION_LENGTH) throw new TypeError("Po skill sources require a valid generation.");
46
46
  const registrations = /* @__PURE__ */ new Map();
47
47
  const listeners = /* @__PURE__ */ new Set();
48
48
  let sequence = 0;
49
49
  let disposed = false;
50
50
  const ensureActive = () => {
51
- if (disposed) throw new Error("The Doom skill-sources service is disposed.");
51
+ if (disposed) throw new Error("The Po skill-sources service is disposed.");
52
52
  };
53
53
  const list = () => [...registrations.values()].map(({ contribution }) => cloneContribution(contribution)).sort((left, right) => left.source.localeCompare(right.source));
54
54
  const notify = () => {
@@ -95,21 +95,21 @@ function createDoomSkillSourcesService(generation) {
95
95
  }
96
96
  });
97
97
  }
98
- function readDoomSkillSourcesService(context) {
99
- return context.get(DOOM_SKILL_SOURCES_SERVICE);
98
+ function readPoSkillSourcesService(context) {
99
+ return context.get(PO_SKILL_SOURCES_SERVICE);
100
100
  }
101
- function requireDoomSkillSourcesService(context) {
102
- const service = readDoomSkillSourcesService(context);
103
- if (!service) throw new Error("Doom skill sources are unavailable. Load @agimon-ai/po-skill.");
101
+ function requirePoSkillSourcesService(context) {
102
+ const service = readPoSkillSourcesService(context);
103
+ if (!service) throw new Error("Po skill sources are unavailable. Load @agimon-ai/po-skill.");
104
104
  return service;
105
105
  }
106
106
  //#endregion
107
- exports.DOOM_RESOURCE_CATALOG_ENTRY_TYPE = DOOM_RESOURCE_CATALOG_ENTRY_TYPE;
108
- exports.DOOM_SKILL_SOURCES_SERVICE = DOOM_SKILL_SOURCES_SERVICE;
107
+ exports.PO_RESOURCE_CATALOG_ENTRY_TYPE = PO_RESOURCE_CATALOG_ENTRY_TYPE;
108
+ exports.PO_SKILL_SOURCES_SERVICE = PO_SKILL_SOURCES_SERVICE;
109
109
  exports.SkillSourceContributionSchema = SkillSourceContributionSchema;
110
110
  exports.SkillSourceNameSchema = SkillSourceNameSchema;
111
- exports.createDoomSkillSourcesService = createDoomSkillSourcesService;
112
- exports.readDoomSkillSourcesService = readDoomSkillSourcesService;
113
- exports.requireDoomSkillSourcesService = requireDoomSkillSourcesService;
111
+ exports.createPoSkillSourcesService = createPoSkillSourcesService;
112
+ exports.readPoSkillSourcesService = readPoSkillSourcesService;
113
+ exports.requirePoSkillSourcesService = requirePoSkillSourcesService;
114
114
 
115
115
  //# sourceMappingURL=skills.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.cjs","names":["Type","Check","Errors"],"sources":["../../../src/schemas/skills.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for live skill-directory contributions. */\nexport const DOOM_SKILL_SOURCES_SERVICE = 'doom/skill-sources';\n\n/**\n * The custom session entry journaled once Pi has rebuilt its resource catalog\n * for a reload.\n *\n * A reload is the only thing that changes which skills exist, and Pi publishes\n * nothing for it: the whole wire record of a `/domains` switch is the single\n * `response:prompt` for the command that triggered it. An RPC client therefore\n * has no way to learn that the `get_commands` answer it cached, which is what\n * the web cockpit completes `$` from, now describes the previous domains.\n *\n * This entry is that missing signal. It rides Pi's `entry_appended` frames the\n * way the minor-mode catalog projection does, so it needs no new protocol, and\n * a custom entry with no registered renderer is invisible in the TUI.\n */\nexport const DOOM_RESOURCE_CATALOG_ENTRY_TYPE = 'doom-resource-catalog';\n\n/**\n * The payload of a resource-catalog entry.\n *\n * Arrival is the signal; a client re-reads the catalog rather than diffing\n * this. The revision only distinguishes one rebuild from the next in a journal\n * a human is reading.\n */\nexport interface ResourceCatalogProjection {\n readonly version: 1;\n readonly revision: number;\n}\n\nconst MAX_GENERATION_LENGTH = 256;\n\nexport const SkillSourceNameSchema = Type.String({\n minLength: 1,\n maxLength: 128,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\n\nexport const SkillSourceContributionSchema = Type.Object(\n {\n source: SkillSourceNameSchema,\n /** Absolute directories, the same ones the source hands `resources_discover`. */\n directories: Type.Array(Type.String({ minLength: 1 })),\n },\n { additionalProperties: false },\n);\n\nexport interface SkillSourceContribution {\n readonly source: string;\n readonly directories: readonly string[];\n}\n\nexport interface SkillSourceContributionHandle {\n readonly source: string;\n readonly generation: string;\n dispose(): void;\n}\n\n/** Direct registrar/query/subscription seam owned by po-skill. */\nexport interface DoomSkillSourcesService {\n readonly generation: string;\n register(contribution: SkillSourceContribution): SkillSourceContributionHandle;\n list(): readonly SkillSourceContribution[];\n subscribe(listener: (contributions: readonly SkillSourceContribution[]) => void): () => void;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/skill-sources': DoomSkillSourcesService;\n }\n}\n\ninterface RegisteredSkillSource {\n readonly token: symbol;\n readonly contribution: SkillSourceContribution;\n}\n\nfunction cloneContribution(contribution: SkillSourceContribution): SkillSourceContribution {\n return { source: contribution.source, directories: [...contribution.directories] };\n}\n\nfunction validateContribution(contribution: SkillSourceContribution): SkillSourceContribution {\n if (Check(SkillSourceContributionSchema, contribution)) return cloneContribution(contribution);\n const [first] = Errors(SkillSourceContributionSchema, contribution);\n throw new TypeError(\n `Invalid Doom skill-source contribution${first ? ` at ${first.instancePath || '/'}: ${first.message}` : ''}.`,\n );\n}\n\n/** Creates the provider-owned skill-source registry for one Cordis session. */\nexport function createDoomSkillSourcesService(generation: string): DoomSkillSourcesService {\n if (generation.length === 0 || generation.length > MAX_GENERATION_LENGTH) {\n throw new TypeError('Doom skill sources require a valid generation.');\n }\n\n const registrations = new Map<string, RegisteredSkillSource>();\n const listeners = new Set<(contributions: readonly SkillSourceContribution[]) => void>();\n let sequence = 0;\n let disposed = false;\n\n const ensureActive = (): void => {\n if (disposed) throw new Error('The Doom skill-sources service is disposed.');\n };\n const list = (): readonly SkillSourceContribution[] =>\n [...registrations.values()]\n .map(({ contribution }) => cloneContribution(contribution))\n .sort((left, right) => left.source.localeCompare(right.source));\n const notify = (): void => {\n const contributions = list();\n for (const listener of listeners) listener(contributions);\n };\n\n const service: DoomSkillSourcesService = {\n generation,\n register(contribution) {\n ensureActive();\n const validated = validateContribution(contribution);\n sequence += 1;\n const token = Symbol(validated.source);\n const registrationGeneration = `${generation}:skill-source:${sequence}`;\n registrations.set(validated.source, { token, contribution: validated });\n notify();\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 (registrations.get(validated.source)?.token !== token) return;\n registrations.delete(validated.source);\n notify();\n },\n });\n },\n list,\n subscribe(listener) {\n ensureActive();\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n registrations.clear();\n listeners.clear();\n },\n };\n return Object.freeze(service);\n}\n\nexport function readDoomSkillSourcesService(context: Context): DoomSkillSourcesService | undefined {\n return context.get(DOOM_SKILL_SOURCES_SERVICE) as DoomSkillSourcesService | undefined;\n}\n\nexport function requireDoomSkillSourcesService(context: Context): DoomSkillSourcesService {\n const service = readDoomSkillSourcesService(context);\n if (!service) throw new Error('Doom skill sources are unavailable. Load @agimon-ai/po-skill.');\n return service;\n}\n"],"mappings":";;;;AAKA,MAAa,6BAA6B;;;;;;;;;;;;;;;AAgB1C,MAAa,mCAAmC;AAchD,MAAM,wBAAwB;AAE9B,MAAa,wBAAwBA,QAAAA,KAAK,OAAO;CAC/C,WAAW;CACX,WAAW;CACX,SAAS;AACX,CAAC;AAED,MAAa,gCAAgCA,QAAAA,KAAK,OAChD;CACE,QAAQ;;CAER,aAAaA,QAAAA,KAAK,MAAMA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACvD,GACA,EAAE,sBAAsB,MAAM,CAChC;AAiCA,SAAS,kBAAkB,cAAgE;CACzF,OAAO;EAAE,QAAQ,aAAa;EAAQ,aAAa,CAAC,GAAG,aAAa,WAAW;CAAE;AACnF;AAEA,SAAS,qBAAqB,cAAgE;CAC5F,KAAA,GAAIC,cAAAA,MAAAA,CAAM,+BAA+B,YAAY,GAAG,OAAO,kBAAkB,YAAY;CAC7F,MAAM,CAAC,UAAA,GAASC,cAAAA,OAAAA,CAAO,+BAA+B,YAAY;CAClE,MAAM,IAAI,UACR,yCAAyC,QAAQ,OAAO,MAAM,gBAAgB,IAAI,IAAI,MAAM,YAAY,GAAG,EAC7G;AACF;;AAGA,SAAgB,8BAA8B,YAA6C;CACzF,IAAI,WAAW,WAAW,KAAK,WAAW,SAAS,uBACjD,MAAM,IAAI,UAAU,gDAAgD;CAGtE,MAAM,gCAAgB,IAAI,IAAmC;CAC7D,MAAM,4BAAY,IAAI,IAAiE;CACvF,IAAI,WAAW;CACf,IAAI,WAAW;CAEf,MAAM,qBAA2B;EAC/B,IAAI,UAAU,MAAM,IAAI,MAAM,6CAA6C;CAC7E;CACA,MAAM,aACJ,CAAC,GAAG,cAAc,OAAO,CAAC,CAAC,CACxB,KAAK,EAAE,mBAAmB,kBAAkB,YAAY,CAAC,CAAC,CAC1D,MAAM,MAAM,UAAU,KAAK,OAAO,cAAc,MAAM,MAAM,CAAC;CAClE,MAAM,eAAqB;EACzB,MAAM,gBAAgB,KAAK;EAC3B,KAAK,MAAM,YAAY,WAAW,SAAS,aAAa;CAC1D;CAsCA,OAAO,OAAO,OAAO;EAnCnB;EACA,SAAS,cAAc;GACrB,aAAa;GACb,MAAM,YAAY,qBAAqB,YAAY;GACnD,YAAY;GACZ,MAAM,QAAQ,OAAO,UAAU,MAAM;GACrC,MAAM,yBAAyB,GAAG,WAAW,gBAAgB;GAC7D,cAAc,IAAI,UAAU,QAAQ;IAAE;IAAO,cAAc;GAAU,CAAC;GACtE,OAAO;GACP,IAAI,uBAAuB;GAC3B,OAAO,OAAO,OAAO;IACnB,QAAQ,UAAU;IAClB,YAAY;IACZ,UAAU;KACR,IAAI,sBAAsB;KAC1B,uBAAuB;KACvB,IAAI,cAAc,IAAI,UAAU,MAAM,CAAC,EAAE,UAAU,OAAO;KAC1D,cAAc,OAAO,UAAU,MAAM;KACrC,OAAO;IACT;GACF,CAAC;EACH;EACA;EACA,UAAU,UAAU;GAClB,aAAa;GACb,UAAU,IAAI,QAAQ;GACtB,aAAa,UAAU,OAAO,QAAQ;EACxC;EACA,UAAU;GACR,IAAI,UAAU;GACd,WAAW;GACX,cAAc,MAAM;GACpB,UAAU,MAAM;EAClB;CAEyB,CAAC;AAC9B;AAEA,SAAgB,4BAA4B,SAAuD;CACjG,OAAO,QAAQ,IAAI,0BAA0B;AAC/C;AAEA,SAAgB,+BAA+B,SAA2C;CACxF,MAAM,UAAU,4BAA4B,OAAO;CACnD,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,+DAA+D;CAC7F,OAAO;AACT"}
1
+ {"version":3,"file":"skills.cjs","names":["Type","Check","Errors"],"sources":["../../../src/schemas/skills.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for live skill-directory contributions. */\nexport const PO_SKILL_SOURCES_SERVICE = 'po/skill-sources';\n\n/**\n * The custom session entry journaled once Pi has rebuilt its resource catalog\n * for a reload.\n *\n * A reload is the only thing that changes which skills exist, and Pi publishes\n * nothing for it: the whole wire record of a `/domains` switch is the single\n * `response:prompt` for the command that triggered it. An RPC client therefore\n * has no way to learn that the `get_commands` answer it cached, which is what\n * the web cockpit completes `$` from, now describes the previous domains.\n *\n * This entry is that missing signal. It rides Pi's `entry_appended` frames the\n * way the minor-mode catalog projection does, so it needs no new protocol, and\n * a custom entry with no registered renderer is invisible in the TUI.\n */\nexport const PO_RESOURCE_CATALOG_ENTRY_TYPE = 'po-resource-catalog';\n\n/**\n * The payload of a resource-catalog entry.\n *\n * Arrival is the signal; a client re-reads the catalog rather than diffing\n * this. The revision only distinguishes one rebuild from the next in a journal\n * a human is reading.\n */\nexport interface ResourceCatalogProjection {\n readonly version: 1;\n readonly revision: number;\n}\n\nconst MAX_GENERATION_LENGTH = 256;\n\nexport const SkillSourceNameSchema = Type.String({\n minLength: 1,\n maxLength: 128,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\n\nexport const SkillSourceContributionSchema = Type.Object(\n {\n source: SkillSourceNameSchema,\n /** Absolute directories, the same ones the source hands `resources_discover`. */\n directories: Type.Array(Type.String({ minLength: 1 })),\n },\n { additionalProperties: false },\n);\n\nexport interface SkillSourceContribution {\n readonly source: string;\n readonly directories: readonly string[];\n}\n\nexport interface SkillSourceContributionHandle {\n readonly source: string;\n readonly generation: string;\n dispose(): void;\n}\n\n/** Direct registrar/query/subscription seam owned by po-skill. */\nexport interface PoSkillSourcesService {\n readonly generation: string;\n register(contribution: SkillSourceContribution): SkillSourceContributionHandle;\n list(): readonly SkillSourceContribution[];\n subscribe(listener: (contributions: readonly SkillSourceContribution[]) => void): () => void;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/skill-sources': PoSkillSourcesService;\n }\n}\n\ninterface RegisteredSkillSource {\n readonly token: symbol;\n readonly contribution: SkillSourceContribution;\n}\n\nfunction cloneContribution(contribution: SkillSourceContribution): SkillSourceContribution {\n return { source: contribution.source, directories: [...contribution.directories] };\n}\n\nfunction validateContribution(contribution: SkillSourceContribution): SkillSourceContribution {\n if (Check(SkillSourceContributionSchema, contribution)) return cloneContribution(contribution);\n const [first] = Errors(SkillSourceContributionSchema, contribution);\n throw new TypeError(\n `Invalid Po skill-source contribution${first ? ` at ${first.instancePath || '/'}: ${first.message}` : ''}.`,\n );\n}\n\n/** Creates the provider-owned skill-source registry for one Cordis session. */\nexport function createPoSkillSourcesService(generation: string): PoSkillSourcesService {\n if (generation.length === 0 || generation.length > MAX_GENERATION_LENGTH) {\n throw new TypeError('Po skill sources require a valid generation.');\n }\n\n const registrations = new Map<string, RegisteredSkillSource>();\n const listeners = new Set<(contributions: readonly SkillSourceContribution[]) => void>();\n let sequence = 0;\n let disposed = false;\n\n const ensureActive = (): void => {\n if (disposed) throw new Error('The Po skill-sources service is disposed.');\n };\n const list = (): readonly SkillSourceContribution[] =>\n [...registrations.values()]\n .map(({ contribution }) => cloneContribution(contribution))\n .sort((left, right) => left.source.localeCompare(right.source));\n const notify = (): void => {\n const contributions = list();\n for (const listener of listeners) listener(contributions);\n };\n\n const service: PoSkillSourcesService = {\n generation,\n register(contribution) {\n ensureActive();\n const validated = validateContribution(contribution);\n sequence += 1;\n const token = Symbol(validated.source);\n const registrationGeneration = `${generation}:skill-source:${sequence}`;\n registrations.set(validated.source, { token, contribution: validated });\n notify();\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 (registrations.get(validated.source)?.token !== token) return;\n registrations.delete(validated.source);\n notify();\n },\n });\n },\n list,\n subscribe(listener) {\n ensureActive();\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n registrations.clear();\n listeners.clear();\n },\n };\n return Object.freeze(service);\n}\n\nexport function readPoSkillSourcesService(context: Context): PoSkillSourcesService | undefined {\n return context.get(PO_SKILL_SOURCES_SERVICE) as PoSkillSourcesService | undefined;\n}\n\nexport function requirePoSkillSourcesService(context: Context): PoSkillSourcesService {\n const service = readPoSkillSourcesService(context);\n if (!service) throw new Error('Po skill sources are unavailable. Load @agimon-ai/po-skill.');\n return service;\n}\n"],"mappings":";;;;AAKA,MAAa,2BAA2B;;;;;;;;;;;;;;;AAgBxC,MAAa,iCAAiC;AAc9C,MAAM,wBAAwB;AAE9B,MAAa,wBAAwBA,QAAAA,KAAK,OAAO;CAC/C,WAAW;CACX,WAAW;CACX,SAAS;AACX,CAAC;AAED,MAAa,gCAAgCA,QAAAA,KAAK,OAChD;CACE,QAAQ;;CAER,aAAaA,QAAAA,KAAK,MAAMA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACvD,GACA,EAAE,sBAAsB,MAAM,CAChC;AAiCA,SAAS,kBAAkB,cAAgE;CACzF,OAAO;EAAE,QAAQ,aAAa;EAAQ,aAAa,CAAC,GAAG,aAAa,WAAW;CAAE;AACnF;AAEA,SAAS,qBAAqB,cAAgE;CAC5F,KAAA,GAAIC,cAAAA,MAAAA,CAAM,+BAA+B,YAAY,GAAG,OAAO,kBAAkB,YAAY;CAC7F,MAAM,CAAC,UAAA,GAASC,cAAAA,OAAAA,CAAO,+BAA+B,YAAY;CAClE,MAAM,IAAI,UACR,uCAAuC,QAAQ,OAAO,MAAM,gBAAgB,IAAI,IAAI,MAAM,YAAY,GAAG,EAC3G;AACF;;AAGA,SAAgB,4BAA4B,YAA2C;CACrF,IAAI,WAAW,WAAW,KAAK,WAAW,SAAS,uBACjD,MAAM,IAAI,UAAU,8CAA8C;CAGpE,MAAM,gCAAgB,IAAI,IAAmC;CAC7D,MAAM,4BAAY,IAAI,IAAiE;CACvF,IAAI,WAAW;CACf,IAAI,WAAW;CAEf,MAAM,qBAA2B;EAC/B,IAAI,UAAU,MAAM,IAAI,MAAM,2CAA2C;CAC3E;CACA,MAAM,aACJ,CAAC,GAAG,cAAc,OAAO,CAAC,CAAC,CACxB,KAAK,EAAE,mBAAmB,kBAAkB,YAAY,CAAC,CAAC,CAC1D,MAAM,MAAM,UAAU,KAAK,OAAO,cAAc,MAAM,MAAM,CAAC;CAClE,MAAM,eAAqB;EACzB,MAAM,gBAAgB,KAAK;EAC3B,KAAK,MAAM,YAAY,WAAW,SAAS,aAAa;CAC1D;CAsCA,OAAO,OAAO,OAAO;EAnCnB;EACA,SAAS,cAAc;GACrB,aAAa;GACb,MAAM,YAAY,qBAAqB,YAAY;GACnD,YAAY;GACZ,MAAM,QAAQ,OAAO,UAAU,MAAM;GACrC,MAAM,yBAAyB,GAAG,WAAW,gBAAgB;GAC7D,cAAc,IAAI,UAAU,QAAQ;IAAE;IAAO,cAAc;GAAU,CAAC;GACtE,OAAO;GACP,IAAI,uBAAuB;GAC3B,OAAO,OAAO,OAAO;IACnB,QAAQ,UAAU;IAClB,YAAY;IACZ,UAAU;KACR,IAAI,sBAAsB;KAC1B,uBAAuB;KACvB,IAAI,cAAc,IAAI,UAAU,MAAM,CAAC,EAAE,UAAU,OAAO;KAC1D,cAAc,OAAO,UAAU,MAAM;KACrC,OAAO;IACT;GACF,CAAC;EACH;EACA;EACA,UAAU,UAAU;GAClB,aAAa;GACb,UAAU,IAAI,QAAQ;GACtB,aAAa,UAAU,OAAO,QAAQ;EACxC;EACA,UAAU;GACR,IAAI,UAAU;GACd,WAAW;GACX,cAAc,MAAM;GACpB,UAAU,MAAM;EAClB;CAEyB,CAAC;AAC9B;AAEA,SAAgB,0BAA0B,SAAqD;CAC7F,OAAO,QAAQ,IAAI,wBAAwB;AAC7C;AAEA,SAAgB,6BAA6B,SAAyC;CACpF,MAAM,UAAU,0BAA0B,OAAO;CACjD,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,6DAA6D;CAC3F,OAAO;AACT"}
@@ -2,7 +2,7 @@ import { Type } from "typebox";
2
2
  import { Context } from "@deepseek-ai/cordis";
3
3
  //#region src/schemas/skills.d.ts
4
4
  /** Provider-owned Cordis service for live skill-directory contributions. */
5
- export declare const DOOM_SKILL_SOURCES_SERVICE = "doom/skill-sources";
5
+ export declare const PO_SKILL_SOURCES_SERVICE = "po/skill-sources";
6
6
  /**
7
7
  * The custom session entry journaled once Pi has rebuilt its resource catalog
8
8
  * for a reload.
@@ -17,7 +17,7 @@ export declare const DOOM_SKILL_SOURCES_SERVICE = "doom/skill-sources";
17
17
  * way the minor-mode catalog projection does, so it needs no new protocol, and
18
18
  * a custom entry with no registered renderer is invisible in the TUI.
19
19
  */
20
- export declare const DOOM_RESOURCE_CATALOG_ENTRY_TYPE = "doom-resource-catalog";
20
+ export declare const PO_RESOURCE_CATALOG_ENTRY_TYPE = "po-resource-catalog";
21
21
  /**
22
22
  * The payload of a resource-catalog entry.
23
23
  *
@@ -45,7 +45,7 @@ export interface SkillSourceContributionHandle {
45
45
  dispose(): void;
46
46
  }
47
47
  /** Direct registrar/query/subscription seam owned by po-skill. */
48
- export interface DoomSkillSourcesService {
48
+ export interface PoSkillSourcesService {
49
49
  readonly generation: string;
50
50
  register(contribution: SkillSourceContribution): SkillSourceContributionHandle;
51
51
  list(): readonly SkillSourceContribution[];
@@ -54,12 +54,12 @@ export interface DoomSkillSourcesService {
54
54
  }
55
55
  declare module '@deepseek-ai/cordis' {
56
56
  interface Context {
57
- 'doom/skill-sources': DoomSkillSourcesService;
57
+ 'po/skill-sources': PoSkillSourcesService;
58
58
  }
59
59
  }
60
60
  /** Creates the provider-owned skill-source registry for one Cordis session. */
61
- export declare function createDoomSkillSourcesService(generation: string): DoomSkillSourcesService;
62
- export declare function readDoomSkillSourcesService(context: Context): DoomSkillSourcesService | undefined;
63
- export declare function requireDoomSkillSourcesService(context: Context): DoomSkillSourcesService;
61
+ export declare function createPoSkillSourcesService(generation: string): PoSkillSourcesService;
62
+ export declare function readPoSkillSourcesService(context: Context): PoSkillSourcesService | undefined;
63
+ export declare function requirePoSkillSourcesService(context: Context): PoSkillSourcesService;
64
64
  //#endregion
65
65
  //# sourceMappingURL=skills.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.mts","names":[],"sources":["../../../src/schemas/skills.ts"],"mappings":";;;;qBAKa;;;;;;;;;;;;;;;qBAgBA;;;;;;;;iBASI;WACN;WACA;;qBAKE,uBAAqB,KAAA;qBAMrB,+BAA6B,KAAA;;;;;iBASzB;WACN;WACA;;iBAGM;WACN;WACA;EACT;;;iBAIe;WACN;EACT,SAAS,cAAc,0BAA0B;EACjD,iBAAiB;EACjB,UAAU,WAAW,wBAAwB;EAC7C;;;YAIU;IACR,sBAAsB;;;;wBAsBV,8BAA8B,qBAAqB;wBA6DnD,4BAA4B,SAAS,UAAU;wBAI/C,+BAA+B,SAAS,UAAU"}
1
+ {"version":3,"file":"skills.d.mts","names":[],"sources":["../../../src/schemas/skills.ts"],"mappings":";;;;qBAKa;;;;;;;;;;;;;;;qBAgBA;;;;;;;;iBASI;WACN;WACA;;qBAKE,uBAAqB,KAAA;qBAMrB,+BAA6B,KAAA;;;;;iBASzB;WACN;WACA;;iBAGM;WACN;WACA;EACT;;;iBAIe;WACN;EACT,SAAS,cAAc,0BAA0B;EACjD,iBAAiB;EACjB,UAAU,WAAW,wBAAwB;EAC7C;;;YAIU;IACR,oBAAoB;;;;wBAsBR,4BAA4B,qBAAqB;wBA6DjD,0BAA0B,SAAS,UAAU;wBAI7C,6BAA6B,SAAS,UAAU"}