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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1149) hide show
  1. package/LICENSE +149 -21
  2. package/NOTICE +41 -0
  3. package/dist/agentModel.cjs +1 -1
  4. package/dist/agentModel.d.mts +2 -2
  5. package/dist/agentModel.mjs +1 -2
  6. package/dist/apiContracts.cjs +623 -802
  7. package/dist/apiContracts.cjs.map +1 -1
  8. package/dist/apiContracts.d.mts +277 -615
  9. package/dist/apiContracts.d.mts.map +1 -1
  10. package/dist/apiContracts.mjs +617 -794
  11. package/dist/apiContracts.mjs.map +1 -1
  12. package/dist/askUser.cjs +2 -2
  13. package/dist/askUser.d.mts +2 -2
  14. package/dist/askUser.mjs +1 -2
  15. package/dist/authorTools.mjs +1 -2
  16. package/dist/backgroundWork.cjs +3 -3
  17. package/dist/backgroundWork.d.mts +2 -2
  18. package/dist/backgroundWork.mjs +1 -2
  19. package/dist/bundleAssetPolicy.mjs +1 -2
  20. package/dist/chatgptAuth.cjs +3 -2
  21. package/dist/chatgptAuth.d.mts +3 -2
  22. package/dist/chatgptAuth.mjs +2 -1
  23. package/dist/childProcess.cjs +1 -1
  24. package/dist/childProcess.d.mts +2 -2
  25. package/dist/childProcess.mjs +1 -2
  26. package/dist/childSession.cjs +11 -6
  27. package/dist/childSession.d.mts +3 -3
  28. package/dist/childSession.mjs +3 -3
  29. package/dist/cockpitContainer.mjs +1 -2
  30. package/dist/config.cjs +1 -1
  31. package/dist/config.d.mts +3 -3
  32. package/dist/config.mjs +1 -2
  33. package/dist/contextApi.cjs +1 -0
  34. package/dist/contextApi.d.mts +2 -2
  35. package/dist/contextApi.mjs +2 -2
  36. package/dist/contextContributions.cjs +4 -4
  37. package/dist/contextContributions.d.mts +3 -3
  38. package/dist/contextContributions.mjs +3 -3
  39. package/dist/contextDetailStore.cjs +7 -5
  40. package/dist/contextDetailStore.cjs.map +1 -1
  41. package/dist/contextDetailStore.d.mts +2 -1
  42. package/dist/contextDetailStore.d.mts.map +1 -1
  43. package/dist/contextDetailStore.mjs +6 -4
  44. package/dist/contextDetailStore.mjs.map +1 -1
  45. package/dist/contextProjection.cjs +7 -2
  46. package/dist/contextProjection.cjs.map +1 -1
  47. package/dist/contextProjection.d.mts +4 -1
  48. package/dist/contextProjection.d.mts.map +1 -1
  49. package/dist/contextProjection.mjs +5 -2
  50. package/dist/contextProjection.mjs.map +1 -1
  51. package/dist/cordisHost.cjs +11 -11
  52. package/dist/cordisHost.d.mts +2 -2
  53. package/dist/cordisHost.mjs +1 -2
  54. package/dist/delegation.cjs +8 -8
  55. package/dist/delegation.d.mts +2 -2
  56. package/dist/delegation.mjs +1 -2
  57. package/dist/executionBudget.cjs +4 -3
  58. package/dist/executionBudget.cjs.map +1 -1
  59. package/dist/executionBudget.d.mts +2 -2
  60. package/dist/executionBudget.d.mts.map +1 -1
  61. package/dist/executionBudget.mjs +4 -3
  62. package/dist/executionBudget.mjs.map +1 -1
  63. package/dist/extensionFile.cjs +5 -0
  64. package/dist/extensionFile.d.mts +4 -2
  65. package/dist/extensionFile.mjs +4 -2
  66. package/dist/footer.d.mts +2 -2
  67. package/dist/footer.mjs +1 -2
  68. package/dist/headless.cjs +14 -14
  69. package/dist/headless.d.mts +2 -2
  70. package/dist/headless.mjs +1 -2
  71. package/dist/headlessHub.cjs +308 -109
  72. package/dist/headlessHub.cjs.map +1 -1
  73. package/dist/headlessHub.d.mts +71 -36
  74. package/dist/headlessHub.d.mts.map +1 -1
  75. package/dist/headlessHub.mjs +309 -110
  76. package/dist/headlessHub.mjs.map +1 -1
  77. package/dist/headlessProtocol.cjs +327 -0
  78. package/dist/headlessProtocol.cjs.map +1 -0
  79. package/dist/headlessProtocol.d.mts +30 -0
  80. package/dist/headlessProtocol.d.mts.map +1 -0
  81. package/dist/headlessProtocol.mjs +326 -0
  82. package/dist/headlessProtocol.mjs.map +1 -0
  83. package/dist/headlessServer.cjs +166 -151
  84. package/dist/headlessServer.cjs.map +1 -1
  85. package/dist/headlessServer.d.mts +13 -5
  86. package/dist/headlessServer.d.mts.map +1 -1
  87. package/dist/headlessServer.mjs +166 -151
  88. package/dist/headlessServer.mjs.map +1 -1
  89. package/dist/headlessSessionHost.d.mts +58 -21
  90. package/dist/headlessSessionHost.d.mts.map +1 -1
  91. package/dist/help.cjs +20 -20
  92. package/dist/help.d.mts +2 -2
  93. package/dist/help.mjs +2 -2
  94. package/dist/history.cjs +16 -20
  95. package/dist/history.d.mts +9 -7
  96. package/dist/history.mjs +6 -7
  97. package/dist/historyOwnership.cjs.map +1 -1
  98. package/dist/historyOwnership.d.mts +1 -1
  99. package/dist/historyOwnership.mjs.map +1 -1
  100. package/dist/hubChannel.cjs +9 -0
  101. package/dist/hubChannel.d.mts +3 -2
  102. package/dist/hubChannel.mjs +3 -2
  103. package/dist/index.cjs +26 -28
  104. package/dist/index.d.mts +6 -6
  105. package/dist/index.mjs +6 -6
  106. package/dist/interop/chord.mjs +1 -0
  107. package/dist/interop/chordContext.mjs +1 -0
  108. package/dist/json.cjs +11 -5
  109. package/dist/json.d.mts +4 -2
  110. package/dist/json.mjs +4 -2
  111. package/dist/kernel.cjs +1 -1
  112. package/dist/kernel.d.mts +3 -3
  113. package/dist/kernel.mjs +1 -2
  114. package/dist/leader.d.mts +2 -2
  115. package/dist/leader.mjs +1 -2
  116. package/dist/logSinkTelemetry.mjs +1 -2
  117. package/dist/machineApi.cjs +80 -74
  118. package/dist/machineApi.cjs.map +1 -1
  119. package/dist/machineApi.d.mts +5 -2
  120. package/dist/machineApi.d.mts.map +1 -1
  121. package/dist/machineApi.mjs +78 -71
  122. package/dist/machineApi.mjs.map +1 -1
  123. package/dist/main.cjs +2 -1
  124. package/dist/main.d.mts +2 -1
  125. package/dist/main.mjs +2 -1
  126. package/dist/mcpFacet.d.mts +3 -3
  127. package/dist/mcpProjection.cjs +13 -13
  128. package/dist/mcpProjection.d.mts +2 -2
  129. package/dist/mcpProjection.mjs +1 -2
  130. package/dist/mcpSchemaCost.cjs +4 -4
  131. package/dist/mcpSchemaCost.cjs.map +1 -1
  132. package/dist/mcpSchemaCost.d.mts +2 -2
  133. package/dist/mcpSchemaCost.mjs +4 -4
  134. package/dist/mcpSchemaCost.mjs.map +1 -1
  135. package/dist/mcpSession.cjs +7 -7
  136. package/dist/mcpSession.d.mts +2 -2
  137. package/dist/mcpSession.mjs +1 -2
  138. package/dist/mcpStatus.cjs +2 -2
  139. package/dist/mcpStatus.d.mts +2 -2
  140. package/dist/mcpStatus.mjs +1 -2
  141. package/dist/mcpToolResolver.cjs +3 -3
  142. package/dist/mcpToolResolver.d.mts +2 -2
  143. package/dist/mcpToolResolver.mjs +1 -2
  144. package/dist/mcpWidget.d.mts +2 -2
  145. package/dist/moduleResolution.cjs +43 -8
  146. package/dist/moduleResolution.cjs.map +1 -1
  147. package/dist/moduleResolution.d.mts +10 -1
  148. package/dist/moduleResolution.d.mts.map +1 -1
  149. package/dist/moduleResolution.mjs +40 -7
  150. package/dist/moduleResolution.mjs.map +1 -1
  151. package/dist/narration.cjs +3 -3
  152. package/dist/narration.d.mts +2 -2
  153. package/dist/narration.mjs +1 -2
  154. package/dist/native.cjs +9 -0
  155. package/dist/native.d.mts +4 -3
  156. package/dist/native.mjs +3 -2
  157. package/dist/nodePlatform.cjs +77 -0
  158. package/dist/nodePlatform.cjs.map +1 -0
  159. package/dist/nodePlatform.d.mts +17 -0
  160. package/dist/nodePlatform.d.mts.map +1 -0
  161. package/dist/nodePlatform.mjs +72 -0
  162. package/dist/nodePlatform.mjs.map +1 -0
  163. package/dist/notification.cjs +15 -15
  164. package/dist/notification.d.mts +2 -2
  165. package/dist/notification.mjs +1 -2
  166. package/dist/packageApi.cjs +11 -11
  167. package/dist/packageApi.d.mts +2 -2
  168. package/dist/packageApi.mjs +2 -2
  169. package/dist/packageApiServer.cjs +45 -27
  170. package/dist/packageApiServer.cjs.map +1 -1
  171. package/dist/packageApiServer.d.mts +36 -26
  172. package/dist/packageApiServer.d.mts.map +1 -1
  173. package/dist/packageApiServer.mjs +44 -26
  174. package/dist/packageApiServer.mjs.map +1 -1
  175. package/dist/piSettings.cjs +41 -20
  176. package/dist/piSettings.d.mts +4 -2
  177. package/dist/piSettings.mjs +4 -2
  178. package/dist/platform.cjs +62 -0
  179. package/dist/platform.d.mts +10 -0
  180. package/dist/platform.mjs +10 -0
  181. package/dist/pluginProtocol.cjs +7 -8
  182. package/dist/pluginProtocol.d.mts +2 -2
  183. package/dist/pluginProtocol.mjs +1 -2
  184. package/dist/poPackage.cjs +12 -0
  185. package/dist/poPackage.d.mts +3 -0
  186. package/dist/poPackage.mjs +3 -0
  187. package/dist/profileIdentity.cjs +1 -1
  188. package/dist/profileIdentity.d.mts +2 -2
  189. package/dist/profileIdentity.mjs +1 -2
  190. package/dist/protocol.cjs +3 -3
  191. package/dist/protocol.d.mts +2 -2
  192. package/dist/protocol.mjs +1 -2
  193. package/dist/readiness.cjs +6 -6
  194. package/dist/readiness.d.mts +2 -2
  195. package/dist/readiness.mjs +1 -2
  196. package/dist/remoteApi.cjs.map +1 -1
  197. package/dist/remoteApi.d.mts +2 -2
  198. package/dist/remoteApi.mjs.map +1 -1
  199. package/dist/remoteRuntime.cjs +42 -65
  200. package/dist/remoteRuntime.cjs.map +1 -1
  201. package/dist/remoteRuntime.d.mts +3 -2
  202. package/dist/remoteRuntime.d.mts.map +1 -1
  203. package/dist/remoteRuntime.mjs +41 -62
  204. package/dist/remoteRuntime.mjs.map +1 -1
  205. package/dist/runtimeConfig.cjs +4 -4
  206. package/dist/runtimeConfig.cjs.map +1 -1
  207. package/dist/runtimeConfig.d.mts +10 -9
  208. package/dist/runtimeConfig.d.mts.map +1 -1
  209. package/dist/runtimeConfig.mjs +4 -4
  210. package/dist/runtimeConfig.mjs.map +1 -1
  211. package/dist/runtimeContextApi.cjs +10 -3
  212. package/dist/runtimeContextApi.cjs.map +1 -1
  213. package/dist/runtimeContextApi.d.mts +3 -3
  214. package/dist/runtimeContextApi.d.mts.map +1 -1
  215. package/dist/runtimeContextApi.mjs +10 -3
  216. package/dist/runtimeContextApi.mjs.map +1 -1
  217. package/dist/runtimeCordisHost.cjs +46 -46
  218. package/dist/runtimeCordisHost.cjs.map +1 -1
  219. package/dist/runtimeCordisHost.d.mts +29 -28
  220. package/dist/runtimeCordisHost.d.mts.map +1 -1
  221. package/dist/runtimeCordisHost.mjs +42 -42
  222. package/dist/runtimeCordisHost.mjs.map +1 -1
  223. package/dist/runtimeIdentity.cjs +6 -9
  224. package/dist/runtimeIdentity.cjs.map +1 -1
  225. package/dist/runtimeIdentity.d.mts +5 -1
  226. package/dist/runtimeIdentity.d.mts.map +1 -1
  227. package/dist/runtimeIdentity.mjs +5 -8
  228. package/dist/runtimeIdentity.mjs.map +1 -1
  229. package/dist/runtimeJson.cjs +10 -45
  230. package/dist/runtimeJson.d.mts +3 -22
  231. package/dist/runtimeJson.mjs +3 -39
  232. package/dist/runtimeLogSinkTelemetry.cjs +19 -19
  233. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
  234. package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
  235. package/dist/runtimeLogSinkTelemetry.mjs +19 -19
  236. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
  237. package/dist/runtimePackages.cjs +7 -2
  238. package/dist/runtimePackages.cjs.map +1 -1
  239. package/dist/runtimePackages.d.mts +4 -1
  240. package/dist/runtimePackages.d.mts.map +1 -1
  241. package/dist/runtimePackages.mjs +7 -2
  242. package/dist/runtimePackages.mjs.map +1 -1
  243. package/dist/runtimePiSettings.cjs +40 -263
  244. package/dist/runtimePiSettings.d.mts +3 -72
  245. package/dist/runtimePiSettings.mjs +3 -241
  246. package/dist/runtimeProtocol.cjs +19 -19
  247. package/dist/runtimeProtocol.cjs.map +1 -1
  248. package/dist/runtimeProtocol.d.mts +7 -7
  249. package/dist/runtimeProtocol.d.mts.map +1 -1
  250. package/dist/runtimeProtocol.mjs +17 -17
  251. package/dist/runtimeProtocol.mjs.map +1 -1
  252. package/dist/runtimeTransition.cjs +9 -9
  253. package/dist/runtimeTransition.cjs.map +1 -1
  254. package/dist/runtimeTransition.d.mts +10 -10
  255. package/dist/runtimeTransition.d.mts.map +1 -1
  256. package/dist/runtimeTransition.mjs +7 -7
  257. package/dist/runtimeTransition.mjs.map +1 -1
  258. package/dist/sandboxHarness.mjs +1 -2
  259. package/dist/server.cjs +3 -7
  260. package/dist/server.d.mts +6 -6
  261. package/dist/server.mjs +3 -4
  262. package/dist/serverPlugin.cjs +39 -0
  263. package/dist/serverPlugin.d.mts +12 -0
  264. package/dist/serverPlugin.mjs +11 -0
  265. package/dist/serverTelemetry.cjs +1 -1
  266. package/dist/serverTelemetry.cjs.map +1 -1
  267. package/dist/serverTelemetry.d.mts +2 -2
  268. package/dist/serverTelemetry.mjs +2 -2
  269. package/dist/serverTelemetry.mjs.map +1 -1
  270. package/dist/sessionFilesApi.cjs +41 -37
  271. package/dist/sessionFilesApi.cjs.map +1 -1
  272. package/dist/sessionFilesApi.d.mts +6 -3
  273. package/dist/sessionFilesApi.d.mts.map +1 -1
  274. package/dist/sessionFilesApi.mjs +41 -36
  275. package/dist/sessionFilesApi.mjs.map +1 -1
  276. package/dist/sessionProtocol.cjs +31 -6
  277. package/dist/sessionProtocol.d.mts +8 -3
  278. package/dist/sessionProtocol.mjs +8 -2
  279. package/dist/skills.cjs +5 -5
  280. package/dist/skills.d.mts +2 -2
  281. package/dist/skills.mjs +1 -2
  282. package/dist/sqliteSessionStorage.cjs +28 -50
  283. package/dist/sqliteSessionStorage.cjs.map +1 -1
  284. package/dist/sqliteSessionStorage.d.mts +13 -20
  285. package/dist/sqliteSessionStorage.d.mts.map +1 -1
  286. package/dist/sqliteSessionStorage.mjs +25 -48
  287. package/dist/sqliteSessionStorage.mjs.map +1 -1
  288. package/dist/src/constants/agentSettled.cjs +7 -0
  289. package/dist/src/constants/agentSettled.cjs.map +1 -0
  290. package/dist/src/constants/agentSettled.mjs +7 -0
  291. package/dist/src/constants/agentSettled.mjs.map +1 -0
  292. package/dist/src/constants/contextApi.cjs +3 -1
  293. package/dist/src/constants/contextApi.cjs.map +1 -1
  294. package/dist/src/constants/contextApi.d.mts +2 -1
  295. package/dist/src/constants/contextApi.d.mts.map +1 -1
  296. package/dist/src/constants/contextApi.mjs +3 -2
  297. package/dist/src/constants/contextApi.mjs.map +1 -1
  298. package/dist/src/constants/voiceTools.cjs +6 -6
  299. package/dist/src/constants/voiceTools.cjs.map +1 -1
  300. package/dist/src/constants/voiceTools.d.mts +3 -3
  301. package/dist/src/constants/voiceTools.mjs +4 -4
  302. package/dist/src/constants/voiceTools.mjs.map +1 -1
  303. package/dist/src/extensions/extensionFile.cjs +22 -5
  304. package/dist/src/extensions/extensionFile.cjs.map +1 -1
  305. package/dist/src/extensions/extensionFile.d.mts +17 -4
  306. package/dist/src/extensions/extensionFile.d.mts.map +1 -1
  307. package/dist/src/extensions/extensionFile.mjs +22 -6
  308. package/dist/src/extensions/extensionFile.mjs.map +1 -1
  309. package/dist/src/extensions/serverPlugin.cjs +231 -92
  310. package/dist/src/extensions/serverPlugin.cjs.map +1 -1
  311. package/dist/src/extensions/serverPlugin.d.mts +2 -2
  312. package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
  313. package/dist/src/extensions/serverPlugin.mjs +232 -93
  314. package/dist/src/extensions/serverPlugin.mjs.map +1 -1
  315. package/dist/src/pi/piSessionRuntime.cjs +349 -142
  316. package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
  317. package/dist/src/pi/piSessionRuntime.d.mts +18 -17
  318. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
  319. package/dist/src/pi/piSessionRuntime.mjs +342 -135
  320. package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
  321. package/dist/src/schemas/agentModel.cjs +2 -2
  322. package/dist/src/schemas/agentModel.cjs.map +1 -1
  323. package/dist/src/schemas/agentModel.d.mts +1 -1
  324. package/dist/src/schemas/agentModel.mjs +2 -2
  325. package/dist/src/schemas/agentModel.mjs.map +1 -1
  326. package/dist/src/schemas/apiContracts.d.mts +2 -2
  327. package/dist/src/schemas/apiContracts.d.mts.map +1 -1
  328. package/dist/src/schemas/askUser.cjs +4 -4
  329. package/dist/src/schemas/askUser.cjs.map +1 -1
  330. package/dist/src/schemas/askUser.d.mts +4 -4
  331. package/dist/src/schemas/askUser.d.mts.map +1 -1
  332. package/dist/src/schemas/askUser.mjs +3 -3
  333. package/dist/src/schemas/askUser.mjs.map +1 -1
  334. package/dist/src/schemas/backgroundWork.cjs +10 -10
  335. package/dist/src/schemas/backgroundWork.cjs.map +1 -1
  336. package/dist/src/schemas/backgroundWork.d.mts +9 -9
  337. package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
  338. package/dist/src/schemas/backgroundWork.mjs +8 -8
  339. package/dist/src/schemas/backgroundWork.mjs.map +1 -1
  340. package/dist/src/schemas/childProcess.cjs +5 -5
  341. package/dist/src/schemas/childProcess.cjs.map +1 -1
  342. package/dist/src/schemas/childProcess.d.mts +2 -2
  343. package/dist/src/schemas/childProcess.mjs +5 -5
  344. package/dist/src/schemas/childProcess.mjs.map +1 -1
  345. package/dist/src/schemas/contextContributions.cjs +10 -10
  346. package/dist/src/schemas/contextContributions.cjs.map +1 -1
  347. package/dist/src/schemas/contextContributions.d.mts +16 -16
  348. package/dist/src/schemas/contextContributions.d.mts.map +1 -1
  349. package/dist/src/schemas/contextContributions.mjs +8 -8
  350. package/dist/src/schemas/contextContributions.mjs.map +1 -1
  351. package/dist/src/schemas/delegation.cjs +17 -17
  352. package/dist/src/schemas/delegation.cjs.map +1 -1
  353. package/dist/src/schemas/delegation.d.mts +16 -16
  354. package/dist/src/schemas/delegation.d.mts.map +1 -1
  355. package/dist/src/schemas/delegation.mjs +10 -10
  356. package/dist/src/schemas/delegation.mjs.map +1 -1
  357. package/dist/src/schemas/extensionFile.d.mts +23 -19
  358. package/dist/src/schemas/extensionFile.d.mts.map +1 -1
  359. package/dist/src/schemas/footer.cjs.map +1 -1
  360. package/dist/src/schemas/footer.d.mts +5 -5
  361. package/dist/src/schemas/footer.d.mts.map +1 -1
  362. package/dist/src/schemas/footer.mjs.map +1 -1
  363. package/dist/src/schemas/headless.cjs +37 -37
  364. package/dist/src/schemas/headless.cjs.map +1 -1
  365. package/dist/src/schemas/headless.d.mts +100 -101
  366. package/dist/src/schemas/headless.d.mts.map +1 -1
  367. package/dist/src/schemas/headless.mjs +24 -24
  368. package/dist/src/schemas/headless.mjs.map +1 -1
  369. package/dist/src/schemas/help.cjs +60 -60
  370. package/dist/src/schemas/help.cjs.map +1 -1
  371. package/dist/src/schemas/help.d.mts +43 -43
  372. package/dist/src/schemas/help.d.mts.map +1 -1
  373. package/dist/src/schemas/help.mjs +41 -41
  374. package/dist/src/schemas/help.mjs.map +1 -1
  375. package/dist/src/schemas/home.cjs +127 -0
  376. package/dist/src/schemas/home.cjs.map +1 -0
  377. package/dist/src/schemas/home.d.mts +63 -0
  378. package/dist/src/schemas/home.d.mts.map +1 -0
  379. package/dist/src/schemas/home.mjs +121 -0
  380. package/dist/src/schemas/home.mjs.map +1 -0
  381. package/dist/src/schemas/httpApiContracts.cjs +441 -0
  382. package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
  383. package/dist/src/schemas/httpApiContracts.d.mts +78 -0
  384. package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
  385. package/dist/src/schemas/httpApiContracts.mjs +434 -0
  386. package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
  387. package/dist/src/schemas/hubChannel.cjs +3 -0
  388. package/dist/src/schemas/hubChannel.cjs.map +1 -1
  389. package/dist/src/schemas/hubChannel.d.mts +84 -60
  390. package/dist/src/schemas/hubChannel.d.mts.map +1 -1
  391. package/dist/src/schemas/hubChannel.mjs +3 -1
  392. package/dist/src/schemas/hubChannel.mjs.map +1 -1
  393. package/dist/src/schemas/leader.cjs.map +1 -1
  394. package/dist/src/schemas/leader.d.mts +3 -3
  395. package/dist/src/schemas/leader.d.mts.map +1 -1
  396. package/dist/src/schemas/leader.mjs.map +1 -1
  397. package/dist/src/schemas/mcpBundle.d.mts +3 -3
  398. package/dist/src/schemas/mcpFacet.cjs.map +1 -1
  399. package/dist/src/schemas/mcpFacet.d.mts +22 -22
  400. package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
  401. package/dist/src/schemas/mcpFacet.mjs.map +1 -1
  402. package/dist/src/schemas/mcpProjection.cjs +41 -41
  403. package/dist/src/schemas/mcpProjection.cjs.map +1 -1
  404. package/dist/src/schemas/mcpProjection.d.mts +31 -30
  405. package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
  406. package/dist/src/schemas/mcpProjection.mjs +29 -29
  407. package/dist/src/schemas/mcpProjection.mjs.map +1 -1
  408. package/dist/src/schemas/mcpSession.cjs +23 -23
  409. package/dist/src/schemas/mcpSession.cjs.map +1 -1
  410. package/dist/src/schemas/mcpSession.d.mts +12 -12
  411. package/dist/src/schemas/mcpSession.d.mts.map +1 -1
  412. package/dist/src/schemas/mcpSession.mjs +18 -18
  413. package/dist/src/schemas/mcpSession.mjs.map +1 -1
  414. package/dist/src/schemas/mcpStatus.cjs +5 -5
  415. package/dist/src/schemas/mcpStatus.cjs.map +1 -1
  416. package/dist/src/schemas/mcpStatus.d.mts +4 -4
  417. package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
  418. package/dist/src/schemas/mcpStatus.mjs +4 -4
  419. package/dist/src/schemas/mcpStatus.mjs.map +1 -1
  420. package/dist/src/schemas/mcpToolResolver.cjs +9 -9
  421. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
  422. package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
  423. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
  424. package/dist/src/schemas/mcpToolResolver.mjs +7 -7
  425. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
  426. package/dist/src/schemas/narration.cjs +9 -9
  427. package/dist/src/schemas/narration.cjs.map +1 -1
  428. package/dist/src/schemas/narration.d.mts +5 -5
  429. package/dist/src/schemas/narration.d.mts.map +1 -1
  430. package/dist/src/schemas/narration.mjs +7 -7
  431. package/dist/src/schemas/narration.mjs.map +1 -1
  432. package/dist/src/schemas/notification.cjs +45 -45
  433. package/dist/src/schemas/notification.cjs.map +1 -1
  434. package/dist/src/schemas/notification.d.mts +22 -22
  435. package/dist/src/schemas/notification.d.mts.map +1 -1
  436. package/dist/src/schemas/notification.mjs +31 -31
  437. package/dist/src/schemas/notification.mjs.map +1 -1
  438. package/dist/src/schemas/packageApi.cjs +28 -28
  439. package/dist/src/schemas/packageApi.cjs.map +1 -1
  440. package/dist/src/schemas/packageApi.d.mts +91 -65
  441. package/dist/src/schemas/packageApi.d.mts.map +1 -1
  442. package/dist/src/schemas/packageApi.mjs +18 -18
  443. package/dist/src/schemas/packageApi.mjs.map +1 -1
  444. package/dist/src/schemas/platform.cjs +34 -0
  445. package/dist/src/schemas/platform.cjs.map +1 -0
  446. package/dist/src/schemas/platform.d.mts +75 -0
  447. package/dist/src/schemas/platform.d.mts.map +1 -0
  448. package/dist/src/schemas/platform.mjs +27 -0
  449. package/dist/src/schemas/platform.mjs.map +1 -0
  450. package/dist/src/schemas/pluginContributions.cjs.map +1 -1
  451. package/dist/src/schemas/pluginContributions.d.mts +12 -12
  452. package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
  453. package/dist/src/schemas/pluginContributions.mjs.map +1 -1
  454. package/dist/src/schemas/pluginProtocol.cjs +24 -27
  455. package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
  456. package/dist/src/schemas/pluginProtocol.d.mts +21 -21
  457. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
  458. package/dist/src/schemas/pluginProtocol.mjs +18 -20
  459. package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
  460. package/dist/src/schemas/profileIdentity.cjs +2 -2
  461. package/dist/src/schemas/profileIdentity.cjs.map +1 -1
  462. package/dist/src/schemas/profileIdentity.d.mts +1 -1
  463. package/dist/src/schemas/profileIdentity.mjs +2 -2
  464. package/dist/src/schemas/profileIdentity.mjs.map +1 -1
  465. package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
  466. package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
  467. package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
  468. package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
  469. package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
  470. package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
  471. package/dist/src/schemas/protocolContracts.cjs +168 -0
  472. package/dist/src/schemas/protocolContracts.cjs.map +1 -0
  473. package/dist/src/schemas/protocolContracts.d.mts +69 -0
  474. package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
  475. package/dist/src/schemas/protocolContracts.mjs +164 -0
  476. package/dist/src/schemas/protocolContracts.mjs.map +1 -0
  477. package/dist/src/schemas/protocolHubContract.cjs +51 -0
  478. package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
  479. package/dist/src/schemas/protocolHubContract.d.mts +218 -0
  480. package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
  481. package/dist/src/schemas/protocolHubContract.mjs +49 -0
  482. package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
  483. package/dist/src/schemas/protocolSessionContract.cjs +22 -0
  484. package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
  485. package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
  486. package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
  487. package/dist/src/schemas/protocolSessionContract.mjs +22 -0
  488. package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
  489. package/dist/src/schemas/protocolThreadContract.cjs +21 -0
  490. package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
  491. package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
  492. package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
  493. package/dist/src/schemas/protocolThreadContract.mjs +20 -0
  494. package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
  495. package/dist/src/schemas/readiness.cjs +36 -36
  496. package/dist/src/schemas/readiness.cjs.map +1 -1
  497. package/dist/src/schemas/readiness.d.mts +37 -37
  498. package/dist/src/schemas/readiness.d.mts.map +1 -1
  499. package/dist/src/schemas/readiness.mjs +31 -31
  500. package/dist/src/schemas/readiness.mjs.map +1 -1
  501. package/dist/src/schemas/serverBundle.d.mts +5 -5
  502. package/dist/src/schemas/serverPlugin.cjs +103 -0
  503. package/dist/src/schemas/serverPlugin.cjs.map +1 -0
  504. package/dist/src/schemas/serverPlugin.d.mts +176 -0
  505. package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
  506. package/dist/src/schemas/serverPlugin.mjs +95 -0
  507. package/dist/src/schemas/serverPlugin.mjs.map +1 -0
  508. package/dist/src/schemas/serverScope.cjs +37 -0
  509. package/dist/src/schemas/serverScope.cjs.map +1 -0
  510. package/dist/src/schemas/serverScope.d.mts +77 -0
  511. package/dist/src/schemas/serverScope.d.mts.map +1 -0
  512. package/dist/src/schemas/serverScope.mjs +33 -0
  513. package/dist/src/schemas/serverScope.mjs.map +1 -0
  514. package/dist/src/schemas/sessionApiContracts.cjs +320 -0
  515. package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
  516. package/dist/src/schemas/sessionApiContracts.mjs +318 -0
  517. package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
  518. package/dist/src/schemas/sessionProtocol.cjs +20 -13
  519. package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
  520. package/dist/src/schemas/sessionProtocol.d.mts +37 -54
  521. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
  522. package/dist/src/schemas/sessionProtocol.mjs +17 -8
  523. package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
  524. package/dist/src/schemas/skills.cjs +16 -16
  525. package/dist/src/schemas/skills.cjs.map +1 -1
  526. package/dist/src/schemas/skills.d.mts +7 -7
  527. package/dist/src/schemas/skills.d.mts.map +1 -1
  528. package/dist/src/schemas/skills.mjs +12 -12
  529. package/dist/src/schemas/skills.mjs.map +1 -1
  530. package/dist/src/schemas/toolOverrides.cjs +9 -9
  531. package/dist/src/schemas/toolOverrides.cjs.map +1 -1
  532. package/dist/src/schemas/toolOverrides.d.mts +8 -8
  533. package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
  534. package/dist/src/schemas/toolOverrides.mjs +7 -7
  535. package/dist/src/schemas/toolOverrides.mjs.map +1 -1
  536. package/dist/src/schemas/toolSurface.cjs +9 -9
  537. package/dist/src/schemas/toolSurface.cjs.map +1 -1
  538. package/dist/src/schemas/toolSurface.d.mts +13 -13
  539. package/dist/src/schemas/toolSurface.d.mts.map +1 -1
  540. package/dist/src/schemas/toolSurface.mjs +7 -7
  541. package/dist/src/schemas/toolSurface.mjs.map +1 -1
  542. package/dist/src/schemas/uiHub.cjs +9 -9
  543. package/dist/src/schemas/uiHub.cjs.map +1 -1
  544. package/dist/src/schemas/uiHub.d.mts +12 -12
  545. package/dist/src/schemas/uiHub.d.mts.map +1 -1
  546. package/dist/src/schemas/uiHub.mjs +7 -7
  547. package/dist/src/schemas/uiHub.mjs.map +1 -1
  548. package/dist/src/server/directHarnessRuntime.cjs +691 -775
  549. package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
  550. package/dist/src/server/directHarnessRuntime.d.mts +5 -1
  551. package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
  552. package/dist/src/server/directHarnessRuntime.mjs +671 -754
  553. package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
  554. package/dist/src/server/largeFrameLink.cjs +47 -0
  555. package/dist/src/server/largeFrameLink.cjs.map +1 -0
  556. package/dist/src/server/largeFrameLink.mjs +47 -0
  557. package/dist/src/server/largeFrameLink.mjs.map +1 -0
  558. package/dist/src/server/liveImport.cjs +1 -1
  559. package/dist/src/server/liveImport.cjs.map +1 -1
  560. package/dist/src/server/liveImport.d.mts +1 -1
  561. package/dist/src/server/liveImport.mjs +1 -1
  562. package/dist/src/server/liveImport.mjs.map +1 -1
  563. package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
  564. package/dist/src/server/mcpBundleLoader.d.mts +6 -6
  565. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
  566. package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
  567. package/dist/src/server/serverPackages.cjs +60 -0
  568. package/dist/src/server/serverPackages.cjs.map +1 -0
  569. package/dist/src/server/serverPackages.d.mts +44 -0
  570. package/dist/src/server/serverPackages.d.mts.map +1 -0
  571. package/dist/src/server/serverPackages.mjs +59 -0
  572. package/dist/src/server/serverPackages.mjs.map +1 -0
  573. package/dist/src/server/serverScope.cjs +510 -0
  574. package/dist/src/server/serverScope.cjs.map +1 -0
  575. package/dist/src/server/serverScope.d.mts +123 -0
  576. package/dist/src/server/serverScope.d.mts.map +1 -0
  577. package/dist/src/server/serverScope.mjs +510 -0
  578. package/dist/src/server/serverScope.mjs.map +1 -0
  579. package/dist/src/server/sessionMcpHandler.cjs +3 -3
  580. package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
  581. package/dist/src/server/sessionMcpHandler.mjs +4 -4
  582. package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
  583. package/dist/src/server/sessionMcpRoutes.cjs +2 -1
  584. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
  585. package/dist/src/server/sessionMcpRoutes.mjs +2 -1
  586. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
  587. package/dist/src/server/threadJournals.cjs +38 -107
  588. package/dist/src/server/threadJournals.cjs.map +1 -1
  589. package/dist/src/server/threadJournals.mjs +38 -104
  590. package/dist/src/server/threadJournals.mjs.map +1 -1
  591. package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
  592. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
  593. package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
  594. package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
  595. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
  596. package/dist/src/services/chatgptAuth/index.cjs +1 -220
  597. package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
  598. package/dist/src/services/chatgptAuth/index.d.mts +0 -18
  599. package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
  600. package/dist/src/services/chatgptAuth/index.mjs +1 -217
  601. package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
  602. package/dist/src/services/chatgptImages/index.cjs +1 -1
  603. package/dist/src/services/chatgptImages/index.cjs.map +1 -1
  604. package/dist/src/services/chatgptImages/index.mjs +1 -1
  605. package/dist/src/services/chatgptImages/index.mjs.map +1 -1
  606. package/dist/src/services/chatgptLogin/index.cjs +230 -0
  607. package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
  608. package/dist/src/services/chatgptLogin/index.d.mts +21 -0
  609. package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
  610. package/dist/src/services/chatgptLogin/index.mjs +227 -0
  611. package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
  612. package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
  613. package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
  614. package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
  615. package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
  616. package/dist/src/services/contextContributions/index.cjs +8 -8
  617. package/dist/src/services/contextContributions/index.cjs.map +1 -1
  618. package/dist/src/services/contextContributions/index.d.mts +3 -3
  619. package/dist/src/services/contextContributions/index.d.mts.map +1 -1
  620. package/dist/src/services/contextContributions/index.mjs +8 -8
  621. package/dist/src/services/contextContributions/index.mjs.map +1 -1
  622. package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
  623. package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
  624. package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
  625. package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
  626. package/dist/src/services/devProxyStore/index.cjs +7 -101
  627. package/dist/src/services/devProxyStore/index.cjs.map +1 -1
  628. package/dist/src/services/devProxyStore/index.mjs +7 -101
  629. package/dist/src/services/devProxyStore/index.mjs.map +1 -1
  630. package/dist/src/services/devProxyStore/sync.cjs +66 -0
  631. package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
  632. package/dist/src/services/devProxyStore/sync.mjs +63 -0
  633. package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
  634. package/dist/src/services/durableNavigation/docs.cjs +15 -0
  635. package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
  636. package/dist/src/services/durableNavigation/docs.mjs +16 -0
  637. package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
  638. package/dist/src/services/durableNavigation/index.cjs +3 -18
  639. package/dist/src/services/durableNavigation/index.cjs.map +1 -1
  640. package/dist/src/services/durableNavigation/index.mjs +2 -17
  641. package/dist/src/services/durableNavigation/index.mjs.map +1 -1
  642. package/dist/src/services/durableQueue/docs.cjs +12 -0
  643. package/dist/src/services/durableQueue/docs.cjs.map +1 -0
  644. package/dist/src/services/durableQueue/docs.mjs +13 -0
  645. package/dist/src/services/durableQueue/docs.mjs.map +1 -0
  646. package/dist/src/services/durableQueue/index.cjs +151 -0
  647. package/dist/src/services/durableQueue/index.cjs.map +1 -0
  648. package/dist/src/services/durableQueue/index.mjs +149 -0
  649. package/dist/src/services/durableQueue/index.mjs.map +1 -0
  650. package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
  651. package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
  652. package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
  653. package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
  654. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
  655. package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
  656. package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
  657. package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
  658. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
  659. package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
  660. package/dist/src/services/durableSession/docs.cjs +65 -0
  661. package/dist/src/services/durableSession/docs.cjs.map +1 -0
  662. package/dist/src/services/durableSession/docs.d.mts +17 -0
  663. package/dist/src/services/durableSession/docs.d.mts.map +1 -0
  664. package/dist/src/services/durableSession/docs.mjs +60 -0
  665. package/dist/src/services/durableSession/docs.mjs.map +1 -0
  666. package/dist/src/services/durableSession/index.cjs +21 -0
  667. package/dist/src/services/durableSession/index.cjs.map +1 -0
  668. package/dist/src/services/durableSession/index.d.mts +13 -0
  669. package/dist/src/services/durableSession/index.d.mts.map +1 -0
  670. package/dist/src/services/durableSession/index.mjs +20 -0
  671. package/dist/src/services/durableSession/index.mjs.map +1 -0
  672. package/dist/src/services/durableSubagents/docs.cjs +15 -0
  673. package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
  674. package/dist/src/services/durableSubagents/docs.mjs +16 -0
  675. package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
  676. package/dist/src/services/durableSubagents/extension.cjs +11 -0
  677. package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
  678. package/dist/src/services/durableSubagents/extension.mjs +12 -0
  679. package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
  680. package/dist/src/services/durableSubagents/index.cjs +95 -0
  681. package/dist/src/services/durableSubagents/index.cjs.map +1 -0
  682. package/dist/src/services/durableSubagents/index.mjs +90 -0
  683. package/dist/src/services/durableSubagents/index.mjs.map +1 -0
  684. package/dist/src/services/durableSubagents/tasks.cjs +25 -0
  685. package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
  686. package/dist/src/services/durableSubagents/tasks.mjs +26 -0
  687. package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
  688. package/dist/src/services/headlessClient/index.cjs +20 -13
  689. package/dist/src/services/headlessClient/index.cjs.map +1 -1
  690. package/dist/src/services/headlessClient/index.mjs +21 -14
  691. package/dist/src/services/headlessClient/index.mjs.map +1 -1
  692. package/dist/src/services/historyOwnership/type.d.mts +15 -0
  693. package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
  694. package/dist/src/services/hubChannelHarness/index.cjs +2 -2
  695. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
  696. package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
  697. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
  698. package/dist/src/services/hubChannelHarness/index.mjs +2 -2
  699. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
  700. package/dist/src/services/json/core.cjs +30 -0
  701. package/dist/src/services/json/core.cjs.map +1 -0
  702. package/dist/src/services/json/core.d.mts +21 -0
  703. package/dist/src/services/json/core.d.mts.map +1 -0
  704. package/dist/src/services/json/core.mjs +26 -0
  705. package/dist/src/services/json/core.mjs.map +1 -0
  706. package/dist/src/services/json/sync.cjs +48 -0
  707. package/dist/src/services/json/sync.cjs.map +1 -0
  708. package/dist/src/services/json/sync.d.mts +22 -0
  709. package/dist/src/services/json/sync.d.mts.map +1 -0
  710. package/dist/src/services/json/sync.mjs +43 -0
  711. package/dist/src/services/json/sync.mjs.map +1 -0
  712. package/dist/src/services/kernel/index.cjs +2 -2
  713. package/dist/src/services/kernel/index.cjs.map +1 -1
  714. package/dist/src/services/kernel/index.d.mts +3 -3
  715. package/dist/src/services/kernel/index.d.mts.map +1 -1
  716. package/dist/src/services/kernel/index.mjs +2 -2
  717. package/dist/src/services/kernel/index.mjs.map +1 -1
  718. package/dist/src/services/nativeChildTools/index.cjs +16 -0
  719. package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
  720. package/dist/src/services/nativeChildTools/index.mjs +16 -0
  721. package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
  722. package/dist/src/services/nodeHost/index.cjs +30 -0
  723. package/dist/src/services/nodeHost/index.cjs.map +1 -0
  724. package/dist/src/services/nodeHost/index.d.mts +16 -0
  725. package/dist/src/services/nodeHost/index.d.mts.map +1 -0
  726. package/dist/src/services/nodeHost/index.mjs +27 -0
  727. package/dist/src/services/nodeHost/index.mjs.map +1 -0
  728. package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
  729. package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
  730. package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
  731. package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
  732. package/dist/src/services/openSessionRegistry/index.cjs +6 -128
  733. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
  734. package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
  735. package/dist/src/services/openSessionRegistry/index.mjs +6 -128
  736. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
  737. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
  738. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
  739. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
  740. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
  741. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
  742. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
  743. package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
  744. package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
  745. package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
  746. package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
  747. package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
  748. package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
  749. package/dist/src/services/packageApiHarness/index.cjs +1 -1
  750. package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
  751. package/dist/src/services/packageApiHarness/index.d.mts +6 -6
  752. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
  753. package/dist/src/services/packageApiHarness/index.mjs +2 -2
  754. package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
  755. package/dist/src/services/piArgs/index.cjs +53 -0
  756. package/dist/src/services/piArgs/index.cjs.map +1 -0
  757. package/dist/src/services/piArgs/index.d.mts +6 -0
  758. package/dist/src/services/piArgs/index.d.mts.map +1 -0
  759. package/dist/src/services/piArgs/index.mjs +53 -0
  760. package/dist/src/services/piArgs/index.mjs.map +1 -0
  761. package/dist/src/services/piExtensionHost/index.cjs +47 -39
  762. package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
  763. package/dist/src/services/piExtensionHost/index.d.mts +83 -0
  764. package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
  765. package/dist/src/services/piExtensionHost/index.mjs +47 -38
  766. package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
  767. package/dist/src/services/piHelpTools/index.cjs +5 -5
  768. package/dist/src/services/piHelpTools/index.cjs.map +1 -1
  769. package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
  770. package/dist/src/services/piHelpTools/index.mjs +7 -7
  771. package/dist/src/services/piHelpTools/index.mjs.map +1 -1
  772. package/dist/src/services/piMessages/index.cjs +106 -0
  773. package/dist/src/services/piMessages/index.cjs.map +1 -0
  774. package/dist/src/services/piMessages/index.mjs +105 -0
  775. package/dist/src/services/piMessages/index.mjs.map +1 -0
  776. package/dist/src/services/piSessionEntries/index.cjs +4 -4
  777. package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
  778. package/dist/src/services/piSessionEntries/index.mjs +3 -3
  779. package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
  780. package/dist/src/services/piSettings/core.cjs +308 -0
  781. package/dist/src/services/piSettings/core.cjs.map +1 -0
  782. package/dist/src/services/piSettings/core.d.mts +102 -0
  783. package/dist/src/services/piSettings/core.d.mts.map +1 -0
  784. package/dist/src/services/piSettings/core.mjs +276 -0
  785. package/dist/src/services/piSettings/core.mjs.map +1 -0
  786. package/dist/src/services/piSettings/sync.cjs +119 -0
  787. package/dist/src/services/piSettings/sync.cjs.map +1 -0
  788. package/dist/src/services/piSettings/sync.d.mts +44 -0
  789. package/dist/src/services/piSettings/sync.d.mts.map +1 -0
  790. package/dist/src/services/piSettings/sync.mjs +110 -0
  791. package/dist/src/services/piSettings/sync.mjs.map +1 -0
  792. package/dist/src/services/piSummary/index.cjs +7 -0
  793. package/dist/src/services/piSummary/index.cjs.map +1 -0
  794. package/dist/src/services/piSummary/index.mjs +7 -0
  795. package/dist/src/services/piSummary/index.mjs.map +1 -0
  796. package/dist/src/services/platformFiles/index.cjs +44 -0
  797. package/dist/src/services/platformFiles/index.cjs.map +1 -0
  798. package/dist/src/services/platformFiles/index.d.mts +16 -0
  799. package/dist/src/services/platformFiles/index.d.mts.map +1 -0
  800. package/dist/src/services/platformFiles/index.mjs +39 -0
  801. package/dist/src/services/platformFiles/index.mjs.map +1 -0
  802. package/dist/src/services/pluginLifecycle/index.cjs +19 -13
  803. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
  804. package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
  805. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
  806. package/dist/src/services/pluginLifecycle/index.mjs +19 -14
  807. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
  808. package/dist/src/services/poPackage/core.cjs +73 -0
  809. package/dist/src/services/poPackage/core.cjs.map +1 -0
  810. package/dist/src/services/poPackage/core.d.mts +32 -0
  811. package/dist/src/services/poPackage/core.d.mts.map +1 -0
  812. package/dist/src/services/poPackage/core.mjs +66 -0
  813. package/dist/src/services/poPackage/core.mjs.map +1 -0
  814. package/dist/src/services/poPackage/sync.cjs +55 -0
  815. package/dist/src/services/poPackage/sync.cjs.map +1 -0
  816. package/dist/src/services/poPackage/sync.d.mts +21 -0
  817. package/dist/src/services/poPackage/sync.d.mts.map +1 -0
  818. package/dist/src/services/poPackage/sync.mjs +50 -0
  819. package/dist/src/services/poPackage/sync.mjs.map +1 -0
  820. package/dist/src/services/providerAuth/index.cjs +11 -7
  821. package/dist/src/services/providerAuth/index.cjs.map +1 -1
  822. package/dist/src/services/providerAuth/index.mjs +11 -7
  823. package/dist/src/services/providerAuth/index.mjs.map +1 -1
  824. package/dist/src/services/publicFileShares/index.cjs +1 -1
  825. package/dist/src/services/publicFileShares/index.cjs.map +1 -1
  826. package/dist/src/services/publicFileShares/index.d.mts +2 -2
  827. package/dist/src/services/publicFileShares/index.mjs +2 -2
  828. package/dist/src/services/publicFileShares/index.mjs.map +1 -1
  829. package/dist/src/services/remoteAccess/index.d.mts +1 -0
  830. package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
  831. package/dist/src/services/remoteAccessStore/index.cjs +8 -190
  832. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
  833. package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
  834. package/dist/src/services/remoteAccessStore/index.mjs +7 -187
  835. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
  836. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
  837. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
  839. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
  841. package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
  843. package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
  844. package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
  845. package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
  846. package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
  847. package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
  848. package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
  849. package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
  850. package/dist/src/services/serialRunner/index.cjs +25 -0
  851. package/dist/src/services/serialRunner/index.cjs.map +1 -0
  852. package/dist/src/services/serialRunner/index.d.mts +10 -0
  853. package/dist/src/services/serialRunner/index.d.mts.map +1 -0
  854. package/dist/src/services/serialRunner/index.mjs +25 -0
  855. package/dist/src/services/serialRunner/index.mjs.map +1 -0
  856. package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
  857. package/dist/src/services/serverHost/index.cjs.map +1 -0
  858. package/dist/src/services/serverHost/index.d.mts +31 -0
  859. package/dist/src/services/serverHost/index.d.mts.map +1 -0
  860. package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
  861. package/dist/src/services/serverHost/index.mjs.map +1 -0
  862. package/dist/src/services/sessionAttachments/index.cjs +4 -3
  863. package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
  864. package/dist/src/services/sessionAttachments/index.d.mts +1 -6
  865. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
  866. package/dist/src/services/sessionAttachments/index.mjs +3 -2
  867. package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
  868. package/dist/src/services/sessionAttachments/type.d.mts +9 -0
  869. package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
  870. package/dist/src/services/sessionFiles/index.cjs +96 -0
  871. package/dist/src/services/sessionFiles/index.cjs.map +1 -0
  872. package/dist/src/services/sessionFiles/index.d.mts +33 -0
  873. package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
  874. package/dist/src/services/sessionFiles/index.mjs +89 -0
  875. package/dist/src/services/sessionFiles/index.mjs.map +1 -0
  876. package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
  877. package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
  878. package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
  879. package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
  880. package/dist/src/services/sessionGitStatus/index.cjs +31 -33
  881. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
  882. package/dist/src/services/sessionGitStatus/index.mjs +31 -33
  883. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
  884. package/dist/src/services/sessionPresentation/index.cjs +3 -27
  885. package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
  886. package/dist/src/services/sessionPresentation/index.mjs +3 -27
  887. package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
  888. package/dist/src/services/skillPrompt/index.cjs +11 -0
  889. package/dist/src/services/skillPrompt/index.cjs.map +1 -0
  890. package/dist/src/services/skillPrompt/index.mjs +11 -0
  891. package/dist/src/services/skillPrompt/index.mjs.map +1 -0
  892. package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
  893. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
  894. package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
  895. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
  896. package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
  897. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
  898. package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
  899. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
  900. package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
  901. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
  902. package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
  903. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
  904. package/dist/src/services/testMode/index.cjs +162 -0
  905. package/dist/src/services/testMode/index.cjs.map +1 -0
  906. package/dist/src/services/testMode/index.d.mts +17 -0
  907. package/dist/src/services/testMode/index.d.mts.map +1 -0
  908. package/dist/src/services/testMode/index.mjs +155 -0
  909. package/dist/src/services/testMode/index.mjs.map +1 -0
  910. package/dist/src/services/toolOverrides/index.cjs +6 -6
  911. package/dist/src/services/toolOverrides/index.cjs.map +1 -1
  912. package/dist/src/services/toolOverrides/index.d.mts +3 -3
  913. package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
  914. package/dist/src/services/toolOverrides/index.mjs +6 -6
  915. package/dist/src/services/toolOverrides/index.mjs.map +1 -1
  916. package/dist/src/services/toolPrompt/index.d.mts +17 -0
  917. package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
  918. package/dist/src/services/toolSurface/index.cjs +3 -3
  919. package/dist/src/services/toolSurface/index.cjs.map +1 -1
  920. package/dist/src/services/toolSurface/index.d.mts +3 -3
  921. package/dist/src/services/toolSurface/index.d.mts.map +1 -1
  922. package/dist/src/services/toolSurface/index.mjs +4 -4
  923. package/dist/src/services/toolSurface/index.mjs.map +1 -1
  924. package/dist/src/services/traceContext/index.cjs.map +1 -1
  925. package/dist/src/services/traceContext/index.mjs.map +1 -1
  926. package/dist/src/services/transcriptPages/index.cjs +159 -33
  927. package/dist/src/services/transcriptPages/index.cjs.map +1 -1
  928. package/dist/src/services/transcriptPages/index.mjs +158 -34
  929. package/dist/src/services/transcriptPages/index.mjs.map +1 -1
  930. package/dist/src/services/voiceToolsContract/index.cjs +7 -7
  931. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
  932. package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
  933. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
  934. package/dist/src/services/voiceToolsContract/index.mjs +7 -7
  935. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
  936. package/dist/src/services/workspaceRegistry/index.cjs +9 -179
  937. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
  938. package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
  939. package/dist/src/services/workspaceRegistry/index.mjs +7 -176
  940. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
  941. package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
  942. package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
  943. package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
  944. package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
  945. package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
  946. package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
  947. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
  948. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
  949. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
  950. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
  951. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
  952. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
  953. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
  954. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
  955. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
  956. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
  957. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
  958. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
  959. package/dist/src/systems/child/services/childSession/index.cjs +94 -20
  960. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
  961. package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
  962. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
  963. package/dist/src/systems/child/services/childSession/index.mjs +94 -20
  964. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
  965. package/dist/src/systems/child/types/childSession.cjs +33 -13
  966. package/dist/src/systems/child/types/childSession.cjs.map +1 -1
  967. package/dist/src/systems/child/types/childSession.d.mts +143 -80
  968. package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
  969. package/dist/src/systems/child/types/childSession.mjs +24 -9
  970. package/dist/src/systems/child/types/childSession.mjs.map +1 -1
  971. package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
  972. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
  973. package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
  974. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
  975. package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
  976. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
  977. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
  978. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
  979. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
  980. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
  981. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
  982. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
  983. package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
  984. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
  985. package/dist/src/testing/pi/testHost.cjs +2 -2
  986. package/dist/src/testing/pi/testHost.cjs.map +1 -1
  987. package/dist/src/testing/pi/testHost.d.mts +3 -2
  988. package/dist/src/testing/pi/testHost.mjs +3 -3
  989. package/dist/src/testing/pi/testHost.mjs.map +1 -1
  990. package/dist/src/types/config.d.mts +1 -1
  991. package/dist/src/types/config.d.mts.map +1 -1
  992. package/dist/src/types/kernel.d.mts +3 -3
  993. package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
  994. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
  995. package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
  996. package/dist/src/web/services/apiClient/index.d.mts +1 -0
  997. package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
  998. package/dist/src/web/services/apiPaths/index.d.mts +1 -1
  999. package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
  1000. package/dist/src/web/services/mcpWidget.cjs.map +1 -1
  1001. package/dist/src/web/services/mcpWidget.d.mts +2 -2
  1002. package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
  1003. package/dist/src/web/services/mcpWidget.mjs.map +1 -1
  1004. package/dist/src/web/services/testing/templateRail.cjs +3 -0
  1005. package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
  1006. package/dist/src/web/services/testing/templateRail.mjs +3 -0
  1007. package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
  1008. package/dist/src/web/types/mcpWidget.d.mts +1 -1
  1009. package/dist/src/web/types/nativeTemplate.d.mts +1 -1
  1010. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
  1011. package/dist/src/web/types/template.d.mts +8 -0
  1012. package/dist/src/web/types/template.d.mts.map +1 -1
  1013. package/dist/src/web/types/webPlugin.d.mts +17 -5
  1014. package/dist/src/web/types/webPlugin.d.mts.map +1 -1
  1015. package/dist/testMode.cjs +4 -0
  1016. package/dist/testMode.d.mts +2 -0
  1017. package/dist/testMode.mjs +1 -0
  1018. package/dist/testing.cjs +1 -1
  1019. package/dist/testing.d.mts +2 -2
  1020. package/dist/testing.mjs +2 -2
  1021. package/dist/toolInventory.cjs.map +1 -1
  1022. package/dist/toolInventory.mjs.map +1 -1
  1023. package/dist/toolNames.mjs +1 -2
  1024. package/dist/toolOverrides.cjs +4 -4
  1025. package/dist/toolOverrides.d.mts +3 -3
  1026. package/dist/toolOverrides.mjs +3 -3
  1027. package/dist/toolSurface.cjs +4 -4
  1028. package/dist/toolSurface.d.mts +3 -3
  1029. package/dist/toolSurface.mjs +3 -3
  1030. package/dist/transition.cjs +3 -3
  1031. package/dist/transition.d.cjs +3 -3
  1032. package/dist/transition.d.mts +2 -2
  1033. package/dist/transition.mjs +1 -2
  1034. package/dist/transitionClassifier.cjs.map +1 -1
  1035. package/dist/transitionClassifier.d.mts +2 -2
  1036. package/dist/transitionClassifier.d.mts.map +1 -1
  1037. package/dist/transitionClassifier.mjs.map +1 -1
  1038. package/dist/transitionCoordinator.cjs +3 -3
  1039. package/dist/transitionCoordinator.cjs.map +1 -1
  1040. package/dist/transitionCoordinator.d.mts +4 -4
  1041. package/dist/transitionCoordinator.d.mts.map +1 -1
  1042. package/dist/transitionCoordinator.mjs +3 -3
  1043. package/dist/transitionCoordinator.mjs.map +1 -1
  1044. package/dist/typesContextApi.d.mts +2 -1
  1045. package/dist/typesContextApi.d.mts.map +1 -1
  1046. package/dist/uiHub.cjs +3 -3
  1047. package/dist/uiHub.d.mts +2 -2
  1048. package/dist/uiHub.mjs +1 -2
  1049. package/dist/voiceTools.cjs +5 -5
  1050. package/dist/voiceTools.d.mts +3 -3
  1051. package/dist/voiceTools.mjs +3 -3
  1052. package/dist/web.cjs +8 -0
  1053. package/dist/web.d.mts +3 -2
  1054. package/dist/web.mjs +2 -1
  1055. package/dist/webCompositions.cjs.map +1 -1
  1056. package/dist/webCompositions.d.mts +7 -7
  1057. package/dist/webCompositions.d.mts.map +1 -1
  1058. package/dist/webCompositions.mjs.map +1 -1
  1059. package/licenses/Codex-Apache-2.0.txt +201 -0
  1060. package/package.json +58 -53
  1061. package/dist/doomPackage.cjs +0 -61
  1062. package/dist/doomPackage.cjs.map +0 -1
  1063. package/dist/doomPackage.d.mts +0 -17
  1064. package/dist/doomPackage.d.mts.map +0 -1
  1065. package/dist/doomPackage.mjs +0 -54
  1066. package/dist/doomPackage.mjs.map +0 -1
  1067. package/dist/jsonlSessionRepo.cjs +0 -44
  1068. package/dist/jsonlSessionRepo.cjs.map +0 -1
  1069. package/dist/jsonlSessionRepo.d.mts +0 -7
  1070. package/dist/jsonlSessionRepo.d.mts.map +0 -1
  1071. package/dist/jsonlSessionRepo.mjs +0 -42
  1072. package/dist/jsonlSessionRepo.mjs.map +0 -1
  1073. package/dist/runtimeJson.cjs.map +0 -1
  1074. package/dist/runtimeJson.d.mts.map +0 -1
  1075. package/dist/runtimeJson.mjs.map +0 -1
  1076. package/dist/runtimePiSettings.cjs.map +0 -1
  1077. package/dist/runtimePiSettings.d.mts.map +0 -1
  1078. package/dist/runtimePiSettings.mjs.map +0 -1
  1079. package/dist/serverFacet.cjs +0 -34
  1080. package/dist/serverFacet.d.mts +0 -10
  1081. package/dist/serverFacet.mjs +0 -9
  1082. package/dist/src/pi/piWebSocketListener.cjs +0 -115
  1083. package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
  1084. package/dist/src/pi/piWebSocketListener.mjs +0 -115
  1085. package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
  1086. package/dist/src/schemas/serverFacet.cjs +0 -111
  1087. package/dist/src/schemas/serverFacet.cjs.map +0 -1
  1088. package/dist/src/schemas/serverFacet.d.mts +0 -152
  1089. package/dist/src/schemas/serverFacet.d.mts.map +0 -1
  1090. package/dist/src/schemas/serverFacet.mjs +0 -101
  1091. package/dist/src/schemas/serverFacet.mjs.map +0 -1
  1092. package/dist/src/schemas/sessionUpdates.d.mts +0 -34
  1093. package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
  1094. package/dist/src/server/headlessProtocol.cjs +0 -382
  1095. package/dist/src/server/headlessProtocol.cjs.map +0 -1
  1096. package/dist/src/server/headlessProtocol.mjs +0 -382
  1097. package/dist/src/server/headlessProtocol.mjs.map +0 -1
  1098. package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
  1099. package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
  1100. package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
  1101. package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
  1102. package/dist/src/server/serverFacetLoader.cjs +0 -214
  1103. package/dist/src/server/serverFacetLoader.cjs.map +0 -1
  1104. package/dist/src/server/serverFacetLoader.d.mts +0 -72
  1105. package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
  1106. package/dist/src/server/serverFacetLoader.mjs +0 -212
  1107. package/dist/src/server/serverFacetLoader.mjs.map +0 -1
  1108. package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
  1109. package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
  1110. package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
  1111. package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
  1112. package/dist/src/services/historyImport/index.cjs +0 -8
  1113. package/dist/src/services/historyImport/index.cjs.map +0 -1
  1114. package/dist/src/services/historyImport/index.d.mts +0 -68
  1115. package/dist/src/services/historyImport/index.d.mts.map +0 -1
  1116. package/dist/src/services/historyImport/index.mjs +0 -8
  1117. package/dist/src/services/historyImport/index.mjs.map +0 -1
  1118. package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
  1119. package/dist/src/services/requestReceipts/index.cjs.map +0 -1
  1120. package/dist/src/services/requestReceipts/index.d.mts +0 -11
  1121. package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
  1122. package/dist/src/services/requestReceipts/index.mjs.map +0 -1
  1123. package/dist/src/services/rpcTranscript/index.cjs +0 -633
  1124. package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
  1125. package/dist/src/services/rpcTranscript/index.d.mts +0 -50
  1126. package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
  1127. package/dist/src/services/rpcTranscript/index.mjs +0 -632
  1128. package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
  1129. package/dist/src/services/serverFacet/index.cjs.map +0 -1
  1130. package/dist/src/services/serverFacet/index.d.mts +0 -31
  1131. package/dist/src/services/serverFacet/index.d.mts.map +0 -1
  1132. package/dist/src/services/serverFacet/index.mjs.map +0 -1
  1133. package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
  1134. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
  1135. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
  1136. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
  1137. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
  1138. package/dist/terminalPiChildSessionService.cjs +0 -324
  1139. package/dist/terminalPiChildSessionService.cjs.map +0 -1
  1140. package/dist/terminalPiChildSessionService.d.mts +0 -46
  1141. package/dist/terminalPiChildSessionService.d.mts.map +0 -1
  1142. package/dist/terminalPiChildSessionService.mjs +0 -318
  1143. package/dist/terminalPiChildSessionService.mjs.map +0 -1
  1144. package/dist/v3Export.cjs +0 -10
  1145. package/dist/v3Export.cjs.map +0 -1
  1146. package/dist/v3Export.d.mts +0 -35
  1147. package/dist/v3Export.d.mts.map +0 -1
  1148. package/dist/v3Export.mjs +0 -9
  1149. package/dist/v3Export.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
- import { HistoryOwnership } from "../../services/historyImport/index.mjs";
1
+ import { PoPlatform } from "../../schemas/platform.mjs";
2
2
  import { Static, TSchema } from "typebox";
3
- import { CompactionPolicy, Conversation, ConversationStreamOptions, Harness, QueueMode, Session, Storage } from "@earendil-works/pi-durable";
4
- import { Context, JsonValue } from "@earendil-works/chord";
3
+ import { CompactionPolicy, Conversation, ConversationId, ConversationStreamOptions, Cursor, EntryQuery, EntryRecord, Harness, Page, QueueMode, Session, Storage } from "@earendil-works/pi-durable";
5
4
  import { Api, CredentialStore, ImageContent, Message, Model, ModelThinkingLevel, Models, MutableModels, Provider, RetryPolicy, Tool, ToolResultMessage, Usage } from "@earendil-works/pi-ai";
5
+ import { Context, JsonValue } from "@earendil-works/chord";
6
6
  //#region src/types/server/directHarnessRuntime.d.ts
7
7
  export type AgentMessage = Message | import('@earendil-works/pi-coding-agent').SessionMessageEntry['message'];
8
8
  export type ThinkingLevel = ModelThinkingLevel;
@@ -60,6 +60,8 @@ export type Entry = {
60
60
  summary: string;
61
61
  tokensBefore: number;
62
62
  retainedTail: AgentMessage[];
63
+ /** The first entry kept verbatim, as the harness stored the cut. */
64
+ firstKeptEntryId?: string;
63
65
  fromHook: boolean;
64
66
  details?: JsonValue;
65
67
  usage?: Usage;
@@ -87,7 +89,6 @@ export interface SessionStats {
87
89
  cost: number;
88
90
  usage: Usage;
89
91
  sessionId?: string;
90
- sessionFile?: string;
91
92
  totalMessages?: number;
92
93
  totalCost?: number;
93
94
  contextUsage?: import('@earendil-works/pi-coding-agent').ContextUsage;
@@ -97,7 +98,7 @@ export interface CompactionPreparation {
97
98
  messages: AgentMessage[];
98
99
  tokensBefore: number;
99
100
  retainedTail: AgentMessage[];
100
- firstKeptEntryId?: string;
101
+ firstKeptEntryId: string;
101
102
  messagesToSummarize: AgentMessage[];
102
103
  turnPrefixMessages: AgentMessage[];
103
104
  isSplitTurn: boolean;
@@ -197,12 +198,12 @@ export type HarnessEvent = ({
197
198
  message: import('@earendil-works/pi-ai').AssistantMessage;
198
199
  event: import('@earendil-works/pi-ai').AssistantMessageEvent;
199
200
  } | {
200
- type: 'tool_start';
201
+ type: 'tool_execution_start';
201
202
  toolCallId: string;
202
203
  toolName: string;
203
204
  args: Record<string, JsonValue>;
204
205
  } | {
205
- type: 'tool_update';
206
+ type: 'tool_execution_update';
206
207
  toolCallId: string;
207
208
  toolName: string;
208
209
  partialResult: {
@@ -210,7 +211,7 @@ export type HarnessEvent = ({
210
211
  details?: JsonValue;
211
212
  };
212
213
  } | {
213
- type: 'tool_end';
214
+ type: 'tool_execution_end';
214
215
  toolCallId: string;
215
216
  toolName: string;
216
217
  result: {
@@ -219,7 +220,7 @@ export type HarnessEvent = ({
219
220
  };
220
221
  isError: boolean;
221
222
  } | {
222
- type: 'entry_added';
223
+ type: 'entry_appended';
223
224
  entry: Entry;
224
225
  } | {
225
226
  type: 'queue_update';
@@ -297,10 +298,14 @@ export interface DirectHarnessModelBoundary {
297
298
  resources: AgentHarnessResources;
298
299
  }
299
300
  export interface DirectHarnessRuntimeOptions<TContext extends object | undefined = object | undefined> {
300
- /** Stable session identity. Existing session files are authoritative when omitted. */
301
+ /** Stable session identity. The stored identity is authoritative when omitted. */
301
302
  sessionId?: string;
302
- /** Working directory used by NodeExecutionEnv and newly-created sessions. */
303
+ /** Reopen this stored session only; never create it. */
304
+ resume?: boolean;
305
+ /** Working directory used by the execution env and newly-created sessions. */
303
306
  cwd: string;
307
+ /** Host capabilities: the tools' execution env at `cwd` and the agent session storage. */
308
+ platform: PoPlatform;
304
309
  /** Stable lane identity. Defaults to `main`. */
305
310
  lane?: string;
306
311
  /** Stable host identity exposed to the parent orchestrator. */
@@ -308,20 +313,10 @@ export interface DirectHarnessRuntimeOptions<TContext extends object | undefined
308
313
  sessionName?: string;
309
314
  /** Injecting a Session is supported for tests and hosts that already own storage. */
310
315
  session?: Session;
316
+ /** Storage the caller owns and closes; replaces `platform.sessions`. */
311
317
  durableStorage?: Storage;
312
- /** Durable hosts write SQLite. The legacy JSONL selector is rejected. */
313
- storage?: 'jsonl' | 'sqlite';
314
- /** Existing durable-v1 SQLite session path. Requires historyOwnership for its lifetime. */
315
- sessionPath?: string;
316
- /** Existing v3 JSONL path. It is never opened for writing. */
317
- legacySessionPath?: string;
318
318
  /** Parent identity recorded on newly-created sessions. */
319
319
  parentSessionId?: string;
320
- sessionsRoot?: string;
321
- /** Required when opening any existing session or importing legacy history. */
322
- historyOwnership?: HistoryOwnership;
323
- historyOriginalPath?: string;
324
- historyStatePath?: string;
325
320
  /** Public pi-ai model/provider/credential registries. */
326
321
  models?: Models | MutableModels;
327
322
  providers?: readonly Provider[];
@@ -364,6 +359,10 @@ export interface DirectHarnessRuntimeOptions<TContext extends object | undefined
364
359
  /** Returns false when the text is not an active package command, preserving normal prompt handling. */
365
360
  dispatchCommand?: (text: string) => Promise<boolean>;
366
361
  }
362
+ /** A further lane on an open runtime's Harness, such as a subagent's: its own conversation, tools, prompt and hooks. */
363
+ export type DirectHarnessLaneOptions<TContext extends object | undefined = object | undefined> = Omit<DirectHarnessRuntimeOptions<TContext>, 'platform' | 'resume' | 'lane' | 'session' | 'durableStorage' | 'parentSessionId' | 'models' | 'providers' | 'credentials' | 'initialFastMode' | 'initialAgentLocked' | 'retry' | 'compaction' | 'steeringMode' | 'followUpMode' | 'toolExecution' | 'streamOptions'> & {
364
+ sessionId: string;
365
+ };
367
366
  export interface DirectHarnessEventListener {
368
367
  (event: HarnessEvent, context: Context): void | Promise<void>;
369
368
  }
@@ -373,7 +372,7 @@ export interface DirectHarnessQueuedInput {
373
372
  images?: ImageContent[];
374
373
  delivery: 'steer' | 'followUp' | 'nextRun';
375
374
  scheduling: 'automatic' | 'held';
376
- disposition: 'pending' | 'handoff' | 'uncertain';
375
+ disposition: 'pending' | 'handoff';
377
376
  }
378
377
  export interface DirectHarnessLifecycle {
379
378
  revision: number;
@@ -388,7 +387,6 @@ export interface DirectHarnessLifecycle {
388
387
  /** Direct, same-process AgentHarness runtime owned by one session host. */
389
388
  export interface DirectHarnessRuntime<TContext extends object | undefined = object | undefined> {
390
389
  readonly sessionId: string;
391
- readonly sessionFile?: string;
392
390
  readonly laneName: string;
393
391
  readonly harnessId: string;
394
392
  readonly session: Session;
@@ -413,7 +411,21 @@ export interface DirectHarnessRuntime<TContext extends object | undefined = obje
413
411
  entries: Entry[];
414
412
  leafId: string | null;
415
413
  }>;
416
- /** Detached canonical context, before facet hooks, with unchanged custom metadata restored and no system message. */
414
+ /** Inclusive numeric-sequence suffix, oldest first, with the same projection and parents as readEntries. */
415
+ readEntriesFrom(seq: number): Promise<{
416
+ entries: Entry[];
417
+ leafId: string | null;
418
+ }>;
419
+ /** Fork-aware keyset scan of the active conversation, for bounded transcript pages. */
420
+ scanEntries(query: Omit<EntryQuery, 'conversationId'>, limit: number, cursor: Cursor | undefined, context: Context): Promise<Page<EntryRecord, Cursor>>;
421
+ /** Profile identity entries of the active conversation, from its identity history document. */
422
+ readIdentities(context: Context): Promise<{
423
+ readonly items: readonly {
424
+ seq: number;
425
+ data: JsonValue;
426
+ }[];
427
+ } | undefined>;
428
+ /** Detached canonical context, before package hooks, with unchanged custom metadata restored and no system message. */
417
429
  getContextMessages(): Promise<AgentMessage[]>;
418
430
  listCommands(): readonly {
419
431
  name: string;
@@ -446,10 +458,17 @@ export interface DirectHarnessRuntime<TContext extends object | undefined = obje
446
458
  followUp: never[];
447
459
  }>;
448
460
  setName(name: string): Promise<void>;
461
+ /** Stores already normalized groups and emits SESSION_GROUPS_CHANGED_FRAME. */
462
+ setGroups(groups: readonly string[]): Promise<void>;
449
463
  getSessionStats(): Promise<SessionStats>;
450
464
  replaceTools(tools: AgentHarnessTool<TContext>[]): Promise<void>;
451
465
  replaceResources(resources: AgentHarnessResources): Promise<void>;
452
466
  readResources(): Promise<AgentHarnessResources>;
467
+ /**
468
+ * UI configuration only: waits for the whole tool batch, or runs when idle.
469
+ * Resolves with the completed callback result. Tool bodies must not await this API.
470
+ */
471
+ runAtToolBoundary<T>(callback: () => Promise<T>): Promise<T>;
453
472
  /** Runs one non-agent operation while idle. Waiting is opt-in and does not guarantee ordering. */
454
473
  runExternalOperation<T>(operation: () => Promise<T>, options?: {
455
474
  signal?: AbortSignal;
@@ -499,9 +518,12 @@ export interface DirectHarnessRuntime<TContext extends object | undefined = obje
499
518
  * `nextTurn` stages without writing or waking the agent and returns resolved settled.
500
519
  * Only the next ordinary user prompt admission flushes it, not automatic or internal runs.
501
520
  * Reuse requestId to deduplicate retries of steer/followUp admission.
521
+ * During a user interruption the input is admitted after it, without delaying the return; `admitted` then
522
+ * resolves once the input is durable, so a caller that acknowledges delivery awaits it.
502
523
  */
503
524
  submitInternalMessage(message: string | AgentMessage, delivery?: 'steer' | 'followUp' | 'nextTurn', requestId?: string): Promise<{
504
525
  settled: Promise<void>;
526
+ admitted?: Promise<void>;
505
527
  }>;
506
528
  steer(message: string | AgentMessage, images?: ImageContent[], targetOperationId?: string): Promise<void>;
507
529
  followUp(message: string | AgentMessage, images?: ImageContent[]): Promise<void>;
@@ -521,6 +543,13 @@ export interface DirectHarnessRuntime<TContext extends object | undefined = obje
521
543
  }>;
522
544
  /** Continues a persisted in-flight operation; false when the lane had none. */
523
545
  resume(): Promise<boolean>;
546
+ /**
547
+ * Runs `conversation` of this runtime's Harness as a further lane with its own tools, prompt and hooks; the main
548
+ * lane only. Disposing the lane detaches it and never aborts its work, so a child resumes with the Harness.
549
+ */
550
+ openLane(conversation: Conversation, options: DirectHarnessLaneOptions<TContext>): Promise<DirectHarnessRuntime<TContext>>;
551
+ /** Removes a finished lane's tools, prompt and hooks from the Harness; the main lane only. */
552
+ closeLane(conversationId: ConversationId): void;
524
553
  dispose(): Promise<void>;
525
554
  }
526
555
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"directHarnessRuntime.d.mts","names":[],"sources":["../../../../src/types/server/directHarnessRuntime.ts"],"mappings":"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"}
1
+ {"version":3,"file":"directHarnessRuntime.d.mts","names":[],"sources":["../../../../src/types/server/directHarnessRuntime.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { DoomMcpUiResource } from "../../schemas/mcpFacet.mjs";
2
- import { DoomHeadlessTool, DoomHeadlessToolResult, DoomMcpSkillAccess } from "../../schemas/headless.mjs";
1
+ import { PoMcpUiResource } from "../../schemas/mcpFacet.mjs";
2
+ import { PoHeadlessTool, PoHeadlessToolResult, PoMcpSkillAccess } from "../../schemas/headless.mjs";
3
3
  import { TSchema } from "typebox";
4
4
  //#region src/types/server/sessionToolSurface.d.ts
5
5
  export interface SessionToolDescriptor {
@@ -7,16 +7,16 @@ export interface SessionToolDescriptor {
7
7
  readonly label: string;
8
8
  readonly description: string;
9
9
  readonly parameters: TSchema;
10
- readonly annotations?: DoomHeadlessTool['annotations'];
11
- readonly outputSchema?: DoomHeadlessTool['outputSchema'];
12
- readonly _meta?: DoomHeadlessTool['_meta'];
10
+ readonly annotations?: PoHeadlessTool['annotations'];
11
+ readonly outputSchema?: PoHeadlessTool['outputSchema'];
12
+ readonly _meta?: PoHeadlessTool['_meta'];
13
13
  }
14
14
  export interface SessionSkillDescriptor {
15
15
  readonly name: string;
16
16
  readonly description: string;
17
17
  readonly uri: string;
18
18
  }
19
- export type SessionUiResourceDescriptor = Omit<DoomMcpUiResource, 'read'>;
19
+ export type SessionUiResourceDescriptor = Omit<PoMcpUiResource, 'read'>;
20
20
  export interface SessionToolSurfaceSnapshot {
21
21
  readonly revision: number;
22
22
  readonly tools: readonly SessionToolDescriptor[];
@@ -29,14 +29,14 @@ export interface SessionToolInvocation {
29
29
  readonly arguments: Record<string, unknown>;
30
30
  readonly signal?: AbortSignal;
31
31
  /** Grant-filtered remote skills for this invocation only. */
32
- readonly mcpSkills?: DoomMcpSkillAccess;
32
+ readonly mcpSkills?: PoMcpSkillAccess;
33
33
  readonly authorize?: () => void | Promise<void>;
34
- readonly onUpdate?: (result: DoomHeadlessToolResult) => void;
34
+ readonly onUpdate?: (result: PoHeadlessToolResult) => void;
35
35
  }
36
36
  /** Live, session-owned boundary used by transports that expose the applied capability surface. */
37
37
  export interface SessionToolSurface {
38
38
  readSurface(): SessionToolSurfaceSnapshot;
39
- invokeTool(invocation: SessionToolInvocation): Promise<DoomHeadlessToolResult>;
39
+ invokeTool(invocation: SessionToolInvocation): Promise<PoHeadlessToolResult>;
40
40
  readSkill(revision: number, uri: string): string | Promise<string>;
41
41
  readUiResource?(revision: number, uri: string): string | Promise<string>;
42
42
  }
@@ -149,4 +149,5 @@ export interface ApiClientOptions<TScopes extends ApiScopeName> {
149
149
  */
150
150
  export declare function createApiClient<const TScopes extends ApiScopeName, const TRoutes extends ApiRoutes>(routes: TRoutes, options: ApiClientOptions<TScopes>): ApiClient<TScopes, TRoutes>;
151
151
  //#endregion
152
+ export {};
152
153
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../../../src/web/services/apiPaths/index.ts"],"sourcesContent":["/**\n * The byte shape of every URL the browser addresses a package API with.\n *\n * One implementation, because the alternative is what the cockpit had: twelve\n * packages each concatenating `${sessionApiPath(id)}/plugins/${base}${path}` by\n * hand, three of them spelling the prefix a fourth way, and one rewriting it\n * with `String.replace`. A route that moves by one character is answered by the\n * service worker out of the signed bundle cache instead of the network, so the\n * failure is a 404 nowhere near its cause.\n *\n * The host builds the same strings from `doomApiMountPath` and, for OpenAPI\n * templating, from `createApiDocuments`. Those live in the node half of this\n * package and cannot be imported here: `src/web` is a separate tree that reads\n * neither `src/schemas` nor `src/services`. The three are held together by the\n * agreement test instead of by a call, which is the guarantee that matters.\n */\n\n/**\n * Who a request is addressed to. Ids are supplied decoded and encoded here, so\n * a caller never double-encodes and a workspace with a slash in its name cannot\n * forge a path segment.\n */\nexport type ApiScopeAddress =\n | { readonly scope: 'global' }\n | { readonly scope: 'workspace'; readonly workspaceId: string }\n | { readonly scope: 'session'; readonly workspaceId: string; readonly sessionId: string };\n\n/** Path parameter values, substituted into a route's `:name` segments. */\nexport type ApiParams = Readonly<Record<string, string>>;\n\n/** Query values a route may carry. `undefined` drops the parameter rather than sending 'undefined'. */\nexport type ApiQuery = Readonly<Record<string, string | number | boolean | undefined>>;\n\n/** The base path the host reserves for its own settings API, mounted outside /plugins/. */\nexport const SETTINGS_BASE_PATH = 'settings';\n\n/** The scope's own resource root: what a host-owned route hangs off. */\nexport function scopeApiRoot(address: ApiScopeAddress): string {\n if (address.scope === 'global') return '/api';\n const workspace = `/api/workspaces/${encodeURIComponent(address.workspaceId)}`;\n if (address.scope === 'workspace') return workspace;\n return `${workspace}/sessions/${encodeURIComponent(address.sessionId)}`;\n}\n\n/**\n * The mount one package API answers on.\n *\n * `basePath` is omitted for a host-owned route, which the contract schema\n * already spells that way, so the session file-bytes route and a plugin route\n * are the same construction with one field different rather than two code\n * paths. `settings` is the host's own API and sits beside `/plugins`, not\n * under it.\n */\nexport function pluginApiBase(address: ApiScopeAddress, basePath: string | undefined): string {\n const root = scopeApiRoot(address);\n if (basePath === undefined) return root;\n if (basePath === SETTINGS_BASE_PATH) return `${root}/${SETTINGS_BASE_PATH}`;\n return `${root}/plugins/${basePath}`;\n}\n\n/**\n * The query string, `encodeURIComponent` per pair rather than `URLSearchParams`.\n *\n * `URLSearchParams` writes a space as `+`, which only decodes back to a space\n * under form-urlencoded rules; `%20` decodes to a space everywhere. The\n * cockpit already relied on that difference in both directions, so picking the\n * unambiguous one is what lets a single encoder serve every route.\n */\nexport function apiQueryString(query: ApiQuery | undefined): string {\n if (query === undefined) return '';\n const pairs: string[] = [];\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined) continue;\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n }\n return pairs.length === 0 ? '' : `?${pairs.join('&')}`;\n}\n\n/**\n * The absolute, root-relative URL for one route.\n *\n * Root-relative on purpose: the sealed transport refuses anything else, because\n * a remote session relays its requests through a gateway that will not forward\n * an arbitrary origin.\n *\n * A route whose path is exactly '/' addresses the mount itself, so the slash is\n * dropped rather than doubled.\n */\nexport function pluginApiUrl(\n address: ApiScopeAddress,\n basePath: string | undefined,\n path: string,\n query?: ApiQuery,\n params?: ApiParams,\n): string {\n const resolved = applyPathParams(path, params);\n return `${pluginApiBase(address, basePath)}${resolved === '/' ? '' : resolved}${apiQueryString(query)}`;\n}\n\n/**\n * Substitutes a route's `:name` segments, as Hono spells them.\n *\n * Encoded per segment, so a value containing a slash names one segment rather\n * than inventing another. A declared parameter with no value is left as the\n * literal `:name`, which fails visibly at the route instead of silently\n * addressing the collection above it.\n */\nexport function applyPathParams(path: string, params: ApiParams | undefined): string {\n if (params === undefined || !path.includes(':')) return path;\n return path\n .split('/')\n .map((segment) => {\n if (!segment.startsWith(':')) return segment;\n // Hono writes a multi-segment parameter as `:name{.+}`. Its value is a\n // relative path, so the slashes inside it are structure the route means\n // to keep; encoding them would address one oddly-named file instead of a\n // nested one. Each piece is still escaped on its own.\n const catchAll = segment.endsWith('}');\n const name = catchAll ? segment.slice(1, segment.indexOf('{')) : segment.slice(1);\n const value = params[name];\n if (value === undefined) return segment;\n return catchAll ? value.split('/').map(encodeURIComponent).join('/') : encodeURIComponent(value);\n })\n .join('/');\n}\n"],"mappings":";;AAkCA,MAAa,qBAAqB;;AAGlC,SAAgB,aAAa,SAAkC;CAC7D,IAAI,QAAQ,UAAU,UAAU,OAAO;CACvC,MAAM,YAAY,mBAAmB,mBAAmB,QAAQ,WAAW;CAC3E,IAAI,QAAQ,UAAU,aAAa,OAAO;CAC1C,OAAO,GAAG,UAAU,YAAY,mBAAmB,QAAQ,SAAS;AACtE;;;;;;;;;;AAWA,SAAgB,cAAc,SAA0B,UAAsC;CAC5F,MAAM,OAAO,aAAa,OAAO;CACjC,IAAI,aAAa,KAAA,GAAW,OAAO;CACnC,IAAI,aAAA,YAAiC,OAAO,GAAG,KAAK,GAAG;CACvD,OAAO,GAAG,KAAK,WAAW;AAC5B;;;;;;;;;AAUA,SAAgB,eAAe,OAAqC;CAClE,IAAI,UAAU,KAAA,GAAW,OAAO;CAChC,MAAM,QAAkB,CAAC;CACzB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,UAAU,KAAA,GAAW;EACzB,MAAM,KAAK,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,OAAO,KAAK,CAAC,GAAG;CAC9E;CACA,OAAO,MAAM,WAAW,IAAI,KAAK,IAAI,MAAM,KAAK,GAAG;AACrD;;;;;;;;;;;AAYA,SAAgB,aACd,SACA,UACA,MACA,OACA,QACQ;CACR,MAAM,WAAW,gBAAgB,MAAM,MAAM;CAC7C,OAAO,GAAG,cAAc,SAAS,QAAQ,IAAI,aAAa,MAAM,KAAK,WAAW,eAAe,KAAK;AACtG;;;;;;;;;AAUA,SAAgB,gBAAgB,MAAc,QAAuC;CACnF,IAAI,WAAW,KAAA,KAAa,CAAC,KAAK,SAAS,GAAG,GAAG,OAAO;CACxD,OAAO,KACJ,MAAM,GAAG,CAAC,CACV,KAAK,YAAY;EAChB,IAAI,CAAC,QAAQ,WAAW,GAAG,GAAG,OAAO;EAKrC,MAAM,WAAW,QAAQ,SAAS,GAAG;EAErC,MAAM,QAAQ,OADD,WAAW,QAAQ,MAAM,GAAG,QAAQ,QAAQ,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC;EAEhF,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,OAAO,WAAW,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,GAAG,IAAI,mBAAmB,KAAK;CACjG,CAAC,CAAC,CACD,KAAK,GAAG;AACb"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../../src/web/services/apiPaths/index.ts"],"sourcesContent":["/**\n * The byte shape of every URL the browser addresses a package API with.\n *\n * One implementation, because the alternative is what the cockpit had: twelve\n * packages each concatenating `${sessionApiPath(id)}/plugins/${base}${path}` by\n * hand, three of them spelling the prefix a fourth way, and one rewriting it\n * with `String.replace`. A route that moves by one character is answered by the\n * service worker out of the signed bundle cache instead of the network, so the\n * failure is a 404 nowhere near its cause.\n *\n * The host builds the same strings from `poApiMountPath` and, for OpenAPI\n * templating, from `createApiDocuments`. Those live in the node half of this\n * package and cannot be imported here: `src/web` is a separate tree that reads\n * neither `src/schemas` nor `src/services`. The three are held together by the\n * agreement test instead of by a call, which is the guarantee that matters.\n */\n\n/**\n * Who a request is addressed to. Ids are supplied decoded and encoded here, so\n * a caller never double-encodes and a workspace with a slash in its name cannot\n * forge a path segment.\n */\nexport type ApiScopeAddress =\n | { readonly scope: 'global' }\n | { readonly scope: 'workspace'; readonly workspaceId: string }\n | { readonly scope: 'session'; readonly workspaceId: string; readonly sessionId: string };\n\n/** Path parameter values, substituted into a route's `:name` segments. */\nexport type ApiParams = Readonly<Record<string, string>>;\n\n/** Query values a route may carry. `undefined` drops the parameter rather than sending 'undefined'. */\nexport type ApiQuery = Readonly<Record<string, string | number | boolean | undefined>>;\n\n/** The base path the host reserves for its own settings API, mounted outside /plugins/. */\nexport const SETTINGS_BASE_PATH = 'settings';\n\n/** The scope's own resource root: what a host-owned route hangs off. */\nexport function scopeApiRoot(address: ApiScopeAddress): string {\n if (address.scope === 'global') return '/api';\n const workspace = `/api/workspaces/${encodeURIComponent(address.workspaceId)}`;\n if (address.scope === 'workspace') return workspace;\n return `${workspace}/sessions/${encodeURIComponent(address.sessionId)}`;\n}\n\n/**\n * The mount one package API answers on.\n *\n * `basePath` is omitted for a host-owned route, which the contract schema\n * already spells that way, so the session file-bytes route and a plugin route\n * are the same construction with one field different rather than two code\n * paths. `settings` is the host's own API and sits beside `/plugins`, not\n * under it.\n */\nexport function pluginApiBase(address: ApiScopeAddress, basePath: string | undefined): string {\n const root = scopeApiRoot(address);\n if (basePath === undefined) return root;\n if (basePath === SETTINGS_BASE_PATH) return `${root}/${SETTINGS_BASE_PATH}`;\n return `${root}/plugins/${basePath}`;\n}\n\n/**\n * The query string, `encodeURIComponent` per pair rather than `URLSearchParams`.\n *\n * `URLSearchParams` writes a space as `+`, which only decodes back to a space\n * under form-urlencoded rules; `%20` decodes to a space everywhere. The\n * cockpit already relied on that difference in both directions, so picking the\n * unambiguous one is what lets a single encoder serve every route.\n */\nexport function apiQueryString(query: ApiQuery | undefined): string {\n if (query === undefined) return '';\n const pairs: string[] = [];\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined) continue;\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n }\n return pairs.length === 0 ? '' : `?${pairs.join('&')}`;\n}\n\n/**\n * The absolute, root-relative URL for one route.\n *\n * Root-relative on purpose: the sealed transport refuses anything else, because\n * a remote session relays its requests through a gateway that will not forward\n * an arbitrary origin.\n *\n * A route whose path is exactly '/' addresses the mount itself, so the slash is\n * dropped rather than doubled.\n */\nexport function pluginApiUrl(\n address: ApiScopeAddress,\n basePath: string | undefined,\n path: string,\n query?: ApiQuery,\n params?: ApiParams,\n): string {\n const resolved = applyPathParams(path, params);\n return `${pluginApiBase(address, basePath)}${resolved === '/' ? '' : resolved}${apiQueryString(query)}`;\n}\n\n/**\n * Substitutes a route's `:name` segments, as Hono spells them.\n *\n * Encoded per segment, so a value containing a slash names one segment rather\n * than inventing another. A declared parameter with no value is left as the\n * literal `:name`, which fails visibly at the route instead of silently\n * addressing the collection above it.\n */\nexport function applyPathParams(path: string, params: ApiParams | undefined): string {\n if (params === undefined || !path.includes(':')) return path;\n return path\n .split('/')\n .map((segment) => {\n if (!segment.startsWith(':')) return segment;\n // Hono writes a multi-segment parameter as `:name{.+}`. Its value is a\n // relative path, so the slashes inside it are structure the route means\n // to keep; encoding them would address one oddly-named file instead of a\n // nested one. Each piece is still escaped on its own.\n const catchAll = segment.endsWith('}');\n const name = catchAll ? segment.slice(1, segment.indexOf('{')) : segment.slice(1);\n const value = params[name];\n if (value === undefined) return segment;\n return catchAll ? value.split('/').map(encodeURIComponent).join('/') : encodeURIComponent(value);\n })\n .join('/');\n}\n"],"mappings":";;AAkCA,MAAa,qBAAqB;;AAGlC,SAAgB,aAAa,SAAkC;CAC7D,IAAI,QAAQ,UAAU,UAAU,OAAO;CACvC,MAAM,YAAY,mBAAmB,mBAAmB,QAAQ,WAAW;CAC3E,IAAI,QAAQ,UAAU,aAAa,OAAO;CAC1C,OAAO,GAAG,UAAU,YAAY,mBAAmB,QAAQ,SAAS;AACtE;;;;;;;;;;AAWA,SAAgB,cAAc,SAA0B,UAAsC;CAC5F,MAAM,OAAO,aAAa,OAAO;CACjC,IAAI,aAAa,KAAA,GAAW,OAAO;CACnC,IAAI,aAAA,YAAiC,OAAO,GAAG,KAAK,GAAG;CACvD,OAAO,GAAG,KAAK,WAAW;AAC5B;;;;;;;;;AAUA,SAAgB,eAAe,OAAqC;CAClE,IAAI,UAAU,KAAA,GAAW,OAAO;CAChC,MAAM,QAAkB,CAAC;CACzB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,UAAU,KAAA,GAAW;EACzB,MAAM,KAAK,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,OAAO,KAAK,CAAC,GAAG;CAC9E;CACA,OAAO,MAAM,WAAW,IAAI,KAAK,IAAI,MAAM,KAAK,GAAG;AACrD;;;;;;;;;;;AAYA,SAAgB,aACd,SACA,UACA,MACA,OACA,QACQ;CACR,MAAM,WAAW,gBAAgB,MAAM,MAAM;CAC7C,OAAO,GAAG,cAAc,SAAS,QAAQ,IAAI,aAAa,MAAM,KAAK,WAAW,eAAe,KAAK;AACtG;;;;;;;;;AAUA,SAAgB,gBAAgB,MAAc,QAAuC;CACnF,IAAI,WAAW,KAAA,KAAa,CAAC,KAAK,SAAS,GAAG,GAAG,OAAO;CACxD,OAAO,KACJ,MAAM,GAAG,CAAC,CACV,KAAK,YAAY;EAChB,IAAI,CAAC,QAAQ,WAAW,GAAG,GAAG,OAAO;EAKrC,MAAM,WAAW,QAAQ,SAAS,GAAG;EAErC,MAAM,QAAQ,OADD,WAAW,QAAQ,MAAM,GAAG,QAAQ,QAAQ,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC;EAEhF,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,OAAO,WAAW,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,GAAG,IAAI,mBAAmB,KAAK;CACjG,CAAC,CAAC,CACD,KAAK,GAAG;AACb"}
@@ -9,7 +9,7 @@
9
9
  * service worker out of the signed bundle cache instead of the network, so the
10
10
  * failure is a 404 nowhere near its cause.
11
11
  *
12
- * The host builds the same strings from `doomApiMountPath` and, for OpenAPI
12
+ * The host builds the same strings from `poApiMountPath` and, for OpenAPI
13
13
  * templating, from `createApiDocuments`. Those live in the node half of this
14
14
  * package and cannot be imported here: `src/web` is a separate tree that reads
15
15
  * neither `src/schemas` nor `src/services`. The three are held together by the
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../src/web/services/apiPaths/index.ts"],"sourcesContent":["/**\n * The byte shape of every URL the browser addresses a package API with.\n *\n * One implementation, because the alternative is what the cockpit had: twelve\n * packages each concatenating `${sessionApiPath(id)}/plugins/${base}${path}` by\n * hand, three of them spelling the prefix a fourth way, and one rewriting it\n * with `String.replace`. A route that moves by one character is answered by the\n * service worker out of the signed bundle cache instead of the network, so the\n * failure is a 404 nowhere near its cause.\n *\n * The host builds the same strings from `doomApiMountPath` and, for OpenAPI\n * templating, from `createApiDocuments`. Those live in the node half of this\n * package and cannot be imported here: `src/web` is a separate tree that reads\n * neither `src/schemas` nor `src/services`. The three are held together by the\n * agreement test instead of by a call, which is the guarantee that matters.\n */\n\n/**\n * Who a request is addressed to. Ids are supplied decoded and encoded here, so\n * a caller never double-encodes and a workspace with a slash in its name cannot\n * forge a path segment.\n */\nexport type ApiScopeAddress =\n | { readonly scope: 'global' }\n | { readonly scope: 'workspace'; readonly workspaceId: string }\n | { readonly scope: 'session'; readonly workspaceId: string; readonly sessionId: string };\n\n/** Path parameter values, substituted into a route's `:name` segments. */\nexport type ApiParams = Readonly<Record<string, string>>;\n\n/** Query values a route may carry. `undefined` drops the parameter rather than sending 'undefined'. */\nexport type ApiQuery = Readonly<Record<string, string | number | boolean | undefined>>;\n\n/** The base path the host reserves for its own settings API, mounted outside /plugins/. */\nexport const SETTINGS_BASE_PATH = 'settings';\n\n/** The scope's own resource root: what a host-owned route hangs off. */\nexport function scopeApiRoot(address: ApiScopeAddress): string {\n if (address.scope === 'global') return '/api';\n const workspace = `/api/workspaces/${encodeURIComponent(address.workspaceId)}`;\n if (address.scope === 'workspace') return workspace;\n return `${workspace}/sessions/${encodeURIComponent(address.sessionId)}`;\n}\n\n/**\n * The mount one package API answers on.\n *\n * `basePath` is omitted for a host-owned route, which the contract schema\n * already spells that way, so the session file-bytes route and a plugin route\n * are the same construction with one field different rather than two code\n * paths. `settings` is the host's own API and sits beside `/plugins`, not\n * under it.\n */\nexport function pluginApiBase(address: ApiScopeAddress, basePath: string | undefined): string {\n const root = scopeApiRoot(address);\n if (basePath === undefined) return root;\n if (basePath === SETTINGS_BASE_PATH) return `${root}/${SETTINGS_BASE_PATH}`;\n return `${root}/plugins/${basePath}`;\n}\n\n/**\n * The query string, `encodeURIComponent` per pair rather than `URLSearchParams`.\n *\n * `URLSearchParams` writes a space as `+`, which only decodes back to a space\n * under form-urlencoded rules; `%20` decodes to a space everywhere. The\n * cockpit already relied on that difference in both directions, so picking the\n * unambiguous one is what lets a single encoder serve every route.\n */\nexport function apiQueryString(query: ApiQuery | undefined): string {\n if (query === undefined) return '';\n const pairs: string[] = [];\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined) continue;\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n }\n return pairs.length === 0 ? '' : `?${pairs.join('&')}`;\n}\n\n/**\n * The absolute, root-relative URL for one route.\n *\n * Root-relative on purpose: the sealed transport refuses anything else, because\n * a remote session relays its requests through a gateway that will not forward\n * an arbitrary origin.\n *\n * A route whose path is exactly '/' addresses the mount itself, so the slash is\n * dropped rather than doubled.\n */\nexport function pluginApiUrl(\n address: ApiScopeAddress,\n basePath: string | undefined,\n path: string,\n query?: ApiQuery,\n params?: ApiParams,\n): string {\n const resolved = applyPathParams(path, params);\n return `${pluginApiBase(address, basePath)}${resolved === '/' ? '' : resolved}${apiQueryString(query)}`;\n}\n\n/**\n * Substitutes a route's `:name` segments, as Hono spells them.\n *\n * Encoded per segment, so a value containing a slash names one segment rather\n * than inventing another. A declared parameter with no value is left as the\n * literal `:name`, which fails visibly at the route instead of silently\n * addressing the collection above it.\n */\nexport function applyPathParams(path: string, params: ApiParams | undefined): string {\n if (params === undefined || !path.includes(':')) return path;\n return path\n .split('/')\n .map((segment) => {\n if (!segment.startsWith(':')) return segment;\n // Hono writes a multi-segment parameter as `:name{.+}`. Its value is a\n // relative path, so the slashes inside it are structure the route means\n // to keep; encoding them would address one oddly-named file instead of a\n // nested one. Each piece is still escaped on its own.\n const catchAll = segment.endsWith('}');\n const name = catchAll ? segment.slice(1, segment.indexOf('{')) : segment.slice(1);\n const value = params[name];\n if (value === undefined) return segment;\n return catchAll ? value.split('/').map(encodeURIComponent).join('/') : encodeURIComponent(value);\n })\n .join('/');\n}\n"],"mappings":";;AAkCA,MAAa,qBAAqB;;AAGlC,SAAgB,aAAa,SAAkC;CAC7D,IAAI,QAAQ,UAAU,UAAU,OAAO;CACvC,MAAM,YAAY,mBAAmB,mBAAmB,QAAQ,WAAW;CAC3E,IAAI,QAAQ,UAAU,aAAa,OAAO;CAC1C,OAAO,GAAG,UAAU,YAAY,mBAAmB,QAAQ,SAAS;AACtE;;;;;;;;;;AAWA,SAAgB,cAAc,SAA0B,UAAsC;CAC5F,MAAM,OAAO,aAAa,OAAO;CACjC,IAAI,aAAa,KAAA,GAAW,OAAO;CACnC,IAAI,aAAA,YAAiC,OAAO,GAAG,KAAK,GAAG;CACvD,OAAO,GAAG,KAAK,WAAW;AAC5B;;;;;;;;;AAUA,SAAgB,eAAe,OAAqC;CAClE,IAAI,UAAU,KAAA,GAAW,OAAO;CAChC,MAAM,QAAkB,CAAC;CACzB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,UAAU,KAAA,GAAW;EACzB,MAAM,KAAK,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,OAAO,KAAK,CAAC,GAAG;CAC9E;CACA,OAAO,MAAM,WAAW,IAAI,KAAK,IAAI,MAAM,KAAK,GAAG;AACrD;;;;;;;;;;;AAYA,SAAgB,aACd,SACA,UACA,MACA,OACA,QACQ;CACR,MAAM,WAAW,gBAAgB,MAAM,MAAM;CAC7C,OAAO,GAAG,cAAc,SAAS,QAAQ,IAAI,aAAa,MAAM,KAAK,WAAW,eAAe,KAAK;AACtG;;;;;;;;;AAUA,SAAgB,gBAAgB,MAAc,QAAuC;CACnF,IAAI,WAAW,KAAA,KAAa,CAAC,KAAK,SAAS,GAAG,GAAG,OAAO;CACxD,OAAO,KACJ,MAAM,GAAG,CAAC,CACV,KAAK,YAAY;EAChB,IAAI,CAAC,QAAQ,WAAW,GAAG,GAAG,OAAO;EAKrC,MAAM,WAAW,QAAQ,SAAS,GAAG;EAErC,MAAM,QAAQ,OADD,WAAW,QAAQ,MAAM,GAAG,QAAQ,QAAQ,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC;EAEhF,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,OAAO,WAAW,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,GAAG,IAAI,mBAAmB,KAAK;CACjG,CAAC,CAAC,CACD,KAAK,GAAG;AACb"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../src/web/services/apiPaths/index.ts"],"sourcesContent":["/**\n * The byte shape of every URL the browser addresses a package API with.\n *\n * One implementation, because the alternative is what the cockpit had: twelve\n * packages each concatenating `${sessionApiPath(id)}/plugins/${base}${path}` by\n * hand, three of them spelling the prefix a fourth way, and one rewriting it\n * with `String.replace`. A route that moves by one character is answered by the\n * service worker out of the signed bundle cache instead of the network, so the\n * failure is a 404 nowhere near its cause.\n *\n * The host builds the same strings from `poApiMountPath` and, for OpenAPI\n * templating, from `createApiDocuments`. Those live in the node half of this\n * package and cannot be imported here: `src/web` is a separate tree that reads\n * neither `src/schemas` nor `src/services`. The three are held together by the\n * agreement test instead of by a call, which is the guarantee that matters.\n */\n\n/**\n * Who a request is addressed to. Ids are supplied decoded and encoded here, so\n * a caller never double-encodes and a workspace with a slash in its name cannot\n * forge a path segment.\n */\nexport type ApiScopeAddress =\n | { readonly scope: 'global' }\n | { readonly scope: 'workspace'; readonly workspaceId: string }\n | { readonly scope: 'session'; readonly workspaceId: string; readonly sessionId: string };\n\n/** Path parameter values, substituted into a route's `:name` segments. */\nexport type ApiParams = Readonly<Record<string, string>>;\n\n/** Query values a route may carry. `undefined` drops the parameter rather than sending 'undefined'. */\nexport type ApiQuery = Readonly<Record<string, string | number | boolean | undefined>>;\n\n/** The base path the host reserves for its own settings API, mounted outside /plugins/. */\nexport const SETTINGS_BASE_PATH = 'settings';\n\n/** The scope's own resource root: what a host-owned route hangs off. */\nexport function scopeApiRoot(address: ApiScopeAddress): string {\n if (address.scope === 'global') return '/api';\n const workspace = `/api/workspaces/${encodeURIComponent(address.workspaceId)}`;\n if (address.scope === 'workspace') return workspace;\n return `${workspace}/sessions/${encodeURIComponent(address.sessionId)}`;\n}\n\n/**\n * The mount one package API answers on.\n *\n * `basePath` is omitted for a host-owned route, which the contract schema\n * already spells that way, so the session file-bytes route and a plugin route\n * are the same construction with one field different rather than two code\n * paths. `settings` is the host's own API and sits beside `/plugins`, not\n * under it.\n */\nexport function pluginApiBase(address: ApiScopeAddress, basePath: string | undefined): string {\n const root = scopeApiRoot(address);\n if (basePath === undefined) return root;\n if (basePath === SETTINGS_BASE_PATH) return `${root}/${SETTINGS_BASE_PATH}`;\n return `${root}/plugins/${basePath}`;\n}\n\n/**\n * The query string, `encodeURIComponent` per pair rather than `URLSearchParams`.\n *\n * `URLSearchParams` writes a space as `+`, which only decodes back to a space\n * under form-urlencoded rules; `%20` decodes to a space everywhere. The\n * cockpit already relied on that difference in both directions, so picking the\n * unambiguous one is what lets a single encoder serve every route.\n */\nexport function apiQueryString(query: ApiQuery | undefined): string {\n if (query === undefined) return '';\n const pairs: string[] = [];\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined) continue;\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n }\n return pairs.length === 0 ? '' : `?${pairs.join('&')}`;\n}\n\n/**\n * The absolute, root-relative URL for one route.\n *\n * Root-relative on purpose: the sealed transport refuses anything else, because\n * a remote session relays its requests through a gateway that will not forward\n * an arbitrary origin.\n *\n * A route whose path is exactly '/' addresses the mount itself, so the slash is\n * dropped rather than doubled.\n */\nexport function pluginApiUrl(\n address: ApiScopeAddress,\n basePath: string | undefined,\n path: string,\n query?: ApiQuery,\n params?: ApiParams,\n): string {\n const resolved = applyPathParams(path, params);\n return `${pluginApiBase(address, basePath)}${resolved === '/' ? '' : resolved}${apiQueryString(query)}`;\n}\n\n/**\n * Substitutes a route's `:name` segments, as Hono spells them.\n *\n * Encoded per segment, so a value containing a slash names one segment rather\n * than inventing another. A declared parameter with no value is left as the\n * literal `:name`, which fails visibly at the route instead of silently\n * addressing the collection above it.\n */\nexport function applyPathParams(path: string, params: ApiParams | undefined): string {\n if (params === undefined || !path.includes(':')) return path;\n return path\n .split('/')\n .map((segment) => {\n if (!segment.startsWith(':')) return segment;\n // Hono writes a multi-segment parameter as `:name{.+}`. Its value is a\n // relative path, so the slashes inside it are structure the route means\n // to keep; encoding them would address one oddly-named file instead of a\n // nested one. Each piece is still escaped on its own.\n const catchAll = segment.endsWith('}');\n const name = catchAll ? segment.slice(1, segment.indexOf('{')) : segment.slice(1);\n const value = params[name];\n if (value === undefined) return segment;\n return catchAll ? value.split('/').map(encodeURIComponent).join('/') : encodeURIComponent(value);\n })\n .join('/');\n}\n"],"mappings":";;AAkCA,MAAa,qBAAqB;;AAGlC,SAAgB,aAAa,SAAkC;CAC7D,IAAI,QAAQ,UAAU,UAAU,OAAO;CACvC,MAAM,YAAY,mBAAmB,mBAAmB,QAAQ,WAAW;CAC3E,IAAI,QAAQ,UAAU,aAAa,OAAO;CAC1C,OAAO,GAAG,UAAU,YAAY,mBAAmB,QAAQ,SAAS;AACtE;;;;;;;;;;AAWA,SAAgB,cAAc,SAA0B,UAAsC;CAC5F,MAAM,OAAO,aAAa,OAAO;CACjC,IAAI,aAAa,KAAA,GAAW,OAAO;CACnC,IAAI,aAAA,YAAiC,OAAO,GAAG,KAAK,GAAG;CACvD,OAAO,GAAG,KAAK,WAAW;AAC5B;;;;;;;;;AAUA,SAAgB,eAAe,OAAqC;CAClE,IAAI,UAAU,KAAA,GAAW,OAAO;CAChC,MAAM,QAAkB,CAAC;CACzB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,UAAU,KAAA,GAAW;EACzB,MAAM,KAAK,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,OAAO,KAAK,CAAC,GAAG;CAC9E;CACA,OAAO,MAAM,WAAW,IAAI,KAAK,IAAI,MAAM,KAAK,GAAG;AACrD;;;;;;;;;;;AAYA,SAAgB,aACd,SACA,UACA,MACA,OACA,QACQ;CACR,MAAM,WAAW,gBAAgB,MAAM,MAAM;CAC7C,OAAO,GAAG,cAAc,SAAS,QAAQ,IAAI,aAAa,MAAM,KAAK,WAAW,eAAe,KAAK;AACtG;;;;;;;;;AAUA,SAAgB,gBAAgB,MAAc,QAAuC;CACnF,IAAI,WAAW,KAAA,KAAa,CAAC,KAAK,SAAS,GAAG,GAAG,OAAO;CACxD,OAAO,KACJ,MAAM,GAAG,CAAC,CACV,KAAK,YAAY;EAChB,IAAI,CAAC,QAAQ,WAAW,GAAG,GAAG,OAAO;EAKrC,MAAM,WAAW,QAAQ,SAAS,GAAG;EAErC,MAAM,QAAQ,OADD,WAAW,QAAQ,MAAM,GAAG,QAAQ,QAAQ,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC;EAEhF,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,OAAO,WAAW,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,GAAG,IAAI,mBAAmB,KAAK;CACjG,CAAC,CAAC,CACD,KAAK,GAAG;AACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcpWidget.cjs","names":[],"sources":["../../../../src/web/services/mcpWidget.ts"],"sourcesContent":["import type { DoomMcpWidgetProps } from '../types/mcpWidget';\n\n/** Types one package-owned MCP widget without coupling the route to the composed host. */\nexport function defineMcpWidget<T extends (props: DoomMcpWidgetProps) => unknown>(widget: T): T {\n return widget;\n}\n"],"mappings":";;AAGA,SAAgB,gBAAkE,QAAc;CAC9F,OAAO;AACT"}
1
+ {"version":3,"file":"mcpWidget.cjs","names":[],"sources":["../../../../src/web/services/mcpWidget.ts"],"sourcesContent":["import type { PoMcpWidgetProps } from '../types/mcpWidget';\n\n/** Types one package-owned MCP widget without coupling the route to the composed host. */\nexport function defineMcpWidget<T extends (props: PoMcpWidgetProps) => unknown>(widget: T): T {\n return widget;\n}\n"],"mappings":";;AAGA,SAAgB,gBAAgE,QAAc;CAC5F,OAAO;AACT"}
@@ -1,6 +1,6 @@
1
- import { DoomMcpWidgetProps } from "../types/mcpWidget.mjs";
1
+ import { PoMcpWidgetProps } from "../types/mcpWidget.mjs";
2
2
  //#region src/web/services/mcpWidget.d.ts
3
3
  /** Types one package-owned MCP widget without coupling the route to the composed host. */
4
- export declare function defineMcpWidget<T extends (props: DoomMcpWidgetProps) => unknown>(widget: T): T;
4
+ export declare function defineMcpWidget<T extends (props: PoMcpWidgetProps) => unknown>(widget: T): T;
5
5
  //#endregion
6
6
  //# sourceMappingURL=mcpWidget.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpWidget.d.mts","names":[],"sources":["../../../../src/web/services/mcpWidget.ts"],"mappings":";;;wBAGgB,gBAAgB,WAAW,OAAO,gCAAgC,QAAQ,IAAI"}
1
+ {"version":3,"file":"mcpWidget.d.mts","names":[],"sources":["../../../../src/web/services/mcpWidget.ts"],"mappings":";;;wBAGgB,gBAAgB,WAAW,OAAO,8BAA8B,QAAQ,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcpWidget.mjs","names":[],"sources":["../../../../src/web/services/mcpWidget.ts"],"sourcesContent":["import type { DoomMcpWidgetProps } from '../types/mcpWidget';\n\n/** Types one package-owned MCP widget without coupling the route to the composed host. */\nexport function defineMcpWidget<T extends (props: DoomMcpWidgetProps) => unknown>(widget: T): T {\n return widget;\n}\n"],"mappings":";;AAGA,SAAgB,gBAAkE,QAAc;CAC9F,OAAO;AACT"}
1
+ {"version":3,"file":"mcpWidget.mjs","names":[],"sources":["../../../../src/web/services/mcpWidget.ts"],"sourcesContent":["import type { PoMcpWidgetProps } from '../types/mcpWidget';\n\n/** Types one package-owned MCP widget without coupling the route to the composed host. */\nexport function defineMcpWidget<T extends (props: PoMcpWidgetProps) => unknown>(widget: T): T {\n return widget;\n}\n"],"mappings":";;AAGA,SAAgB,gBAAgE,QAAc;CAC5F,OAAO;AACT"}
@@ -109,6 +109,9 @@ function templateRailStub(options = {}) {
109
109
  const recorded = {
110
110
  openSession: record("openSession"),
111
111
  renameSession: record("renameSession"),
112
+ setSessionGroups: record("setSessionGroups", Promise.resolve(void 0)),
113
+ renameGroup: record("renameGroup", Promise.resolve(void 0)),
114
+ deleteGroup: record("deleteGroup", Promise.resolve(void 0)),
112
115
  restartSession: record("restartSession"),
113
116
  removeSession: record("removeSession", Promise.resolve(void 0)),
114
117
  resumeSession: record("resumeSession"),
@@ -1 +1 @@
1
- {"version":3,"file":"templateRail.cjs","names":[],"sources":["../../../../../src/web/services/testing/templateRail.ts"],"sourcesContent":["import type {\n WebTemplateRail,\n WebTemplateRailActions,\n WebTemplateRailSession,\n WebTemplateRailWorkspace,\n} from '../../types/template';\n\n/**\n * The rail a template receives, built for a test or story.\n *\n * Two workspaces with sessions that exercise the card's branches (a branch\n * with a dirty star, a profile avatar, a nested child, workflow sessions in\n * each state, a pending setup), plus\n * actions that record what the template asked for. Override any part.\n */\n\nexport interface RecordedRailAction {\n action: keyof WebTemplateRailActions;\n args: readonly unknown[];\n}\n\nexport interface TemplateRailFixture {\n rail: WebTemplateRail;\n /** Every action the template called, in order. */\n readonly actions: readonly RecordedRailAction[];\n}\n\nexport interface TemplateRailOptions {\n workspaces?: readonly WebTemplateRailWorkspace[];\n addWorkspace?: WebTemplateRail['addWorkspace'];\n remote?: WebTemplateRail['remote'];\n actions?: Partial<WebTemplateRailActions>;\n}\n\n/** A tiny transparent PNG, so avatar markup renders an image without a network request. */\nconst AVATAR_URL =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';\n\nexport function railSession(overrides: Partial<WebTemplateRailSession> & { id: string }): WebTemplateRailSession {\n return {\n name: overrides.id,\n ordinal: 1,\n active: false,\n nested: false,\n status: 'idle · done 2m ago',\n awaitingInput: false,\n restarting: false,\n pendingSetups: [],\n ...overrides,\n };\n}\n\nexport function defaultRailWorkspaces(): WebTemplateRailWorkspace[] {\n return [\n {\n id: 'po',\n name: 'po',\n root: '/Users/dev/workspace/po',\n available: true,\n legacy: false,\n sessions: [\n railSession({\n id: 'rail',\n name: 'rail redesign',\n ordinal: 1,\n active: true,\n status: 'running · 3m',\n git: { branch: 'main', dirty: true },\n profile: { name: 'ponytail', label: 'Ponytail', initials: 'PO', avatarUrl: AVATAR_URL },\n }),\n railSession({\n id: 'rail-worktree',\n name: 'worktree child',\n ordinal: 2,\n nested: true,\n provenance: 'worktree',\n git: { branch: 'feature/rail', dirty: false },\n profile: { name: 'reviewer', label: 'Reviewer', initials: 'RE' },\n pendingSetups: [\n {\n id: 'setup',\n name: 'docs worktree',\n status: 'automatic worktree setup failed',\n failed: true,\n recovery: 'Resolve the Git setup, then retry the authenticated conversation.',\n },\n ],\n }),\n railSession({\n id: 'rail-workflow',\n name: 'release-hardening',\n ordinal: 3,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow · build › edit token.ts · 4m',\n }),\n railSession({\n id: 'rail-workflow-failed',\n name: 'nightly',\n ordinal: 4,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow failed · test',\n awaitingInput: true,\n }),\n railSession({\n id: 'rail-workflow-done',\n name: 'hotfix',\n ordinal: 5,\n nested: true,\n provenance: 'workflow-session',\n status: 'stopped · open to wake',\n }),\n ],\n },\n {\n id: 'notes',\n name: 'Notes',\n root: '/Users/dev/.po/workspace/Notes',\n available: true,\n legacy: false,\n sessions: [],\n },\n ];\n}\n\nexport function templateRailStub(options: TemplateRailOptions = {}): TemplateRailFixture {\n const actions: RecordedRailAction[] = [];\n const record =\n <Name extends keyof WebTemplateRailActions>(action: Name, result?: unknown) =>\n (...args: unknown[]) => {\n actions.push({ action, args });\n return result;\n };\n const recorded: WebTemplateRailActions = {\n openSession: record('openSession'),\n renameSession: record('renameSession'),\n restartSession: record('restartSession'),\n removeSession: record('removeSession', Promise.resolve(undefined)) as WebTemplateRailActions['removeSession'],\n resumeSession: record('resumeSession'),\n createSession: record('createSession'),\n resumeInWorkspace: record('resumeInWorkspace'),\n openWorkspaceSettings: record('openWorkspaceSettings'),\n deleteWorkspace: record('deleteWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['deleteWorkspace'],\n openAddWorkspace: record('openAddWorkspace'),\n closeAddWorkspace: record('closeAddWorkspace'),\n addWorkspace: record('addWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['addWorkspace'],\n searchDirectories: record(\n 'searchDirectories',\n Promise.resolve(['/Users/dev/workspace/po', '/Users/dev/workspace/docs']),\n ) as WebTemplateRailActions['searchDirectories'],\n listDirectory: record(\n 'listDirectory',\n Promise.resolve({\n path: '/Users/dev',\n parent: '/Users',\n directories: ['/Users/dev/workspace', '/Users/dev/notes'],\n }),\n ) as WebTemplateRailActions['listDirectory'],\n removePendingSetup: record(\n 'removePendingSetup',\n Promise.resolve(undefined),\n ) as WebTemplateRailActions['removePendingSetup'],\n openSettings: record('openSettings'),\n openRemoteAccess: record('openRemoteAccess'),\n turnRemoteAccessOff: record('turnRemoteAccessOff'),\n renderSessionMenuItems: () => null,\n };\n return {\n rail: {\n workspaces: options.workspaces ?? defaultRailWorkspaces(),\n remote: options.remote ?? { status: 'off', deviceCount: 0 },\n pluginContent: null,\n ...(options.addWorkspace === undefined ? {} : { addWorkspace: options.addWorkspace }),\n actions: { ...recorded, ...options.actions },\n },\n actions,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"templateRail.cjs","names":[],"sources":["../../../../../src/web/services/testing/templateRail.ts"],"sourcesContent":["import type {\n WebTemplateRail,\n WebTemplateRailActions,\n WebTemplateRailSession,\n WebTemplateRailWorkspace,\n} from '../../types/template';\n\n/**\n * The rail a template receives, built for a test or story.\n *\n * Two workspaces with sessions that exercise the card's branches (a branch\n * with a dirty star, a profile avatar, a nested child, workflow sessions in\n * each state, a pending setup), plus\n * actions that record what the template asked for. Override any part.\n */\n\nexport interface RecordedRailAction {\n action: keyof WebTemplateRailActions;\n args: readonly unknown[];\n}\n\nexport interface TemplateRailFixture {\n rail: WebTemplateRail;\n /** Every action the template called, in order. */\n readonly actions: readonly RecordedRailAction[];\n}\n\nexport interface TemplateRailOptions {\n workspaces?: readonly WebTemplateRailWorkspace[];\n addWorkspace?: WebTemplateRail['addWorkspace'];\n remote?: WebTemplateRail['remote'];\n actions?: Partial<WebTemplateRailActions>;\n}\n\n/** A tiny transparent PNG, so avatar markup renders an image without a network request. */\nconst AVATAR_URL =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';\n\nexport function railSession(overrides: Partial<WebTemplateRailSession> & { id: string }): WebTemplateRailSession {\n return {\n name: overrides.id,\n ordinal: 1,\n active: false,\n nested: false,\n status: 'idle · done 2m ago',\n awaitingInput: false,\n restarting: false,\n pendingSetups: [],\n ...overrides,\n };\n}\n\nexport function defaultRailWorkspaces(): WebTemplateRailWorkspace[] {\n return [\n {\n id: 'po',\n name: 'po',\n root: '/Users/dev/workspace/po',\n available: true,\n legacy: false,\n sessions: [\n railSession({\n id: 'rail',\n name: 'rail redesign',\n ordinal: 1,\n active: true,\n status: 'running · 3m',\n git: { branch: 'main', dirty: true },\n profile: { name: 'ponytail', label: 'Ponytail', initials: 'PO', avatarUrl: AVATAR_URL },\n }),\n railSession({\n id: 'rail-worktree',\n name: 'worktree child',\n ordinal: 2,\n nested: true,\n provenance: 'worktree',\n git: { branch: 'feature/rail', dirty: false },\n profile: { name: 'reviewer', label: 'Reviewer', initials: 'RE' },\n pendingSetups: [\n {\n id: 'setup',\n name: 'docs worktree',\n status: 'automatic worktree setup failed',\n failed: true,\n recovery: 'Resolve the Git setup, then retry the authenticated conversation.',\n },\n ],\n }),\n railSession({\n id: 'rail-workflow',\n name: 'release-hardening',\n ordinal: 3,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow · build › edit token.ts · 4m',\n }),\n railSession({\n id: 'rail-workflow-failed',\n name: 'nightly',\n ordinal: 4,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow failed · test',\n awaitingInput: true,\n }),\n railSession({\n id: 'rail-workflow-done',\n name: 'hotfix',\n ordinal: 5,\n nested: true,\n provenance: 'workflow-session',\n status: 'stopped · open to wake',\n }),\n ],\n },\n {\n id: 'notes',\n name: 'Notes',\n root: '/Users/dev/.po/workspace/Notes',\n available: true,\n legacy: false,\n sessions: [],\n },\n ];\n}\n\nexport function templateRailStub(options: TemplateRailOptions = {}): TemplateRailFixture {\n const actions: RecordedRailAction[] = [];\n const record =\n <Name extends keyof WebTemplateRailActions>(action: Name, result?: unknown) =>\n (...args: unknown[]) => {\n actions.push({ action, args });\n return result;\n };\n const recorded: WebTemplateRailActions = {\n openSession: record('openSession'),\n renameSession: record('renameSession'),\n setSessionGroups: record(\n 'setSessionGroups',\n Promise.resolve(undefined),\n ) as WebTemplateRailActions['setSessionGroups'],\n renameGroup: record('renameGroup', Promise.resolve(undefined)) as WebTemplateRailActions['renameGroup'],\n deleteGroup: record('deleteGroup', Promise.resolve(undefined)) as WebTemplateRailActions['deleteGroup'],\n restartSession: record('restartSession'),\n removeSession: record('removeSession', Promise.resolve(undefined)) as WebTemplateRailActions['removeSession'],\n resumeSession: record('resumeSession'),\n createSession: record('createSession'),\n resumeInWorkspace: record('resumeInWorkspace'),\n openWorkspaceSettings: record('openWorkspaceSettings'),\n deleteWorkspace: record('deleteWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['deleteWorkspace'],\n openAddWorkspace: record('openAddWorkspace'),\n closeAddWorkspace: record('closeAddWorkspace'),\n addWorkspace: record('addWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['addWorkspace'],\n searchDirectories: record(\n 'searchDirectories',\n Promise.resolve(['/Users/dev/workspace/po', '/Users/dev/workspace/docs']),\n ) as WebTemplateRailActions['searchDirectories'],\n listDirectory: record(\n 'listDirectory',\n Promise.resolve({\n path: '/Users/dev',\n parent: '/Users',\n directories: ['/Users/dev/workspace', '/Users/dev/notes'],\n }),\n ) as WebTemplateRailActions['listDirectory'],\n removePendingSetup: record(\n 'removePendingSetup',\n Promise.resolve(undefined),\n ) as WebTemplateRailActions['removePendingSetup'],\n openSettings: record('openSettings'),\n openRemoteAccess: record('openRemoteAccess'),\n turnRemoteAccessOff: record('turnRemoteAccessOff'),\n renderSessionMenuItems: () => null,\n };\n return {\n rail: {\n workspaces: options.workspaces ?? defaultRailWorkspaces(),\n remote: options.remote ?? { status: 'off', deviceCount: 0 },\n pluginContent: null,\n ...(options.addWorkspace === undefined ? {} : { addWorkspace: options.addWorkspace }),\n actions: { ...recorded, ...options.actions },\n },\n actions,\n };\n}\n"],"mappings":"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"}
@@ -109,6 +109,9 @@ function templateRailStub(options = {}) {
109
109
  const recorded = {
110
110
  openSession: record("openSession"),
111
111
  renameSession: record("renameSession"),
112
+ setSessionGroups: record("setSessionGroups", Promise.resolve(void 0)),
113
+ renameGroup: record("renameGroup", Promise.resolve(void 0)),
114
+ deleteGroup: record("deleteGroup", Promise.resolve(void 0)),
112
115
  restartSession: record("restartSession"),
113
116
  removeSession: record("removeSession", Promise.resolve(void 0)),
114
117
  resumeSession: record("resumeSession"),
@@ -1 +1 @@
1
- {"version":3,"file":"templateRail.mjs","names":[],"sources":["../../../../../src/web/services/testing/templateRail.ts"],"sourcesContent":["import type {\n WebTemplateRail,\n WebTemplateRailActions,\n WebTemplateRailSession,\n WebTemplateRailWorkspace,\n} from '../../types/template';\n\n/**\n * The rail a template receives, built for a test or story.\n *\n * Two workspaces with sessions that exercise the card's branches (a branch\n * with a dirty star, a profile avatar, a nested child, workflow sessions in\n * each state, a pending setup), plus\n * actions that record what the template asked for. Override any part.\n */\n\nexport interface RecordedRailAction {\n action: keyof WebTemplateRailActions;\n args: readonly unknown[];\n}\n\nexport interface TemplateRailFixture {\n rail: WebTemplateRail;\n /** Every action the template called, in order. */\n readonly actions: readonly RecordedRailAction[];\n}\n\nexport interface TemplateRailOptions {\n workspaces?: readonly WebTemplateRailWorkspace[];\n addWorkspace?: WebTemplateRail['addWorkspace'];\n remote?: WebTemplateRail['remote'];\n actions?: Partial<WebTemplateRailActions>;\n}\n\n/** A tiny transparent PNG, so avatar markup renders an image without a network request. */\nconst AVATAR_URL =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';\n\nexport function railSession(overrides: Partial<WebTemplateRailSession> & { id: string }): WebTemplateRailSession {\n return {\n name: overrides.id,\n ordinal: 1,\n active: false,\n nested: false,\n status: 'idle · done 2m ago',\n awaitingInput: false,\n restarting: false,\n pendingSetups: [],\n ...overrides,\n };\n}\n\nexport function defaultRailWorkspaces(): WebTemplateRailWorkspace[] {\n return [\n {\n id: 'po',\n name: 'po',\n root: '/Users/dev/workspace/po',\n available: true,\n legacy: false,\n sessions: [\n railSession({\n id: 'rail',\n name: 'rail redesign',\n ordinal: 1,\n active: true,\n status: 'running · 3m',\n git: { branch: 'main', dirty: true },\n profile: { name: 'ponytail', label: 'Ponytail', initials: 'PO', avatarUrl: AVATAR_URL },\n }),\n railSession({\n id: 'rail-worktree',\n name: 'worktree child',\n ordinal: 2,\n nested: true,\n provenance: 'worktree',\n git: { branch: 'feature/rail', dirty: false },\n profile: { name: 'reviewer', label: 'Reviewer', initials: 'RE' },\n pendingSetups: [\n {\n id: 'setup',\n name: 'docs worktree',\n status: 'automatic worktree setup failed',\n failed: true,\n recovery: 'Resolve the Git setup, then retry the authenticated conversation.',\n },\n ],\n }),\n railSession({\n id: 'rail-workflow',\n name: 'release-hardening',\n ordinal: 3,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow · build › edit token.ts · 4m',\n }),\n railSession({\n id: 'rail-workflow-failed',\n name: 'nightly',\n ordinal: 4,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow failed · test',\n awaitingInput: true,\n }),\n railSession({\n id: 'rail-workflow-done',\n name: 'hotfix',\n ordinal: 5,\n nested: true,\n provenance: 'workflow-session',\n status: 'stopped · open to wake',\n }),\n ],\n },\n {\n id: 'notes',\n name: 'Notes',\n root: '/Users/dev/.po/workspace/Notes',\n available: true,\n legacy: false,\n sessions: [],\n },\n ];\n}\n\nexport function templateRailStub(options: TemplateRailOptions = {}): TemplateRailFixture {\n const actions: RecordedRailAction[] = [];\n const record =\n <Name extends keyof WebTemplateRailActions>(action: Name, result?: unknown) =>\n (...args: unknown[]) => {\n actions.push({ action, args });\n return result;\n };\n const recorded: WebTemplateRailActions = {\n openSession: record('openSession'),\n renameSession: record('renameSession'),\n restartSession: record('restartSession'),\n removeSession: record('removeSession', Promise.resolve(undefined)) as WebTemplateRailActions['removeSession'],\n resumeSession: record('resumeSession'),\n createSession: record('createSession'),\n resumeInWorkspace: record('resumeInWorkspace'),\n openWorkspaceSettings: record('openWorkspaceSettings'),\n deleteWorkspace: record('deleteWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['deleteWorkspace'],\n openAddWorkspace: record('openAddWorkspace'),\n closeAddWorkspace: record('closeAddWorkspace'),\n addWorkspace: record('addWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['addWorkspace'],\n searchDirectories: record(\n 'searchDirectories',\n Promise.resolve(['/Users/dev/workspace/po', '/Users/dev/workspace/docs']),\n ) as WebTemplateRailActions['searchDirectories'],\n listDirectory: record(\n 'listDirectory',\n Promise.resolve({\n path: '/Users/dev',\n parent: '/Users',\n directories: ['/Users/dev/workspace', '/Users/dev/notes'],\n }),\n ) as WebTemplateRailActions['listDirectory'],\n removePendingSetup: record(\n 'removePendingSetup',\n Promise.resolve(undefined),\n ) as WebTemplateRailActions['removePendingSetup'],\n openSettings: record('openSettings'),\n openRemoteAccess: record('openRemoteAccess'),\n turnRemoteAccessOff: record('turnRemoteAccessOff'),\n renderSessionMenuItems: () => null,\n };\n return {\n rail: {\n workspaces: options.workspaces ?? defaultRailWorkspaces(),\n remote: options.remote ?? { status: 'off', deviceCount: 0 },\n pluginContent: null,\n ...(options.addWorkspace === undefined ? {} : { addWorkspace: options.addWorkspace }),\n actions: { ...recorded, ...options.actions },\n },\n actions,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"templateRail.mjs","names":[],"sources":["../../../../../src/web/services/testing/templateRail.ts"],"sourcesContent":["import type {\n WebTemplateRail,\n WebTemplateRailActions,\n WebTemplateRailSession,\n WebTemplateRailWorkspace,\n} from '../../types/template';\n\n/**\n * The rail a template receives, built for a test or story.\n *\n * Two workspaces with sessions that exercise the card's branches (a branch\n * with a dirty star, a profile avatar, a nested child, workflow sessions in\n * each state, a pending setup), plus\n * actions that record what the template asked for. Override any part.\n */\n\nexport interface RecordedRailAction {\n action: keyof WebTemplateRailActions;\n args: readonly unknown[];\n}\n\nexport interface TemplateRailFixture {\n rail: WebTemplateRail;\n /** Every action the template called, in order. */\n readonly actions: readonly RecordedRailAction[];\n}\n\nexport interface TemplateRailOptions {\n workspaces?: readonly WebTemplateRailWorkspace[];\n addWorkspace?: WebTemplateRail['addWorkspace'];\n remote?: WebTemplateRail['remote'];\n actions?: Partial<WebTemplateRailActions>;\n}\n\n/** A tiny transparent PNG, so avatar markup renders an image without a network request. */\nconst AVATAR_URL =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';\n\nexport function railSession(overrides: Partial<WebTemplateRailSession> & { id: string }): WebTemplateRailSession {\n return {\n name: overrides.id,\n ordinal: 1,\n active: false,\n nested: false,\n status: 'idle · done 2m ago',\n awaitingInput: false,\n restarting: false,\n pendingSetups: [],\n ...overrides,\n };\n}\n\nexport function defaultRailWorkspaces(): WebTemplateRailWorkspace[] {\n return [\n {\n id: 'po',\n name: 'po',\n root: '/Users/dev/workspace/po',\n available: true,\n legacy: false,\n sessions: [\n railSession({\n id: 'rail',\n name: 'rail redesign',\n ordinal: 1,\n active: true,\n status: 'running · 3m',\n git: { branch: 'main', dirty: true },\n profile: { name: 'ponytail', label: 'Ponytail', initials: 'PO', avatarUrl: AVATAR_URL },\n }),\n railSession({\n id: 'rail-worktree',\n name: 'worktree child',\n ordinal: 2,\n nested: true,\n provenance: 'worktree',\n git: { branch: 'feature/rail', dirty: false },\n profile: { name: 'reviewer', label: 'Reviewer', initials: 'RE' },\n pendingSetups: [\n {\n id: 'setup',\n name: 'docs worktree',\n status: 'automatic worktree setup failed',\n failed: true,\n recovery: 'Resolve the Git setup, then retry the authenticated conversation.',\n },\n ],\n }),\n railSession({\n id: 'rail-workflow',\n name: 'release-hardening',\n ordinal: 3,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow · build › edit token.ts · 4m',\n }),\n railSession({\n id: 'rail-workflow-failed',\n name: 'nightly',\n ordinal: 4,\n nested: true,\n provenance: 'workflow-session',\n status: 'workflow failed · test',\n awaitingInput: true,\n }),\n railSession({\n id: 'rail-workflow-done',\n name: 'hotfix',\n ordinal: 5,\n nested: true,\n provenance: 'workflow-session',\n status: 'stopped · open to wake',\n }),\n ],\n },\n {\n id: 'notes',\n name: 'Notes',\n root: '/Users/dev/.po/workspace/Notes',\n available: true,\n legacy: false,\n sessions: [],\n },\n ];\n}\n\nexport function templateRailStub(options: TemplateRailOptions = {}): TemplateRailFixture {\n const actions: RecordedRailAction[] = [];\n const record =\n <Name extends keyof WebTemplateRailActions>(action: Name, result?: unknown) =>\n (...args: unknown[]) => {\n actions.push({ action, args });\n return result;\n };\n const recorded: WebTemplateRailActions = {\n openSession: record('openSession'),\n renameSession: record('renameSession'),\n setSessionGroups: record(\n 'setSessionGroups',\n Promise.resolve(undefined),\n ) as WebTemplateRailActions['setSessionGroups'],\n renameGroup: record('renameGroup', Promise.resolve(undefined)) as WebTemplateRailActions['renameGroup'],\n deleteGroup: record('deleteGroup', Promise.resolve(undefined)) as WebTemplateRailActions['deleteGroup'],\n restartSession: record('restartSession'),\n removeSession: record('removeSession', Promise.resolve(undefined)) as WebTemplateRailActions['removeSession'],\n resumeSession: record('resumeSession'),\n createSession: record('createSession'),\n resumeInWorkspace: record('resumeInWorkspace'),\n openWorkspaceSettings: record('openWorkspaceSettings'),\n deleteWorkspace: record('deleteWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['deleteWorkspace'],\n openAddWorkspace: record('openAddWorkspace'),\n closeAddWorkspace: record('closeAddWorkspace'),\n addWorkspace: record('addWorkspace', Promise.resolve(undefined)) as WebTemplateRailActions['addWorkspace'],\n searchDirectories: record(\n 'searchDirectories',\n Promise.resolve(['/Users/dev/workspace/po', '/Users/dev/workspace/docs']),\n ) as WebTemplateRailActions['searchDirectories'],\n listDirectory: record(\n 'listDirectory',\n Promise.resolve({\n path: '/Users/dev',\n parent: '/Users',\n directories: ['/Users/dev/workspace', '/Users/dev/notes'],\n }),\n ) as WebTemplateRailActions['listDirectory'],\n removePendingSetup: record(\n 'removePendingSetup',\n Promise.resolve(undefined),\n ) as WebTemplateRailActions['removePendingSetup'],\n openSettings: record('openSettings'),\n openRemoteAccess: record('openRemoteAccess'),\n turnRemoteAccessOff: record('turnRemoteAccessOff'),\n renderSessionMenuItems: () => null,\n };\n return {\n rail: {\n workspaces: options.workspaces ?? defaultRailWorkspaces(),\n remote: options.remote ?? { status: 'off', deviceCount: 0 },\n pluginContent: null,\n ...(options.addWorkspace === undefined ? {} : { addWorkspace: options.addWorkspace }),\n actions: { ...recorded, ...options.actions },\n },\n actions,\n };\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { CallToolResult } from "@modelcontextprotocol/server";
2
2
  //#region src/web/types/mcpWidget.d.ts
3
3
  /** The MCP host supplies invocation data. Widgets never receive host services or credentials. */
4
- export interface DoomMcpWidgetProps {
4
+ export interface PoMcpWidgetProps {
5
5
  readonly toolName: string;
6
6
  readonly args: Readonly<Record<string, unknown>>;
7
7
  readonly result: CallToolResult | null;
@@ -6,7 +6,7 @@ import { ComponentType } from "react";
6
6
  * `WebTemplateRailActions`, so a template's menus behave as the cockpit's do. The app owns the
7
7
  * sheets these open (new session, resume); the template owns its own menus and confirmations.
8
8
  */
9
- export type NativeTemplateSessionsActions = Pick<WebTemplateRailActions, 'openSession' | 'renameSession' | 'restartSession' | 'removeSession' | 'resumeSession' | 'createSession' | 'resumeInWorkspace' | 'deleteWorkspace'>;
9
+ export type NativeTemplateSessionsActions = Pick<WebTemplateRailActions, 'openSession' | 'renameSession' | 'restartSession' | 'removeSession' | 'resumeSession' | 'createSession' | 'resumeInWorkspace' | 'deleteWorkspace'> & Partial<Pick<WebTemplateRailActions, 'addWorkspace' | 'searchDirectories' | 'listDirectory' | 'setSessionGroups' | 'renameGroup' | 'deleteGroup' | 'removePendingSetup'>>;
10
10
  /**
11
11
  * What the phone app hands a template's session list.
12
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"nativeTemplate.d.mts","names":[],"sources":["../../../../src/web/types/nativeTemplate.ts"],"mappings":";;;;;;;;YASY,gCAAgC,KAC1C;;;;;;;;iBAkBe;;EAEf,qBAAqB;EACrB,cAAc;EACd,SAAS;;;iBAIM;EACf,WAAW,cAAc;;;iBAIV;EACf;EACA;EACA;EACA;EACA,SAAS"}
1
+ {"version":3,"file":"nativeTemplate.d.mts","names":[],"sources":["../../../../src/web/types/nativeTemplate.ts"],"mappings":";;;;;;;;YASY,gCAAgC,KAC1C,8KAWA,QACE,KACE;;;;;;;;iBAkBW;;EAEf,qBAAqB;EACrB,cAAc;EACd,SAAS;;;iBAIM;EACf,WAAW,cAAc;;;iBAIV;EACf;EACA;EACA;EACA;EACA,SAAS"}
@@ -40,6 +40,8 @@ export interface WebTemplateRailSession {
40
40
  branch: string;
41
41
  dirty: boolean;
42
42
  };
43
+ /** User-assigned groups, shown under the branch line. Absent when the session has none. */
44
+ groups?: readonly string[];
43
45
  profile?: {
44
46
  name: string;
45
47
  /** Display name, falling back to the profile name. */
@@ -72,6 +74,12 @@ export interface WebTemplateRailDirectoryListing {
72
74
  export interface WebTemplateRailActions {
73
75
  openSession: (sessionId: string) => void;
74
76
  renameSession: (sessionId: string, name: string) => void;
77
+ /** Replaces the session's groups, live or dormant. The server trims, deduplicates, and rejects invalid names. */
78
+ setSessionGroups: (sessionId: string, groups: readonly string[]) => WebTemplateRailResult;
79
+ /** Renames a group on every session in it. */
80
+ renameGroup: (from: string, to: string) => WebTemplateRailResult;
81
+ /** Takes a group off every session in it. */
82
+ deleteGroup: (name: string) => WebTemplateRailResult;
75
83
  restartSession: (sessionId: string) => void;
76
84
  removeSession: (sessionId: string) => WebTemplateRailResult;
77
85
  /** Opens the session history request, rendered by the selected dashboard. */
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.mts","names":[],"sources":["../../../../src/web/types/template.ts"],"mappings":";;;iBAGiB;EACf;EACA;;;iBAIe;EACf;EACA;;EAEA;EACA;;EAEA;;;iBAIe;EACf;EACA;;EAEA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;;;;;EAKA;;EAEA;EACA;IAAQ;IAAgB;;EACxB;IACE;;IAEA;IACA;;IAEA;;EAEF,wBAAwB;;iBAGT;EACf;EACA;EACA;EACA;;EAEA;EACA,mBAAmB;;;YAIT,wBAAwB;EAAU;;iBAE7B;EACf;EACA;EACA;;;iBAIe;EACf,cAAc;EACd,gBAAgB,mBAAmB;EACnC,iBAAiB;EACjB,gBAAgB,sBAAsB;;EAEtC,gBAAgB;;EAEhB,gBAAgB;EAChB,oBAAoB;EACpB,wBAAwB;EACxB,kBAAkB,wBAAwB;EAC1C;EACA;;EAEA,eAAe;IAAS;IAAc;QAAoB;EAC1D,oBAAoB,kBAAkB;;EAEtC,gBAAgB,kBAAkB,QAAQ;IAAoC;;EAC9E,qBAAqB,mBAAmB,oBAAoB;EAC5D;EACA;EACA;;EAEA,yBAAyB,sBAAsB;;;iBAIhC;;EAEf,qBAAqB;EACrB;IAAU;IAA8C;IAAe;IAAqB;;;EAE5F,eAAe;;;;;EAKf;IAAiB;;;EAEjB,YAAY,YAAY;EACxB,SAAS;;;iBAIM;EACf;EACA;EACA;EACA;EACA,KAAK"}
1
+ {"version":3,"file":"template.d.mts","names":[],"sources":["../../../../src/web/types/template.ts"],"mappings":";;;iBAGiB;EACf;EACA;;;iBAIe;EACf;EACA;;EAEA;EACA;;EAEA;;;iBAIe;EACf;EACA;;EAEA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;;;;;EAKA;;EAEA;EACA;IAAQ;IAAgB;;;EAExB;EACA;IACE;;IAEA;IACA;;IAEA;;EAEF,wBAAwB;;iBAGT;EACf;EACA;EACA;EACA;;EAEA;EACA,mBAAmB;;;YAIT,wBAAwB;EAAU;;iBAE7B;EACf;EACA;EACA;;;iBAIe;EACf,cAAc;EACd,gBAAgB,mBAAmB;;EAEnC,mBAAmB,mBAAmB,8BAA8B;;EAEpE,cAAc,cAAc,eAAe;;EAE3C,cAAc,iBAAiB;EAC/B,iBAAiB;EACjB,gBAAgB,sBAAsB;;EAEtC,gBAAgB;;EAEhB,gBAAgB;EAChB,oBAAoB;EACpB,wBAAwB;EACxB,kBAAkB,wBAAwB;EAC1C;EACA;;EAEA,eAAe;IAAS;IAAc;QAAoB;EAC1D,oBAAoB,kBAAkB;;EAEtC,gBAAgB,kBAAkB,QAAQ;IAAoC;;EAC9E,qBAAqB,mBAAmB,oBAAoB;EAC5D;EACA;EACA;;EAEA,yBAAyB,sBAAsB;;;iBAIhC;;EAEf,qBAAqB;EACrB;IAAU;IAA8C;IAAe;IAAqB;;;EAE5F,eAAe;;;;;EAKf;IAAiB;;;EAEjB,YAAY,YAAY;EACxB,SAAS;;;iBAIM;EACf;EACA;EACA;EACA;EACA,KAAK"}