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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1149) hide show
  1. package/LICENSE +149 -21
  2. package/NOTICE +41 -0
  3. package/dist/agentModel.cjs +1 -1
  4. package/dist/agentModel.d.mts +2 -2
  5. package/dist/agentModel.mjs +1 -2
  6. package/dist/apiContracts.cjs +623 -802
  7. package/dist/apiContracts.cjs.map +1 -1
  8. package/dist/apiContracts.d.mts +277 -615
  9. package/dist/apiContracts.d.mts.map +1 -1
  10. package/dist/apiContracts.mjs +617 -794
  11. package/dist/apiContracts.mjs.map +1 -1
  12. package/dist/askUser.cjs +2 -2
  13. package/dist/askUser.d.mts +2 -2
  14. package/dist/askUser.mjs +1 -2
  15. package/dist/authorTools.mjs +1 -2
  16. package/dist/backgroundWork.cjs +3 -3
  17. package/dist/backgroundWork.d.mts +2 -2
  18. package/dist/backgroundWork.mjs +1 -2
  19. package/dist/bundleAssetPolicy.mjs +1 -2
  20. package/dist/chatgptAuth.cjs +3 -2
  21. package/dist/chatgptAuth.d.mts +3 -2
  22. package/dist/chatgptAuth.mjs +2 -1
  23. package/dist/childProcess.cjs +1 -1
  24. package/dist/childProcess.d.mts +2 -2
  25. package/dist/childProcess.mjs +1 -2
  26. package/dist/childSession.cjs +11 -6
  27. package/dist/childSession.d.mts +3 -3
  28. package/dist/childSession.mjs +3 -3
  29. package/dist/cockpitContainer.mjs +1 -2
  30. package/dist/config.cjs +1 -1
  31. package/dist/config.d.mts +3 -3
  32. package/dist/config.mjs +1 -2
  33. package/dist/contextApi.cjs +1 -0
  34. package/dist/contextApi.d.mts +2 -2
  35. package/dist/contextApi.mjs +2 -2
  36. package/dist/contextContributions.cjs +4 -4
  37. package/dist/contextContributions.d.mts +3 -3
  38. package/dist/contextContributions.mjs +3 -3
  39. package/dist/contextDetailStore.cjs +7 -5
  40. package/dist/contextDetailStore.cjs.map +1 -1
  41. package/dist/contextDetailStore.d.mts +2 -1
  42. package/dist/contextDetailStore.d.mts.map +1 -1
  43. package/dist/contextDetailStore.mjs +6 -4
  44. package/dist/contextDetailStore.mjs.map +1 -1
  45. package/dist/contextProjection.cjs +7 -2
  46. package/dist/contextProjection.cjs.map +1 -1
  47. package/dist/contextProjection.d.mts +4 -1
  48. package/dist/contextProjection.d.mts.map +1 -1
  49. package/dist/contextProjection.mjs +5 -2
  50. package/dist/contextProjection.mjs.map +1 -1
  51. package/dist/cordisHost.cjs +11 -11
  52. package/dist/cordisHost.d.mts +2 -2
  53. package/dist/cordisHost.mjs +1 -2
  54. package/dist/delegation.cjs +8 -8
  55. package/dist/delegation.d.mts +2 -2
  56. package/dist/delegation.mjs +1 -2
  57. package/dist/executionBudget.cjs +4 -3
  58. package/dist/executionBudget.cjs.map +1 -1
  59. package/dist/executionBudget.d.mts +2 -2
  60. package/dist/executionBudget.d.mts.map +1 -1
  61. package/dist/executionBudget.mjs +4 -3
  62. package/dist/executionBudget.mjs.map +1 -1
  63. package/dist/extensionFile.cjs +5 -0
  64. package/dist/extensionFile.d.mts +4 -2
  65. package/dist/extensionFile.mjs +4 -2
  66. package/dist/footer.d.mts +2 -2
  67. package/dist/footer.mjs +1 -2
  68. package/dist/headless.cjs +14 -14
  69. package/dist/headless.d.mts +2 -2
  70. package/dist/headless.mjs +1 -2
  71. package/dist/headlessHub.cjs +308 -109
  72. package/dist/headlessHub.cjs.map +1 -1
  73. package/dist/headlessHub.d.mts +71 -36
  74. package/dist/headlessHub.d.mts.map +1 -1
  75. package/dist/headlessHub.mjs +309 -110
  76. package/dist/headlessHub.mjs.map +1 -1
  77. package/dist/headlessProtocol.cjs +327 -0
  78. package/dist/headlessProtocol.cjs.map +1 -0
  79. package/dist/headlessProtocol.d.mts +30 -0
  80. package/dist/headlessProtocol.d.mts.map +1 -0
  81. package/dist/headlessProtocol.mjs +326 -0
  82. package/dist/headlessProtocol.mjs.map +1 -0
  83. package/dist/headlessServer.cjs +166 -151
  84. package/dist/headlessServer.cjs.map +1 -1
  85. package/dist/headlessServer.d.mts +13 -5
  86. package/dist/headlessServer.d.mts.map +1 -1
  87. package/dist/headlessServer.mjs +166 -151
  88. package/dist/headlessServer.mjs.map +1 -1
  89. package/dist/headlessSessionHost.d.mts +58 -21
  90. package/dist/headlessSessionHost.d.mts.map +1 -1
  91. package/dist/help.cjs +20 -20
  92. package/dist/help.d.mts +2 -2
  93. package/dist/help.mjs +2 -2
  94. package/dist/history.cjs +16 -20
  95. package/dist/history.d.mts +9 -7
  96. package/dist/history.mjs +6 -7
  97. package/dist/historyOwnership.cjs.map +1 -1
  98. package/dist/historyOwnership.d.mts +1 -1
  99. package/dist/historyOwnership.mjs.map +1 -1
  100. package/dist/hubChannel.cjs +9 -0
  101. package/dist/hubChannel.d.mts +3 -2
  102. package/dist/hubChannel.mjs +3 -2
  103. package/dist/index.cjs +26 -28
  104. package/dist/index.d.mts +6 -6
  105. package/dist/index.mjs +6 -6
  106. package/dist/interop/chord.mjs +1 -0
  107. package/dist/interop/chordContext.mjs +1 -0
  108. package/dist/json.cjs +11 -5
  109. package/dist/json.d.mts +4 -2
  110. package/dist/json.mjs +4 -2
  111. package/dist/kernel.cjs +1 -1
  112. package/dist/kernel.d.mts +3 -3
  113. package/dist/kernel.mjs +1 -2
  114. package/dist/leader.d.mts +2 -2
  115. package/dist/leader.mjs +1 -2
  116. package/dist/logSinkTelemetry.mjs +1 -2
  117. package/dist/machineApi.cjs +80 -74
  118. package/dist/machineApi.cjs.map +1 -1
  119. package/dist/machineApi.d.mts +5 -2
  120. package/dist/machineApi.d.mts.map +1 -1
  121. package/dist/machineApi.mjs +78 -71
  122. package/dist/machineApi.mjs.map +1 -1
  123. package/dist/main.cjs +2 -1
  124. package/dist/main.d.mts +2 -1
  125. package/dist/main.mjs +2 -1
  126. package/dist/mcpFacet.d.mts +3 -3
  127. package/dist/mcpProjection.cjs +13 -13
  128. package/dist/mcpProjection.d.mts +2 -2
  129. package/dist/mcpProjection.mjs +1 -2
  130. package/dist/mcpSchemaCost.cjs +4 -4
  131. package/dist/mcpSchemaCost.cjs.map +1 -1
  132. package/dist/mcpSchemaCost.d.mts +2 -2
  133. package/dist/mcpSchemaCost.mjs +4 -4
  134. package/dist/mcpSchemaCost.mjs.map +1 -1
  135. package/dist/mcpSession.cjs +7 -7
  136. package/dist/mcpSession.d.mts +2 -2
  137. package/dist/mcpSession.mjs +1 -2
  138. package/dist/mcpStatus.cjs +2 -2
  139. package/dist/mcpStatus.d.mts +2 -2
  140. package/dist/mcpStatus.mjs +1 -2
  141. package/dist/mcpToolResolver.cjs +3 -3
  142. package/dist/mcpToolResolver.d.mts +2 -2
  143. package/dist/mcpToolResolver.mjs +1 -2
  144. package/dist/mcpWidget.d.mts +2 -2
  145. package/dist/moduleResolution.cjs +43 -8
  146. package/dist/moduleResolution.cjs.map +1 -1
  147. package/dist/moduleResolution.d.mts +10 -1
  148. package/dist/moduleResolution.d.mts.map +1 -1
  149. package/dist/moduleResolution.mjs +40 -7
  150. package/dist/moduleResolution.mjs.map +1 -1
  151. package/dist/narration.cjs +3 -3
  152. package/dist/narration.d.mts +2 -2
  153. package/dist/narration.mjs +1 -2
  154. package/dist/native.cjs +9 -0
  155. package/dist/native.d.mts +4 -3
  156. package/dist/native.mjs +3 -2
  157. package/dist/nodePlatform.cjs +77 -0
  158. package/dist/nodePlatform.cjs.map +1 -0
  159. package/dist/nodePlatform.d.mts +17 -0
  160. package/dist/nodePlatform.d.mts.map +1 -0
  161. package/dist/nodePlatform.mjs +72 -0
  162. package/dist/nodePlatform.mjs.map +1 -0
  163. package/dist/notification.cjs +15 -15
  164. package/dist/notification.d.mts +2 -2
  165. package/dist/notification.mjs +1 -2
  166. package/dist/packageApi.cjs +11 -11
  167. package/dist/packageApi.d.mts +2 -2
  168. package/dist/packageApi.mjs +2 -2
  169. package/dist/packageApiServer.cjs +45 -27
  170. package/dist/packageApiServer.cjs.map +1 -1
  171. package/dist/packageApiServer.d.mts +36 -26
  172. package/dist/packageApiServer.d.mts.map +1 -1
  173. package/dist/packageApiServer.mjs +44 -26
  174. package/dist/packageApiServer.mjs.map +1 -1
  175. package/dist/piSettings.cjs +41 -20
  176. package/dist/piSettings.d.mts +4 -2
  177. package/dist/piSettings.mjs +4 -2
  178. package/dist/platform.cjs +62 -0
  179. package/dist/platform.d.mts +10 -0
  180. package/dist/platform.mjs +10 -0
  181. package/dist/pluginProtocol.cjs +7 -8
  182. package/dist/pluginProtocol.d.mts +2 -2
  183. package/dist/pluginProtocol.mjs +1 -2
  184. package/dist/poPackage.cjs +12 -0
  185. package/dist/poPackage.d.mts +3 -0
  186. package/dist/poPackage.mjs +3 -0
  187. package/dist/profileIdentity.cjs +1 -1
  188. package/dist/profileIdentity.d.mts +2 -2
  189. package/dist/profileIdentity.mjs +1 -2
  190. package/dist/protocol.cjs +3 -3
  191. package/dist/protocol.d.mts +2 -2
  192. package/dist/protocol.mjs +1 -2
  193. package/dist/readiness.cjs +6 -6
  194. package/dist/readiness.d.mts +2 -2
  195. package/dist/readiness.mjs +1 -2
  196. package/dist/remoteApi.cjs.map +1 -1
  197. package/dist/remoteApi.d.mts +2 -2
  198. package/dist/remoteApi.mjs.map +1 -1
  199. package/dist/remoteRuntime.cjs +42 -65
  200. package/dist/remoteRuntime.cjs.map +1 -1
  201. package/dist/remoteRuntime.d.mts +3 -2
  202. package/dist/remoteRuntime.d.mts.map +1 -1
  203. package/dist/remoteRuntime.mjs +41 -62
  204. package/dist/remoteRuntime.mjs.map +1 -1
  205. package/dist/runtimeConfig.cjs +4 -4
  206. package/dist/runtimeConfig.cjs.map +1 -1
  207. package/dist/runtimeConfig.d.mts +10 -9
  208. package/dist/runtimeConfig.d.mts.map +1 -1
  209. package/dist/runtimeConfig.mjs +4 -4
  210. package/dist/runtimeConfig.mjs.map +1 -1
  211. package/dist/runtimeContextApi.cjs +10 -3
  212. package/dist/runtimeContextApi.cjs.map +1 -1
  213. package/dist/runtimeContextApi.d.mts +3 -3
  214. package/dist/runtimeContextApi.d.mts.map +1 -1
  215. package/dist/runtimeContextApi.mjs +10 -3
  216. package/dist/runtimeContextApi.mjs.map +1 -1
  217. package/dist/runtimeCordisHost.cjs +46 -46
  218. package/dist/runtimeCordisHost.cjs.map +1 -1
  219. package/dist/runtimeCordisHost.d.mts +29 -28
  220. package/dist/runtimeCordisHost.d.mts.map +1 -1
  221. package/dist/runtimeCordisHost.mjs +42 -42
  222. package/dist/runtimeCordisHost.mjs.map +1 -1
  223. package/dist/runtimeIdentity.cjs +6 -9
  224. package/dist/runtimeIdentity.cjs.map +1 -1
  225. package/dist/runtimeIdentity.d.mts +5 -1
  226. package/dist/runtimeIdentity.d.mts.map +1 -1
  227. package/dist/runtimeIdentity.mjs +5 -8
  228. package/dist/runtimeIdentity.mjs.map +1 -1
  229. package/dist/runtimeJson.cjs +10 -45
  230. package/dist/runtimeJson.d.mts +3 -22
  231. package/dist/runtimeJson.mjs +3 -39
  232. package/dist/runtimeLogSinkTelemetry.cjs +19 -19
  233. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
  234. package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
  235. package/dist/runtimeLogSinkTelemetry.mjs +19 -19
  236. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
  237. package/dist/runtimePackages.cjs +7 -2
  238. package/dist/runtimePackages.cjs.map +1 -1
  239. package/dist/runtimePackages.d.mts +4 -1
  240. package/dist/runtimePackages.d.mts.map +1 -1
  241. package/dist/runtimePackages.mjs +7 -2
  242. package/dist/runtimePackages.mjs.map +1 -1
  243. package/dist/runtimePiSettings.cjs +40 -263
  244. package/dist/runtimePiSettings.d.mts +3 -72
  245. package/dist/runtimePiSettings.mjs +3 -241
  246. package/dist/runtimeProtocol.cjs +19 -19
  247. package/dist/runtimeProtocol.cjs.map +1 -1
  248. package/dist/runtimeProtocol.d.mts +7 -7
  249. package/dist/runtimeProtocol.d.mts.map +1 -1
  250. package/dist/runtimeProtocol.mjs +17 -17
  251. package/dist/runtimeProtocol.mjs.map +1 -1
  252. package/dist/runtimeTransition.cjs +9 -9
  253. package/dist/runtimeTransition.cjs.map +1 -1
  254. package/dist/runtimeTransition.d.mts +10 -10
  255. package/dist/runtimeTransition.d.mts.map +1 -1
  256. package/dist/runtimeTransition.mjs +7 -7
  257. package/dist/runtimeTransition.mjs.map +1 -1
  258. package/dist/sandboxHarness.mjs +1 -2
  259. package/dist/server.cjs +3 -7
  260. package/dist/server.d.mts +6 -6
  261. package/dist/server.mjs +3 -4
  262. package/dist/serverPlugin.cjs +39 -0
  263. package/dist/serverPlugin.d.mts +12 -0
  264. package/dist/serverPlugin.mjs +11 -0
  265. package/dist/serverTelemetry.cjs +1 -1
  266. package/dist/serverTelemetry.cjs.map +1 -1
  267. package/dist/serverTelemetry.d.mts +2 -2
  268. package/dist/serverTelemetry.mjs +2 -2
  269. package/dist/serverTelemetry.mjs.map +1 -1
  270. package/dist/sessionFilesApi.cjs +41 -37
  271. package/dist/sessionFilesApi.cjs.map +1 -1
  272. package/dist/sessionFilesApi.d.mts +6 -3
  273. package/dist/sessionFilesApi.d.mts.map +1 -1
  274. package/dist/sessionFilesApi.mjs +41 -36
  275. package/dist/sessionFilesApi.mjs.map +1 -1
  276. package/dist/sessionProtocol.cjs +31 -6
  277. package/dist/sessionProtocol.d.mts +8 -3
  278. package/dist/sessionProtocol.mjs +8 -2
  279. package/dist/skills.cjs +5 -5
  280. package/dist/skills.d.mts +2 -2
  281. package/dist/skills.mjs +1 -2
  282. package/dist/sqliteSessionStorage.cjs +28 -50
  283. package/dist/sqliteSessionStorage.cjs.map +1 -1
  284. package/dist/sqliteSessionStorage.d.mts +13 -20
  285. package/dist/sqliteSessionStorage.d.mts.map +1 -1
  286. package/dist/sqliteSessionStorage.mjs +25 -48
  287. package/dist/sqliteSessionStorage.mjs.map +1 -1
  288. package/dist/src/constants/agentSettled.cjs +7 -0
  289. package/dist/src/constants/agentSettled.cjs.map +1 -0
  290. package/dist/src/constants/agentSettled.mjs +7 -0
  291. package/dist/src/constants/agentSettled.mjs.map +1 -0
  292. package/dist/src/constants/contextApi.cjs +3 -1
  293. package/dist/src/constants/contextApi.cjs.map +1 -1
  294. package/dist/src/constants/contextApi.d.mts +2 -1
  295. package/dist/src/constants/contextApi.d.mts.map +1 -1
  296. package/dist/src/constants/contextApi.mjs +3 -2
  297. package/dist/src/constants/contextApi.mjs.map +1 -1
  298. package/dist/src/constants/voiceTools.cjs +6 -6
  299. package/dist/src/constants/voiceTools.cjs.map +1 -1
  300. package/dist/src/constants/voiceTools.d.mts +3 -3
  301. package/dist/src/constants/voiceTools.mjs +4 -4
  302. package/dist/src/constants/voiceTools.mjs.map +1 -1
  303. package/dist/src/extensions/extensionFile.cjs +22 -5
  304. package/dist/src/extensions/extensionFile.cjs.map +1 -1
  305. package/dist/src/extensions/extensionFile.d.mts +17 -4
  306. package/dist/src/extensions/extensionFile.d.mts.map +1 -1
  307. package/dist/src/extensions/extensionFile.mjs +22 -6
  308. package/dist/src/extensions/extensionFile.mjs.map +1 -1
  309. package/dist/src/extensions/serverPlugin.cjs +231 -92
  310. package/dist/src/extensions/serverPlugin.cjs.map +1 -1
  311. package/dist/src/extensions/serverPlugin.d.mts +2 -2
  312. package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
  313. package/dist/src/extensions/serverPlugin.mjs +232 -93
  314. package/dist/src/extensions/serverPlugin.mjs.map +1 -1
  315. package/dist/src/pi/piSessionRuntime.cjs +349 -142
  316. package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
  317. package/dist/src/pi/piSessionRuntime.d.mts +18 -17
  318. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
  319. package/dist/src/pi/piSessionRuntime.mjs +342 -135
  320. package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
  321. package/dist/src/schemas/agentModel.cjs +2 -2
  322. package/dist/src/schemas/agentModel.cjs.map +1 -1
  323. package/dist/src/schemas/agentModel.d.mts +1 -1
  324. package/dist/src/schemas/agentModel.mjs +2 -2
  325. package/dist/src/schemas/agentModel.mjs.map +1 -1
  326. package/dist/src/schemas/apiContracts.d.mts +2 -2
  327. package/dist/src/schemas/apiContracts.d.mts.map +1 -1
  328. package/dist/src/schemas/askUser.cjs +4 -4
  329. package/dist/src/schemas/askUser.cjs.map +1 -1
  330. package/dist/src/schemas/askUser.d.mts +4 -4
  331. package/dist/src/schemas/askUser.d.mts.map +1 -1
  332. package/dist/src/schemas/askUser.mjs +3 -3
  333. package/dist/src/schemas/askUser.mjs.map +1 -1
  334. package/dist/src/schemas/backgroundWork.cjs +10 -10
  335. package/dist/src/schemas/backgroundWork.cjs.map +1 -1
  336. package/dist/src/schemas/backgroundWork.d.mts +9 -9
  337. package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
  338. package/dist/src/schemas/backgroundWork.mjs +8 -8
  339. package/dist/src/schemas/backgroundWork.mjs.map +1 -1
  340. package/dist/src/schemas/childProcess.cjs +5 -5
  341. package/dist/src/schemas/childProcess.cjs.map +1 -1
  342. package/dist/src/schemas/childProcess.d.mts +2 -2
  343. package/dist/src/schemas/childProcess.mjs +5 -5
  344. package/dist/src/schemas/childProcess.mjs.map +1 -1
  345. package/dist/src/schemas/contextContributions.cjs +10 -10
  346. package/dist/src/schemas/contextContributions.cjs.map +1 -1
  347. package/dist/src/schemas/contextContributions.d.mts +16 -16
  348. package/dist/src/schemas/contextContributions.d.mts.map +1 -1
  349. package/dist/src/schemas/contextContributions.mjs +8 -8
  350. package/dist/src/schemas/contextContributions.mjs.map +1 -1
  351. package/dist/src/schemas/delegation.cjs +17 -17
  352. package/dist/src/schemas/delegation.cjs.map +1 -1
  353. package/dist/src/schemas/delegation.d.mts +16 -16
  354. package/dist/src/schemas/delegation.d.mts.map +1 -1
  355. package/dist/src/schemas/delegation.mjs +10 -10
  356. package/dist/src/schemas/delegation.mjs.map +1 -1
  357. package/dist/src/schemas/extensionFile.d.mts +23 -19
  358. package/dist/src/schemas/extensionFile.d.mts.map +1 -1
  359. package/dist/src/schemas/footer.cjs.map +1 -1
  360. package/dist/src/schemas/footer.d.mts +5 -5
  361. package/dist/src/schemas/footer.d.mts.map +1 -1
  362. package/dist/src/schemas/footer.mjs.map +1 -1
  363. package/dist/src/schemas/headless.cjs +37 -37
  364. package/dist/src/schemas/headless.cjs.map +1 -1
  365. package/dist/src/schemas/headless.d.mts +100 -101
  366. package/dist/src/schemas/headless.d.mts.map +1 -1
  367. package/dist/src/schemas/headless.mjs +24 -24
  368. package/dist/src/schemas/headless.mjs.map +1 -1
  369. package/dist/src/schemas/help.cjs +60 -60
  370. package/dist/src/schemas/help.cjs.map +1 -1
  371. package/dist/src/schemas/help.d.mts +43 -43
  372. package/dist/src/schemas/help.d.mts.map +1 -1
  373. package/dist/src/schemas/help.mjs +41 -41
  374. package/dist/src/schemas/help.mjs.map +1 -1
  375. package/dist/src/schemas/home.cjs +127 -0
  376. package/dist/src/schemas/home.cjs.map +1 -0
  377. package/dist/src/schemas/home.d.mts +63 -0
  378. package/dist/src/schemas/home.d.mts.map +1 -0
  379. package/dist/src/schemas/home.mjs +121 -0
  380. package/dist/src/schemas/home.mjs.map +1 -0
  381. package/dist/src/schemas/httpApiContracts.cjs +441 -0
  382. package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
  383. package/dist/src/schemas/httpApiContracts.d.mts +78 -0
  384. package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
  385. package/dist/src/schemas/httpApiContracts.mjs +434 -0
  386. package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
  387. package/dist/src/schemas/hubChannel.cjs +3 -0
  388. package/dist/src/schemas/hubChannel.cjs.map +1 -1
  389. package/dist/src/schemas/hubChannel.d.mts +84 -60
  390. package/dist/src/schemas/hubChannel.d.mts.map +1 -1
  391. package/dist/src/schemas/hubChannel.mjs +3 -1
  392. package/dist/src/schemas/hubChannel.mjs.map +1 -1
  393. package/dist/src/schemas/leader.cjs.map +1 -1
  394. package/dist/src/schemas/leader.d.mts +3 -3
  395. package/dist/src/schemas/leader.d.mts.map +1 -1
  396. package/dist/src/schemas/leader.mjs.map +1 -1
  397. package/dist/src/schemas/mcpBundle.d.mts +3 -3
  398. package/dist/src/schemas/mcpFacet.cjs.map +1 -1
  399. package/dist/src/schemas/mcpFacet.d.mts +22 -22
  400. package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
  401. package/dist/src/schemas/mcpFacet.mjs.map +1 -1
  402. package/dist/src/schemas/mcpProjection.cjs +41 -41
  403. package/dist/src/schemas/mcpProjection.cjs.map +1 -1
  404. package/dist/src/schemas/mcpProjection.d.mts +31 -30
  405. package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
  406. package/dist/src/schemas/mcpProjection.mjs +29 -29
  407. package/dist/src/schemas/mcpProjection.mjs.map +1 -1
  408. package/dist/src/schemas/mcpSession.cjs +23 -23
  409. package/dist/src/schemas/mcpSession.cjs.map +1 -1
  410. package/dist/src/schemas/mcpSession.d.mts +12 -12
  411. package/dist/src/schemas/mcpSession.d.mts.map +1 -1
  412. package/dist/src/schemas/mcpSession.mjs +18 -18
  413. package/dist/src/schemas/mcpSession.mjs.map +1 -1
  414. package/dist/src/schemas/mcpStatus.cjs +5 -5
  415. package/dist/src/schemas/mcpStatus.cjs.map +1 -1
  416. package/dist/src/schemas/mcpStatus.d.mts +4 -4
  417. package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
  418. package/dist/src/schemas/mcpStatus.mjs +4 -4
  419. package/dist/src/schemas/mcpStatus.mjs.map +1 -1
  420. package/dist/src/schemas/mcpToolResolver.cjs +9 -9
  421. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
  422. package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
  423. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
  424. package/dist/src/schemas/mcpToolResolver.mjs +7 -7
  425. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
  426. package/dist/src/schemas/narration.cjs +9 -9
  427. package/dist/src/schemas/narration.cjs.map +1 -1
  428. package/dist/src/schemas/narration.d.mts +5 -5
  429. package/dist/src/schemas/narration.d.mts.map +1 -1
  430. package/dist/src/schemas/narration.mjs +7 -7
  431. package/dist/src/schemas/narration.mjs.map +1 -1
  432. package/dist/src/schemas/notification.cjs +45 -45
  433. package/dist/src/schemas/notification.cjs.map +1 -1
  434. package/dist/src/schemas/notification.d.mts +22 -22
  435. package/dist/src/schemas/notification.d.mts.map +1 -1
  436. package/dist/src/schemas/notification.mjs +31 -31
  437. package/dist/src/schemas/notification.mjs.map +1 -1
  438. package/dist/src/schemas/packageApi.cjs +28 -28
  439. package/dist/src/schemas/packageApi.cjs.map +1 -1
  440. package/dist/src/schemas/packageApi.d.mts +91 -65
  441. package/dist/src/schemas/packageApi.d.mts.map +1 -1
  442. package/dist/src/schemas/packageApi.mjs +18 -18
  443. package/dist/src/schemas/packageApi.mjs.map +1 -1
  444. package/dist/src/schemas/platform.cjs +34 -0
  445. package/dist/src/schemas/platform.cjs.map +1 -0
  446. package/dist/src/schemas/platform.d.mts +75 -0
  447. package/dist/src/schemas/platform.d.mts.map +1 -0
  448. package/dist/src/schemas/platform.mjs +27 -0
  449. package/dist/src/schemas/platform.mjs.map +1 -0
  450. package/dist/src/schemas/pluginContributions.cjs.map +1 -1
  451. package/dist/src/schemas/pluginContributions.d.mts +12 -12
  452. package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
  453. package/dist/src/schemas/pluginContributions.mjs.map +1 -1
  454. package/dist/src/schemas/pluginProtocol.cjs +24 -27
  455. package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
  456. package/dist/src/schemas/pluginProtocol.d.mts +21 -21
  457. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
  458. package/dist/src/schemas/pluginProtocol.mjs +18 -20
  459. package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
  460. package/dist/src/schemas/profileIdentity.cjs +2 -2
  461. package/dist/src/schemas/profileIdentity.cjs.map +1 -1
  462. package/dist/src/schemas/profileIdentity.d.mts +1 -1
  463. package/dist/src/schemas/profileIdentity.mjs +2 -2
  464. package/dist/src/schemas/profileIdentity.mjs.map +1 -1
  465. package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
  466. package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
  467. package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
  468. package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
  469. package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
  470. package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
  471. package/dist/src/schemas/protocolContracts.cjs +168 -0
  472. package/dist/src/schemas/protocolContracts.cjs.map +1 -0
  473. package/dist/src/schemas/protocolContracts.d.mts +69 -0
  474. package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
  475. package/dist/src/schemas/protocolContracts.mjs +164 -0
  476. package/dist/src/schemas/protocolContracts.mjs.map +1 -0
  477. package/dist/src/schemas/protocolHubContract.cjs +51 -0
  478. package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
  479. package/dist/src/schemas/protocolHubContract.d.mts +218 -0
  480. package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
  481. package/dist/src/schemas/protocolHubContract.mjs +49 -0
  482. package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
  483. package/dist/src/schemas/protocolSessionContract.cjs +22 -0
  484. package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
  485. package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
  486. package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
  487. package/dist/src/schemas/protocolSessionContract.mjs +22 -0
  488. package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
  489. package/dist/src/schemas/protocolThreadContract.cjs +21 -0
  490. package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
  491. package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
  492. package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
  493. package/dist/src/schemas/protocolThreadContract.mjs +20 -0
  494. package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
  495. package/dist/src/schemas/readiness.cjs +36 -36
  496. package/dist/src/schemas/readiness.cjs.map +1 -1
  497. package/dist/src/schemas/readiness.d.mts +37 -37
  498. package/dist/src/schemas/readiness.d.mts.map +1 -1
  499. package/dist/src/schemas/readiness.mjs +31 -31
  500. package/dist/src/schemas/readiness.mjs.map +1 -1
  501. package/dist/src/schemas/serverBundle.d.mts +5 -5
  502. package/dist/src/schemas/serverPlugin.cjs +103 -0
  503. package/dist/src/schemas/serverPlugin.cjs.map +1 -0
  504. package/dist/src/schemas/serverPlugin.d.mts +176 -0
  505. package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
  506. package/dist/src/schemas/serverPlugin.mjs +95 -0
  507. package/dist/src/schemas/serverPlugin.mjs.map +1 -0
  508. package/dist/src/schemas/serverScope.cjs +37 -0
  509. package/dist/src/schemas/serverScope.cjs.map +1 -0
  510. package/dist/src/schemas/serverScope.d.mts +77 -0
  511. package/dist/src/schemas/serverScope.d.mts.map +1 -0
  512. package/dist/src/schemas/serverScope.mjs +33 -0
  513. package/dist/src/schemas/serverScope.mjs.map +1 -0
  514. package/dist/src/schemas/sessionApiContracts.cjs +320 -0
  515. package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
  516. package/dist/src/schemas/sessionApiContracts.mjs +318 -0
  517. package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
  518. package/dist/src/schemas/sessionProtocol.cjs +20 -13
  519. package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
  520. package/dist/src/schemas/sessionProtocol.d.mts +37 -54
  521. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
  522. package/dist/src/schemas/sessionProtocol.mjs +17 -8
  523. package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
  524. package/dist/src/schemas/skills.cjs +16 -16
  525. package/dist/src/schemas/skills.cjs.map +1 -1
  526. package/dist/src/schemas/skills.d.mts +7 -7
  527. package/dist/src/schemas/skills.d.mts.map +1 -1
  528. package/dist/src/schemas/skills.mjs +12 -12
  529. package/dist/src/schemas/skills.mjs.map +1 -1
  530. package/dist/src/schemas/toolOverrides.cjs +9 -9
  531. package/dist/src/schemas/toolOverrides.cjs.map +1 -1
  532. package/dist/src/schemas/toolOverrides.d.mts +8 -8
  533. package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
  534. package/dist/src/schemas/toolOverrides.mjs +7 -7
  535. package/dist/src/schemas/toolOverrides.mjs.map +1 -1
  536. package/dist/src/schemas/toolSurface.cjs +9 -9
  537. package/dist/src/schemas/toolSurface.cjs.map +1 -1
  538. package/dist/src/schemas/toolSurface.d.mts +13 -13
  539. package/dist/src/schemas/toolSurface.d.mts.map +1 -1
  540. package/dist/src/schemas/toolSurface.mjs +7 -7
  541. package/dist/src/schemas/toolSurface.mjs.map +1 -1
  542. package/dist/src/schemas/uiHub.cjs +9 -9
  543. package/dist/src/schemas/uiHub.cjs.map +1 -1
  544. package/dist/src/schemas/uiHub.d.mts +12 -12
  545. package/dist/src/schemas/uiHub.d.mts.map +1 -1
  546. package/dist/src/schemas/uiHub.mjs +7 -7
  547. package/dist/src/schemas/uiHub.mjs.map +1 -1
  548. package/dist/src/server/directHarnessRuntime.cjs +691 -775
  549. package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
  550. package/dist/src/server/directHarnessRuntime.d.mts +5 -1
  551. package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
  552. package/dist/src/server/directHarnessRuntime.mjs +671 -754
  553. package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
  554. package/dist/src/server/largeFrameLink.cjs +47 -0
  555. package/dist/src/server/largeFrameLink.cjs.map +1 -0
  556. package/dist/src/server/largeFrameLink.mjs +47 -0
  557. package/dist/src/server/largeFrameLink.mjs.map +1 -0
  558. package/dist/src/server/liveImport.cjs +1 -1
  559. package/dist/src/server/liveImport.cjs.map +1 -1
  560. package/dist/src/server/liveImport.d.mts +1 -1
  561. package/dist/src/server/liveImport.mjs +1 -1
  562. package/dist/src/server/liveImport.mjs.map +1 -1
  563. package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
  564. package/dist/src/server/mcpBundleLoader.d.mts +6 -6
  565. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
  566. package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
  567. package/dist/src/server/serverPackages.cjs +60 -0
  568. package/dist/src/server/serverPackages.cjs.map +1 -0
  569. package/dist/src/server/serverPackages.d.mts +44 -0
  570. package/dist/src/server/serverPackages.d.mts.map +1 -0
  571. package/dist/src/server/serverPackages.mjs +59 -0
  572. package/dist/src/server/serverPackages.mjs.map +1 -0
  573. package/dist/src/server/serverScope.cjs +510 -0
  574. package/dist/src/server/serverScope.cjs.map +1 -0
  575. package/dist/src/server/serverScope.d.mts +123 -0
  576. package/dist/src/server/serverScope.d.mts.map +1 -0
  577. package/dist/src/server/serverScope.mjs +510 -0
  578. package/dist/src/server/serverScope.mjs.map +1 -0
  579. package/dist/src/server/sessionMcpHandler.cjs +3 -3
  580. package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
  581. package/dist/src/server/sessionMcpHandler.mjs +4 -4
  582. package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
  583. package/dist/src/server/sessionMcpRoutes.cjs +2 -1
  584. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
  585. package/dist/src/server/sessionMcpRoutes.mjs +2 -1
  586. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
  587. package/dist/src/server/threadJournals.cjs +38 -107
  588. package/dist/src/server/threadJournals.cjs.map +1 -1
  589. package/dist/src/server/threadJournals.mjs +38 -104
  590. package/dist/src/server/threadJournals.mjs.map +1 -1
  591. package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
  592. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
  593. package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
  594. package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
  595. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
  596. package/dist/src/services/chatgptAuth/index.cjs +1 -220
  597. package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
  598. package/dist/src/services/chatgptAuth/index.d.mts +0 -18
  599. package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
  600. package/dist/src/services/chatgptAuth/index.mjs +1 -217
  601. package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
  602. package/dist/src/services/chatgptImages/index.cjs +1 -1
  603. package/dist/src/services/chatgptImages/index.cjs.map +1 -1
  604. package/dist/src/services/chatgptImages/index.mjs +1 -1
  605. package/dist/src/services/chatgptImages/index.mjs.map +1 -1
  606. package/dist/src/services/chatgptLogin/index.cjs +230 -0
  607. package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
  608. package/dist/src/services/chatgptLogin/index.d.mts +21 -0
  609. package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
  610. package/dist/src/services/chatgptLogin/index.mjs +227 -0
  611. package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
  612. package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
  613. package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
  614. package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
  615. package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
  616. package/dist/src/services/contextContributions/index.cjs +8 -8
  617. package/dist/src/services/contextContributions/index.cjs.map +1 -1
  618. package/dist/src/services/contextContributions/index.d.mts +3 -3
  619. package/dist/src/services/contextContributions/index.d.mts.map +1 -1
  620. package/dist/src/services/contextContributions/index.mjs +8 -8
  621. package/dist/src/services/contextContributions/index.mjs.map +1 -1
  622. package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
  623. package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
  624. package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
  625. package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
  626. package/dist/src/services/devProxyStore/index.cjs +7 -101
  627. package/dist/src/services/devProxyStore/index.cjs.map +1 -1
  628. package/dist/src/services/devProxyStore/index.mjs +7 -101
  629. package/dist/src/services/devProxyStore/index.mjs.map +1 -1
  630. package/dist/src/services/devProxyStore/sync.cjs +66 -0
  631. package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
  632. package/dist/src/services/devProxyStore/sync.mjs +63 -0
  633. package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
  634. package/dist/src/services/durableNavigation/docs.cjs +15 -0
  635. package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
  636. package/dist/src/services/durableNavigation/docs.mjs +16 -0
  637. package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
  638. package/dist/src/services/durableNavigation/index.cjs +3 -18
  639. package/dist/src/services/durableNavigation/index.cjs.map +1 -1
  640. package/dist/src/services/durableNavigation/index.mjs +2 -17
  641. package/dist/src/services/durableNavigation/index.mjs.map +1 -1
  642. package/dist/src/services/durableQueue/docs.cjs +12 -0
  643. package/dist/src/services/durableQueue/docs.cjs.map +1 -0
  644. package/dist/src/services/durableQueue/docs.mjs +13 -0
  645. package/dist/src/services/durableQueue/docs.mjs.map +1 -0
  646. package/dist/src/services/durableQueue/index.cjs +151 -0
  647. package/dist/src/services/durableQueue/index.cjs.map +1 -0
  648. package/dist/src/services/durableQueue/index.mjs +149 -0
  649. package/dist/src/services/durableQueue/index.mjs.map +1 -0
  650. package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
  651. package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
  652. package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
  653. package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
  654. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
  655. package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
  656. package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
  657. package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
  658. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
  659. package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
  660. package/dist/src/services/durableSession/docs.cjs +65 -0
  661. package/dist/src/services/durableSession/docs.cjs.map +1 -0
  662. package/dist/src/services/durableSession/docs.d.mts +17 -0
  663. package/dist/src/services/durableSession/docs.d.mts.map +1 -0
  664. package/dist/src/services/durableSession/docs.mjs +60 -0
  665. package/dist/src/services/durableSession/docs.mjs.map +1 -0
  666. package/dist/src/services/durableSession/index.cjs +21 -0
  667. package/dist/src/services/durableSession/index.cjs.map +1 -0
  668. package/dist/src/services/durableSession/index.d.mts +13 -0
  669. package/dist/src/services/durableSession/index.d.mts.map +1 -0
  670. package/dist/src/services/durableSession/index.mjs +20 -0
  671. package/dist/src/services/durableSession/index.mjs.map +1 -0
  672. package/dist/src/services/durableSubagents/docs.cjs +15 -0
  673. package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
  674. package/dist/src/services/durableSubagents/docs.mjs +16 -0
  675. package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
  676. package/dist/src/services/durableSubagents/extension.cjs +11 -0
  677. package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
  678. package/dist/src/services/durableSubagents/extension.mjs +12 -0
  679. package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
  680. package/dist/src/services/durableSubagents/index.cjs +95 -0
  681. package/dist/src/services/durableSubagents/index.cjs.map +1 -0
  682. package/dist/src/services/durableSubagents/index.mjs +90 -0
  683. package/dist/src/services/durableSubagents/index.mjs.map +1 -0
  684. package/dist/src/services/durableSubagents/tasks.cjs +25 -0
  685. package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
  686. package/dist/src/services/durableSubagents/tasks.mjs +26 -0
  687. package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
  688. package/dist/src/services/headlessClient/index.cjs +20 -13
  689. package/dist/src/services/headlessClient/index.cjs.map +1 -1
  690. package/dist/src/services/headlessClient/index.mjs +21 -14
  691. package/dist/src/services/headlessClient/index.mjs.map +1 -1
  692. package/dist/src/services/historyOwnership/type.d.mts +15 -0
  693. package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
  694. package/dist/src/services/hubChannelHarness/index.cjs +2 -2
  695. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
  696. package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
  697. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
  698. package/dist/src/services/hubChannelHarness/index.mjs +2 -2
  699. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
  700. package/dist/src/services/json/core.cjs +30 -0
  701. package/dist/src/services/json/core.cjs.map +1 -0
  702. package/dist/src/services/json/core.d.mts +21 -0
  703. package/dist/src/services/json/core.d.mts.map +1 -0
  704. package/dist/src/services/json/core.mjs +26 -0
  705. package/dist/src/services/json/core.mjs.map +1 -0
  706. package/dist/src/services/json/sync.cjs +48 -0
  707. package/dist/src/services/json/sync.cjs.map +1 -0
  708. package/dist/src/services/json/sync.d.mts +22 -0
  709. package/dist/src/services/json/sync.d.mts.map +1 -0
  710. package/dist/src/services/json/sync.mjs +43 -0
  711. package/dist/src/services/json/sync.mjs.map +1 -0
  712. package/dist/src/services/kernel/index.cjs +2 -2
  713. package/dist/src/services/kernel/index.cjs.map +1 -1
  714. package/dist/src/services/kernel/index.d.mts +3 -3
  715. package/dist/src/services/kernel/index.d.mts.map +1 -1
  716. package/dist/src/services/kernel/index.mjs +2 -2
  717. package/dist/src/services/kernel/index.mjs.map +1 -1
  718. package/dist/src/services/nativeChildTools/index.cjs +16 -0
  719. package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
  720. package/dist/src/services/nativeChildTools/index.mjs +16 -0
  721. package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
  722. package/dist/src/services/nodeHost/index.cjs +30 -0
  723. package/dist/src/services/nodeHost/index.cjs.map +1 -0
  724. package/dist/src/services/nodeHost/index.d.mts +16 -0
  725. package/dist/src/services/nodeHost/index.d.mts.map +1 -0
  726. package/dist/src/services/nodeHost/index.mjs +27 -0
  727. package/dist/src/services/nodeHost/index.mjs.map +1 -0
  728. package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
  729. package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
  730. package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
  731. package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
  732. package/dist/src/services/openSessionRegistry/index.cjs +6 -128
  733. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
  734. package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
  735. package/dist/src/services/openSessionRegistry/index.mjs +6 -128
  736. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
  737. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
  738. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
  739. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
  740. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
  741. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
  742. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
  743. package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
  744. package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
  745. package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
  746. package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
  747. package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
  748. package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
  749. package/dist/src/services/packageApiHarness/index.cjs +1 -1
  750. package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
  751. package/dist/src/services/packageApiHarness/index.d.mts +6 -6
  752. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
  753. package/dist/src/services/packageApiHarness/index.mjs +2 -2
  754. package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
  755. package/dist/src/services/piArgs/index.cjs +53 -0
  756. package/dist/src/services/piArgs/index.cjs.map +1 -0
  757. package/dist/src/services/piArgs/index.d.mts +6 -0
  758. package/dist/src/services/piArgs/index.d.mts.map +1 -0
  759. package/dist/src/services/piArgs/index.mjs +53 -0
  760. package/dist/src/services/piArgs/index.mjs.map +1 -0
  761. package/dist/src/services/piExtensionHost/index.cjs +47 -39
  762. package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
  763. package/dist/src/services/piExtensionHost/index.d.mts +83 -0
  764. package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
  765. package/dist/src/services/piExtensionHost/index.mjs +47 -38
  766. package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
  767. package/dist/src/services/piHelpTools/index.cjs +5 -5
  768. package/dist/src/services/piHelpTools/index.cjs.map +1 -1
  769. package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
  770. package/dist/src/services/piHelpTools/index.mjs +7 -7
  771. package/dist/src/services/piHelpTools/index.mjs.map +1 -1
  772. package/dist/src/services/piMessages/index.cjs +106 -0
  773. package/dist/src/services/piMessages/index.cjs.map +1 -0
  774. package/dist/src/services/piMessages/index.mjs +105 -0
  775. package/dist/src/services/piMessages/index.mjs.map +1 -0
  776. package/dist/src/services/piSessionEntries/index.cjs +4 -4
  777. package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
  778. package/dist/src/services/piSessionEntries/index.mjs +3 -3
  779. package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
  780. package/dist/src/services/piSettings/core.cjs +308 -0
  781. package/dist/src/services/piSettings/core.cjs.map +1 -0
  782. package/dist/src/services/piSettings/core.d.mts +102 -0
  783. package/dist/src/services/piSettings/core.d.mts.map +1 -0
  784. package/dist/src/services/piSettings/core.mjs +276 -0
  785. package/dist/src/services/piSettings/core.mjs.map +1 -0
  786. package/dist/src/services/piSettings/sync.cjs +119 -0
  787. package/dist/src/services/piSettings/sync.cjs.map +1 -0
  788. package/dist/src/services/piSettings/sync.d.mts +44 -0
  789. package/dist/src/services/piSettings/sync.d.mts.map +1 -0
  790. package/dist/src/services/piSettings/sync.mjs +110 -0
  791. package/dist/src/services/piSettings/sync.mjs.map +1 -0
  792. package/dist/src/services/piSummary/index.cjs +7 -0
  793. package/dist/src/services/piSummary/index.cjs.map +1 -0
  794. package/dist/src/services/piSummary/index.mjs +7 -0
  795. package/dist/src/services/piSummary/index.mjs.map +1 -0
  796. package/dist/src/services/platformFiles/index.cjs +44 -0
  797. package/dist/src/services/platformFiles/index.cjs.map +1 -0
  798. package/dist/src/services/platformFiles/index.d.mts +16 -0
  799. package/dist/src/services/platformFiles/index.d.mts.map +1 -0
  800. package/dist/src/services/platformFiles/index.mjs +39 -0
  801. package/dist/src/services/platformFiles/index.mjs.map +1 -0
  802. package/dist/src/services/pluginLifecycle/index.cjs +19 -13
  803. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
  804. package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
  805. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
  806. package/dist/src/services/pluginLifecycle/index.mjs +19 -14
  807. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
  808. package/dist/src/services/poPackage/core.cjs +73 -0
  809. package/dist/src/services/poPackage/core.cjs.map +1 -0
  810. package/dist/src/services/poPackage/core.d.mts +32 -0
  811. package/dist/src/services/poPackage/core.d.mts.map +1 -0
  812. package/dist/src/services/poPackage/core.mjs +66 -0
  813. package/dist/src/services/poPackage/core.mjs.map +1 -0
  814. package/dist/src/services/poPackage/sync.cjs +55 -0
  815. package/dist/src/services/poPackage/sync.cjs.map +1 -0
  816. package/dist/src/services/poPackage/sync.d.mts +21 -0
  817. package/dist/src/services/poPackage/sync.d.mts.map +1 -0
  818. package/dist/src/services/poPackage/sync.mjs +50 -0
  819. package/dist/src/services/poPackage/sync.mjs.map +1 -0
  820. package/dist/src/services/providerAuth/index.cjs +11 -7
  821. package/dist/src/services/providerAuth/index.cjs.map +1 -1
  822. package/dist/src/services/providerAuth/index.mjs +11 -7
  823. package/dist/src/services/providerAuth/index.mjs.map +1 -1
  824. package/dist/src/services/publicFileShares/index.cjs +1 -1
  825. package/dist/src/services/publicFileShares/index.cjs.map +1 -1
  826. package/dist/src/services/publicFileShares/index.d.mts +2 -2
  827. package/dist/src/services/publicFileShares/index.mjs +2 -2
  828. package/dist/src/services/publicFileShares/index.mjs.map +1 -1
  829. package/dist/src/services/remoteAccess/index.d.mts +1 -0
  830. package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
  831. package/dist/src/services/remoteAccessStore/index.cjs +8 -190
  832. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
  833. package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
  834. package/dist/src/services/remoteAccessStore/index.mjs +7 -187
  835. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
  836. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
  837. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
  839. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
  841. package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
  843. package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
  844. package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
  845. package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
  846. package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
  847. package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
  848. package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
  849. package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
  850. package/dist/src/services/serialRunner/index.cjs +25 -0
  851. package/dist/src/services/serialRunner/index.cjs.map +1 -0
  852. package/dist/src/services/serialRunner/index.d.mts +10 -0
  853. package/dist/src/services/serialRunner/index.d.mts.map +1 -0
  854. package/dist/src/services/serialRunner/index.mjs +25 -0
  855. package/dist/src/services/serialRunner/index.mjs.map +1 -0
  856. package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
  857. package/dist/src/services/serverHost/index.cjs.map +1 -0
  858. package/dist/src/services/serverHost/index.d.mts +31 -0
  859. package/dist/src/services/serverHost/index.d.mts.map +1 -0
  860. package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
  861. package/dist/src/services/serverHost/index.mjs.map +1 -0
  862. package/dist/src/services/sessionAttachments/index.cjs +4 -3
  863. package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
  864. package/dist/src/services/sessionAttachments/index.d.mts +1 -6
  865. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
  866. package/dist/src/services/sessionAttachments/index.mjs +3 -2
  867. package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
  868. package/dist/src/services/sessionAttachments/type.d.mts +9 -0
  869. package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
  870. package/dist/src/services/sessionFiles/index.cjs +96 -0
  871. package/dist/src/services/sessionFiles/index.cjs.map +1 -0
  872. package/dist/src/services/sessionFiles/index.d.mts +33 -0
  873. package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
  874. package/dist/src/services/sessionFiles/index.mjs +89 -0
  875. package/dist/src/services/sessionFiles/index.mjs.map +1 -0
  876. package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
  877. package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
  878. package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
  879. package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
  880. package/dist/src/services/sessionGitStatus/index.cjs +31 -33
  881. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
  882. package/dist/src/services/sessionGitStatus/index.mjs +31 -33
  883. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
  884. package/dist/src/services/sessionPresentation/index.cjs +3 -27
  885. package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
  886. package/dist/src/services/sessionPresentation/index.mjs +3 -27
  887. package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
  888. package/dist/src/services/skillPrompt/index.cjs +11 -0
  889. package/dist/src/services/skillPrompt/index.cjs.map +1 -0
  890. package/dist/src/services/skillPrompt/index.mjs +11 -0
  891. package/dist/src/services/skillPrompt/index.mjs.map +1 -0
  892. package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
  893. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
  894. package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
  895. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
  896. package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
  897. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
  898. package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
  899. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
  900. package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
  901. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
  902. package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
  903. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
  904. package/dist/src/services/testMode/index.cjs +162 -0
  905. package/dist/src/services/testMode/index.cjs.map +1 -0
  906. package/dist/src/services/testMode/index.d.mts +17 -0
  907. package/dist/src/services/testMode/index.d.mts.map +1 -0
  908. package/dist/src/services/testMode/index.mjs +155 -0
  909. package/dist/src/services/testMode/index.mjs.map +1 -0
  910. package/dist/src/services/toolOverrides/index.cjs +6 -6
  911. package/dist/src/services/toolOverrides/index.cjs.map +1 -1
  912. package/dist/src/services/toolOverrides/index.d.mts +3 -3
  913. package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
  914. package/dist/src/services/toolOverrides/index.mjs +6 -6
  915. package/dist/src/services/toolOverrides/index.mjs.map +1 -1
  916. package/dist/src/services/toolPrompt/index.d.mts +17 -0
  917. package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
  918. package/dist/src/services/toolSurface/index.cjs +3 -3
  919. package/dist/src/services/toolSurface/index.cjs.map +1 -1
  920. package/dist/src/services/toolSurface/index.d.mts +3 -3
  921. package/dist/src/services/toolSurface/index.d.mts.map +1 -1
  922. package/dist/src/services/toolSurface/index.mjs +4 -4
  923. package/dist/src/services/toolSurface/index.mjs.map +1 -1
  924. package/dist/src/services/traceContext/index.cjs.map +1 -1
  925. package/dist/src/services/traceContext/index.mjs.map +1 -1
  926. package/dist/src/services/transcriptPages/index.cjs +159 -33
  927. package/dist/src/services/transcriptPages/index.cjs.map +1 -1
  928. package/dist/src/services/transcriptPages/index.mjs +158 -34
  929. package/dist/src/services/transcriptPages/index.mjs.map +1 -1
  930. package/dist/src/services/voiceToolsContract/index.cjs +7 -7
  931. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
  932. package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
  933. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
  934. package/dist/src/services/voiceToolsContract/index.mjs +7 -7
  935. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
  936. package/dist/src/services/workspaceRegistry/index.cjs +9 -179
  937. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
  938. package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
  939. package/dist/src/services/workspaceRegistry/index.mjs +7 -176
  940. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
  941. package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
  942. package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
  943. package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
  944. package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
  945. package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
  946. package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
  947. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
  948. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
  949. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
  950. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
  951. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
  952. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
  953. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
  954. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
  955. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
  956. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
  957. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
  958. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
  959. package/dist/src/systems/child/services/childSession/index.cjs +94 -20
  960. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
  961. package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
  962. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
  963. package/dist/src/systems/child/services/childSession/index.mjs +94 -20
  964. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
  965. package/dist/src/systems/child/types/childSession.cjs +33 -13
  966. package/dist/src/systems/child/types/childSession.cjs.map +1 -1
  967. package/dist/src/systems/child/types/childSession.d.mts +143 -80
  968. package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
  969. package/dist/src/systems/child/types/childSession.mjs +24 -9
  970. package/dist/src/systems/child/types/childSession.mjs.map +1 -1
  971. package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
  972. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
  973. package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
  974. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
  975. package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
  976. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
  977. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
  978. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
  979. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
  980. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
  981. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
  982. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
  983. package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
  984. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
  985. package/dist/src/testing/pi/testHost.cjs +2 -2
  986. package/dist/src/testing/pi/testHost.cjs.map +1 -1
  987. package/dist/src/testing/pi/testHost.d.mts +3 -2
  988. package/dist/src/testing/pi/testHost.mjs +3 -3
  989. package/dist/src/testing/pi/testHost.mjs.map +1 -1
  990. package/dist/src/types/config.d.mts +1 -1
  991. package/dist/src/types/config.d.mts.map +1 -1
  992. package/dist/src/types/kernel.d.mts +3 -3
  993. package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
  994. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
  995. package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
  996. package/dist/src/web/services/apiClient/index.d.mts +1 -0
  997. package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
  998. package/dist/src/web/services/apiPaths/index.d.mts +1 -1
  999. package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
  1000. package/dist/src/web/services/mcpWidget.cjs.map +1 -1
  1001. package/dist/src/web/services/mcpWidget.d.mts +2 -2
  1002. package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
  1003. package/dist/src/web/services/mcpWidget.mjs.map +1 -1
  1004. package/dist/src/web/services/testing/templateRail.cjs +3 -0
  1005. package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
  1006. package/dist/src/web/services/testing/templateRail.mjs +3 -0
  1007. package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
  1008. package/dist/src/web/types/mcpWidget.d.mts +1 -1
  1009. package/dist/src/web/types/nativeTemplate.d.mts +1 -1
  1010. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
  1011. package/dist/src/web/types/template.d.mts +8 -0
  1012. package/dist/src/web/types/template.d.mts.map +1 -1
  1013. package/dist/src/web/types/webPlugin.d.mts +17 -5
  1014. package/dist/src/web/types/webPlugin.d.mts.map +1 -1
  1015. package/dist/testMode.cjs +4 -0
  1016. package/dist/testMode.d.mts +2 -0
  1017. package/dist/testMode.mjs +1 -0
  1018. package/dist/testing.cjs +1 -1
  1019. package/dist/testing.d.mts +2 -2
  1020. package/dist/testing.mjs +2 -2
  1021. package/dist/toolInventory.cjs.map +1 -1
  1022. package/dist/toolInventory.mjs.map +1 -1
  1023. package/dist/toolNames.mjs +1 -2
  1024. package/dist/toolOverrides.cjs +4 -4
  1025. package/dist/toolOverrides.d.mts +3 -3
  1026. package/dist/toolOverrides.mjs +3 -3
  1027. package/dist/toolSurface.cjs +4 -4
  1028. package/dist/toolSurface.d.mts +3 -3
  1029. package/dist/toolSurface.mjs +3 -3
  1030. package/dist/transition.cjs +3 -3
  1031. package/dist/transition.d.cjs +3 -3
  1032. package/dist/transition.d.mts +2 -2
  1033. package/dist/transition.mjs +1 -2
  1034. package/dist/transitionClassifier.cjs.map +1 -1
  1035. package/dist/transitionClassifier.d.mts +2 -2
  1036. package/dist/transitionClassifier.d.mts.map +1 -1
  1037. package/dist/transitionClassifier.mjs.map +1 -1
  1038. package/dist/transitionCoordinator.cjs +3 -3
  1039. package/dist/transitionCoordinator.cjs.map +1 -1
  1040. package/dist/transitionCoordinator.d.mts +4 -4
  1041. package/dist/transitionCoordinator.d.mts.map +1 -1
  1042. package/dist/transitionCoordinator.mjs +3 -3
  1043. package/dist/transitionCoordinator.mjs.map +1 -1
  1044. package/dist/typesContextApi.d.mts +2 -1
  1045. package/dist/typesContextApi.d.mts.map +1 -1
  1046. package/dist/uiHub.cjs +3 -3
  1047. package/dist/uiHub.d.mts +2 -2
  1048. package/dist/uiHub.mjs +1 -2
  1049. package/dist/voiceTools.cjs +5 -5
  1050. package/dist/voiceTools.d.mts +3 -3
  1051. package/dist/voiceTools.mjs +3 -3
  1052. package/dist/web.cjs +8 -0
  1053. package/dist/web.d.mts +3 -2
  1054. package/dist/web.mjs +2 -1
  1055. package/dist/webCompositions.cjs.map +1 -1
  1056. package/dist/webCompositions.d.mts +7 -7
  1057. package/dist/webCompositions.d.mts.map +1 -1
  1058. package/dist/webCompositions.mjs.map +1 -1
  1059. package/licenses/Codex-Apache-2.0.txt +201 -0
  1060. package/package.json +58 -53
  1061. package/dist/doomPackage.cjs +0 -61
  1062. package/dist/doomPackage.cjs.map +0 -1
  1063. package/dist/doomPackage.d.mts +0 -17
  1064. package/dist/doomPackage.d.mts.map +0 -1
  1065. package/dist/doomPackage.mjs +0 -54
  1066. package/dist/doomPackage.mjs.map +0 -1
  1067. package/dist/jsonlSessionRepo.cjs +0 -44
  1068. package/dist/jsonlSessionRepo.cjs.map +0 -1
  1069. package/dist/jsonlSessionRepo.d.mts +0 -7
  1070. package/dist/jsonlSessionRepo.d.mts.map +0 -1
  1071. package/dist/jsonlSessionRepo.mjs +0 -42
  1072. package/dist/jsonlSessionRepo.mjs.map +0 -1
  1073. package/dist/runtimeJson.cjs.map +0 -1
  1074. package/dist/runtimeJson.d.mts.map +0 -1
  1075. package/dist/runtimeJson.mjs.map +0 -1
  1076. package/dist/runtimePiSettings.cjs.map +0 -1
  1077. package/dist/runtimePiSettings.d.mts.map +0 -1
  1078. package/dist/runtimePiSettings.mjs.map +0 -1
  1079. package/dist/serverFacet.cjs +0 -34
  1080. package/dist/serverFacet.d.mts +0 -10
  1081. package/dist/serverFacet.mjs +0 -9
  1082. package/dist/src/pi/piWebSocketListener.cjs +0 -115
  1083. package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
  1084. package/dist/src/pi/piWebSocketListener.mjs +0 -115
  1085. package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
  1086. package/dist/src/schemas/serverFacet.cjs +0 -111
  1087. package/dist/src/schemas/serverFacet.cjs.map +0 -1
  1088. package/dist/src/schemas/serverFacet.d.mts +0 -152
  1089. package/dist/src/schemas/serverFacet.d.mts.map +0 -1
  1090. package/dist/src/schemas/serverFacet.mjs +0 -101
  1091. package/dist/src/schemas/serverFacet.mjs.map +0 -1
  1092. package/dist/src/schemas/sessionUpdates.d.mts +0 -34
  1093. package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
  1094. package/dist/src/server/headlessProtocol.cjs +0 -382
  1095. package/dist/src/server/headlessProtocol.cjs.map +0 -1
  1096. package/dist/src/server/headlessProtocol.mjs +0 -382
  1097. package/dist/src/server/headlessProtocol.mjs.map +0 -1
  1098. package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
  1099. package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
  1100. package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
  1101. package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
  1102. package/dist/src/server/serverFacetLoader.cjs +0 -214
  1103. package/dist/src/server/serverFacetLoader.cjs.map +0 -1
  1104. package/dist/src/server/serverFacetLoader.d.mts +0 -72
  1105. package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
  1106. package/dist/src/server/serverFacetLoader.mjs +0 -212
  1107. package/dist/src/server/serverFacetLoader.mjs.map +0 -1
  1108. package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
  1109. package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
  1110. package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
  1111. package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
  1112. package/dist/src/services/historyImport/index.cjs +0 -8
  1113. package/dist/src/services/historyImport/index.cjs.map +0 -1
  1114. package/dist/src/services/historyImport/index.d.mts +0 -68
  1115. package/dist/src/services/historyImport/index.d.mts.map +0 -1
  1116. package/dist/src/services/historyImport/index.mjs +0 -8
  1117. package/dist/src/services/historyImport/index.mjs.map +0 -1
  1118. package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
  1119. package/dist/src/services/requestReceipts/index.cjs.map +0 -1
  1120. package/dist/src/services/requestReceipts/index.d.mts +0 -11
  1121. package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
  1122. package/dist/src/services/requestReceipts/index.mjs.map +0 -1
  1123. package/dist/src/services/rpcTranscript/index.cjs +0 -633
  1124. package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
  1125. package/dist/src/services/rpcTranscript/index.d.mts +0 -50
  1126. package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
  1127. package/dist/src/services/rpcTranscript/index.mjs +0 -632
  1128. package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
  1129. package/dist/src/services/serverFacet/index.cjs.map +0 -1
  1130. package/dist/src/services/serverFacet/index.d.mts +0 -31
  1131. package/dist/src/services/serverFacet/index.d.mts.map +0 -1
  1132. package/dist/src/services/serverFacet/index.mjs.map +0 -1
  1133. package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
  1134. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
  1135. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
  1136. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
  1137. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
  1138. package/dist/terminalPiChildSessionService.cjs +0 -324
  1139. package/dist/terminalPiChildSessionService.cjs.map +0 -1
  1140. package/dist/terminalPiChildSessionService.d.mts +0 -46
  1141. package/dist/terminalPiChildSessionService.d.mts.map +0 -1
  1142. package/dist/terminalPiChildSessionService.mjs +0 -318
  1143. package/dist/terminalPiChildSessionService.mjs.map +0 -1
  1144. package/dist/v3Export.cjs +0 -10
  1145. package/dist/v3Export.cjs.map +0 -1
  1146. package/dist/v3Export.d.mts +0 -35
  1147. package/dist/v3Export.d.mts.map +0 -1
  1148. package/dist/v3Export.mjs +0 -9
  1149. package/dist/v3Export.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"apiContracts.cjs","names":["Type","Check","Text","Type","Optional","Strings","Flag","NumberValue","Json","Text","Type","NumberValue","Optional","Flag","defineService","Type","Json","Type","defineService","Type","PROTOCOL_VERSION","PROTOCOL_VERSION"],"sources":["../src/schemas/apiContracts.ts","../src/services/apiContracts/index.ts","../src/constants/contextApi.ts","../src/schemas/httpApiContracts.ts","../src/schemas/remoteApiContracts.ts","../src/schemas/sessionProtocol.ts","../src/schemas/sessionApiContracts.ts","../src/schemas/pluginProtocol.ts","../src/schemas/transportApiContracts.ts","../src/schemas/builtinApiContracts.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\nimport { Check } from 'typebox/value';\n\nimport type { DoomApiScope } from './packageApi';\nimport type { DoomServerBundleOwner } from './serverBundle';\n\nexport const DOOM_API_CONTRACT_VERSION = 1;\nexport const DOOM_API_CONTRACT_FILE = 'contracts.json';\nconst Schema = Type.Unsafe<object | boolean>(Type.Union([Type.Boolean(), Type.Record(Type.String(), Type.Unknown())]));\nconst Scope = Type.Union([Type.Literal('global'), Type.Literal('workspace'), Type.Literal('session')]);\nconst Named = Type.String({ minLength: 1 });\nconst ResponseSchema = Type.Object({\n description: Named,\n contentType: Type.Optional(Named),\n schema: Type.Optional(Schema),\n events: Type.Optional(Type.Record(Named, Schema)),\n});\n\n/** Data-only package entry. Schemas use JSON Schema draft-07, including TypeBox output; OpenAPI export translates tuple keywords. */\nexport const DoomApiContractSchema = Type.Object({\n version: Type.Literal(DOOM_API_CONTRACT_VERSION),\n protocols: Type.Optional(Type.Record(Named, Named)),\n schemas: Type.Optional(Type.Record(Named, Schema)),\n http: Type.Array(\n Type.Object({\n id: Named,\n scope: Scope,\n /** Omit for host-owned absolute routes. */\n basePath: Type.Optional(Type.String({ pattern: '^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$' })),\n path: Type.String({ pattern: '^/' }),\n method: Type.Union([\n Type.Literal('GET'),\n Type.Literal('POST'),\n Type.Literal('PUT'),\n Type.Literal('PATCH'),\n Type.Literal('DELETE'),\n Type.Literal('HEAD'),\n Type.Literal('OPTIONS'),\n ]),\n description: Named,\n availability: Type.Optional(Named),\n authentication: Type.Union([Type.Literal('none'), Type.Literal('owner'), Type.Literal('device')]),\n parameters: Type.Optional(\n Type.Array(\n Type.Object({\n name: Named,\n in: Type.Union([Type.Literal('path'), Type.Literal('query'), Type.Literal('header')]),\n required: Type.Boolean(),\n schema: Schema,\n }),\n ),\n ),\n body: Type.Optional(\n Type.Object({\n contentType: Named,\n contentTypes: Type.Optional(Type.Array(Named, { minItems: 1 })),\n required: Type.Boolean(),\n schema: Schema,\n }),\n ),\n responses: Type.Record(Type.String({ pattern: '^(?:[1-5][0-9]{2}|default)$' }), ResponseSchema, {\n minProperties: 1,\n }),\n }),\n ),\n sockets: Type.Array(\n Type.Object({\n id: Named,\n scope: Scope,\n description: Named,\n availability: Type.Optional(Named),\n service: Named,\n member: Named,\n direction: Type.Union([Type.Literal('client-to-server'), Type.Literal('server-to-client')]),\n kind: Type.Union([Type.Literal('method'), Type.Literal('state'), Type.Literal('channel')]),\n input: Schema,\n output: Type.Optional(Schema),\n errors: Type.Optional(Schema),\n }),\n ),\n /** Explicitly enumerate dynamic values whose shape is supplied at runtime. */\n dynamic: Type.Array(Type.String({ minLength: 1 })),\n gaps: Type.Optional(Type.Array(Named)),\n});\n\nexport type DoomApiContract = Static<typeof DoomApiContractSchema>;\nexport type DoomHttpContract = DoomApiContract['http'][number];\nexport type DoomSocketContract = DoomApiContract['sockets'][number];\n\nexport function defineApiContract(contract: DoomApiContract): DoomApiContract {\n return contract;\n}\n\nexport function parseApiContract(value: unknown): DoomApiContract {\n if (!Check(DoomApiContractSchema, value)) throw new Error('Invalid Po API contract');\n const contract = value as DoomApiContract;\n const ids = new Set<string>();\n for (const entry of [...contract.http, ...contract.sockets]) {\n const key = `${entry.scope}:${entry.id}`;\n if (ids.has(key)) throw new Error(`Duplicate API contract operation: ${key}`);\n ids.add(key);\n }\n // Reject non-JSON data rather than silently losing it during export.\n const visit = (item: unknown, ancestors: Set<object>): void => {\n if (item === null || typeof item === 'string' || typeof item === 'boolean') return;\n if (typeof item === 'number' && Number.isFinite(item)) return;\n if (typeof item !== 'object' || ancestors.has(item)) throw new Error('API contracts must contain finite JSON data');\n ancestors.add(item);\n for (const child of Object.values(item)) visit(child, ancestors);\n ancestors.delete(item);\n };\n visit(contract, new Set());\n return contract;\n}\n\nexport interface DoomPackageContract {\n packageName: string;\n packageVersion: string;\n scopes: readonly DoomApiScope[];\n owners: readonly DoomServerBundleOwner[];\n contract?: DoomApiContract;\n problem?: string;\n /** Generation-relative compiler output, never imported by the export command. */\n module?: string;\n}\n\nexport interface DoomCompiledContracts {\n version: typeof DOOM_API_CONTRACT_VERSION;\n generation: string;\n fingerprint: string;\n packages: DoomPackageContract[];\n}\n\nexport function parseCompiledContracts(value: unknown): DoomCompiledContracts {\n const PackageSchema = Type.Object({\n packageName: Named,\n packageVersion: Named,\n scopes: Type.Array(Scope, { uniqueItems: true }),\n owners: Type.Array(Type.Object({ majorMode: Named, layer: Named }), { minItems: 1 }),\n contract: Type.Optional(DoomApiContractSchema),\n problem: Type.Optional(Named),\n module: Type.Optional(Type.String({ pattern: '^\\\\./[^\\\\\\\\%?#]+$' })),\n });\n const CompiledSchema = Type.Object({\n version: Type.Literal(DOOM_API_CONTRACT_VERSION),\n generation: Named,\n fingerprint: Type.String({ pattern: '^[a-f0-9]{64}$' }),\n packages: Type.Array(PackageSchema),\n });\n if (!Check(CompiledSchema, value)) throw new Error('Invalid compiled API contracts');\n const data = value as DoomCompiledContracts;\n const names = new Set<string>();\n for (const entry of data.packages) {\n if (names.has(entry.packageName) || entry.module?.split('/').includes('..'))\n throw new Error('Invalid compiled package contract');\n names.add(entry.packageName);\n if (entry.contract !== undefined) parseApiContract(entry.contract);\n }\n return data;\n}\n","import { parseApiContract, type DoomCompiledContracts } from '../../schemas/apiContracts';\nimport type { DoomApiScope } from '../../schemas/packageApi';\n\nexport interface ApiContractSelection {\n scope: DoomApiScope;\n majorMode: string;\n activeLayers: readonly string[];\n compiled: DoomCompiledContracts;\n}\n\nexport interface ApiDocuments {\n openapi: Record<string, unknown>;\n asyncapi: Record<string, unknown>;\n manifest: {\n version: 1;\n complete: boolean;\n protocols: Record<string, string>;\n selections: {\n scope: DoomApiScope;\n majorMode: string;\n activeLayers: string[];\n generation: string;\n fingerprint: string;\n }[];\n packages: { name: string; version: string; scope: DoomApiScope }[];\n gaps: { packageName: string; scope: DoomApiScope; reason: string }[];\n dynamic: string[];\n };\n}\n\n/** Stable bytes for diffs and hashes, independent of object insertion order. */\nexport function canonicalContractJson(value: unknown): string {\n const ordered = (item: unknown): unknown => {\n if (Array.isArray(item)) return item.map(ordered);\n if (item !== null && typeof item === 'object')\n return Object.fromEntries(\n Object.entries(item)\n .sort(([a], [b]) => a.localeCompare(b, 'en'))\n .map(([key, child]) => [key, ordered(child)]),\n );\n return item;\n };\n return `${JSON.stringify(ordered(value), null, 2)}\\n`;\n}\n\nconst componentName = (value: string): string =>\n value.replace(/[^a-zA-Z0-9.-]/gu, (character) => `_${character.codePointAt(0)!.toString(16)}_`);\nconst pluginPrefix = (scope: DoomApiScope): string =>\n scope === 'global'\n ? '/api/plugins'\n : scope === 'workspace'\n ? '/api/workspaces/{workspaceId}/plugins'\n : '/api/workspaces/{workspaceId}/sessions/{sessionId}/plugins';\n\n/** Compose declarations only. No handlers, lifecycle hooks, or platform resources are loaded. */\nexport function createApiDocuments(selections: readonly ApiContractSelection[]): ApiDocuments {\n const paths: Record<string, Record<string, unknown>> = {};\n const schemas: Record<string, unknown> = {};\n const messages: Record<string, unknown> = {};\n const operations: Record<string, unknown> = {};\n const channelMessages: Record<string, Record<string, unknown>> = { global: {}, workspace: {}, session: {} };\n const manifest: ApiDocuments['manifest'] = {\n version: 1,\n complete: true,\n protocols: {},\n selections: [],\n packages: [],\n gaps: [],\n dynamic: [],\n };\n const socketAddresses = new Set<string>();\n const schema = (id: string, value: unknown): { $ref: string } => {\n const name = componentName(id);\n if (schemas[name] !== undefined) throw new Error(`Conflicting schema: ${id}`);\n // Local $defs references must remain local after moving into components.\n const relocate = (child: unknown): unknown => {\n if (Array.isArray(child)) return child.map(relocate);\n if (child === null || typeof child !== 'object') return child;\n return Object.fromEntries(\n Object.entries(child).map(([key, entry]) => {\n if (key === '$id') throw new Error(`Schema ${id} must use local references, not $id`);\n if (key === '$ref' && typeof entry === 'string') {\n if (!entry.startsWith('#/')) throw new Error(`Unresolved schema reference in ${id}: ${entry}`);\n return [key, `#/components/schemas/${name}${entry.slice(1)}`];\n }\n return [key, relocate(entry)];\n }),\n );\n };\n schemas[name] = relocate(value);\n return { $ref: `#/components/schemas/${name}` };\n };\n for (const selected of [...selections].sort((a, b) => a.scope.localeCompare(b.scope))) {\n manifest.selections.push({\n scope: selected.scope,\n majorMode: selected.majorMode,\n activeLayers: [...selected.activeLayers].sort(),\n generation: selected.compiled.generation,\n fingerprint: selected.compiled.fingerprint,\n });\n for (const entry of [...selected.compiled.packages].sort((a, b) => a.packageName.localeCompare(b.packageName))) {\n if (\n !entry.scopes.includes(selected.scope) ||\n !entry.owners.some(\n (owner) =>\n owner.majorMode === selected.majorMode &&\n (owner.layer === 'default' || selected.activeLayers.includes(owner.layer)),\n )\n )\n continue;\n manifest.packages.push({ name: entry.packageName, version: entry.packageVersion, scope: selected.scope });\n if (!entry.contract || entry.problem) {\n manifest.gaps.push({\n packageName: entry.packageName,\n scope: selected.scope,\n reason: entry.problem ?? 'No contract declaration',\n });\n continue;\n }\n const contract = parseApiContract(entry.contract);\n for (const [name, value] of Object.entries(contract.schemas ?? {}))\n schema(`${entry.packageName}.${selected.scope}.${name}`, value);\n for (const [name, version] of Object.entries(contract.protocols ?? {})) {\n if (manifest.protocols[name] !== undefined && manifest.protocols[name] !== version)\n throw new Error(`Conflicting ${name} protocol versions`);\n manifest.protocols[name] = version;\n }\n manifest.gaps.push(\n ...(contract.gaps ?? []).map((reason) => ({ packageName: entry.packageName, scope: selected.scope, reason })),\n );\n manifest.dynamic.push(...contract.dynamic.map((value) => `${entry.packageName}: ${value}`));\n for (const route of contract.http.filter((route) => route.scope === selected.scope)) {\n const id = `${entry.packageName}.${route.scope}.${route.id}`;\n const mount =\n route.basePath === undefined\n ? ''\n : route.basePath === 'settings'\n ? `${route.scope === 'global' ? '/api' : '/api/workspaces/{workspaceId}'}/settings`\n : `${pluginPrefix(route.scope)}/${route.basePath}`;\n const pathname = `${mount}${route.path === '/' ? '' : route.path}`;\n const method = route.method.toLowerCase();\n const path = (paths[pathname] ??= {});\n if (path[method]) throw new Error(`Conflicting HTTP contract: ${route.method} ${pathname}`);\n const parameters = (route.parameters ?? []).map((parameter) => ({\n ...parameter,\n schema: schema(`${id}.${parameter.in}.${parameter.name}`, parameter.schema),\n }));\n for (const match of pathname.matchAll(/\\{([^}]+)\\}/gu)) {\n if (!parameters.some((parameter) => parameter.in === 'path' && parameter.name === match[1]))\n parameters.push({\n name: match[1],\n in: 'path',\n required: true,\n schema: schema(`${id}.path.${match[1]}`, { type: 'string', minLength: 1 }),\n });\n }\n path[method] = {\n operationId: componentName(id),\n description: route.description,\n parameters,\n security: route.authentication === 'none' ? [] : [{ [route.authentication]: [] }],\n 'x-po': {\n packageName: entry.packageName,\n scope: route.scope,\n ...(route.availability ? { availability: route.availability } : {}),\n },\n ...(route.body\n ? {\n requestBody: {\n required: route.body.required,\n content: Object.fromEntries(\n (route.body.contentTypes ?? [route.body.contentType]).map((mediaType) => [\n mediaType,\n { schema: schema(`${id}.body.${mediaType}`, route.body!.schema) },\n ]),\n ),\n },\n }\n : {}),\n responses: Object.fromEntries(\n Object.entries(route.responses).map(([status, response]) => [\n status,\n {\n description: response.description,\n ...(response.events\n ? {\n 'x-sse-events': Object.fromEntries(\n Object.entries(response.events).map(([name, payload]) => [\n name,\n schema(`${id}.event.${name}`, payload),\n ]),\n ),\n }\n : {}),\n ...(response.schema === undefined\n ? {}\n : {\n content: {\n [response.contentType ?? 'application/json']: {\n schema: schema(`${id}.response.${status}`, response.schema),\n },\n },\n }),\n },\n ]),\n ),\n };\n }\n for (const socket of contract.sockets.filter((socket) => socket.scope === selected.scope)) {\n const address = `${socket.scope}:${socket.direction}:${socket.kind}:${socket.service}:${socket.member}`;\n if (socketAddresses.has(address)) throw new Error(`Conflicting socket contract: ${address}`);\n socketAddresses.add(address);\n for (const channel of socket.scope === 'global' ? ['global'] : [socket.scope, 'global']) {\n const id = componentName(\n `${entry.packageName}.${socket.scope}.${socket.id}${channel === socket.scope ? '' : '.aggregate'}`,\n );\n const addMessage = (suffix: string, payload: unknown): string => {\n const name = `${id}.${suffix}`;\n messages[name] = { name, payload: schema(name, payload) };\n channelMessages[channel][name] = { $ref: `#/components/messages/${name}` };\n return `#/channels/${channel}/messages/${name}`;\n };\n const request = addMessage('input', socket.input);\n const replies = socket.output === undefined ? [] : [{ $ref: addMessage('output', socket.output) }];\n if (socket.errors !== undefined) replies.push({ $ref: addMessage('error', socket.errors) });\n operations[id] = {\n action: socket.direction === 'client-to-server' ? 'receive' : 'send',\n channel: { $ref: `#/channels/${channel}` },\n messages: [{ $ref: request }],\n description: socket.description,\n ...(replies.length ? { reply: { channel: { $ref: `#/channels/${channel}` }, messages: replies } } : {}),\n 'x-po': {\n service: socket.service,\n member: socket.member,\n scope: socket.scope,\n kind: socket.kind,\n transportScope: channel,\n ...(socket.availability ? { availability: socket.availability } : {}),\n },\n };\n }\n }\n }\n }\n manifest.complete = manifest.gaps.length === 0;\n manifest.dynamic = [...new Set(manifest.dynamic)].sort();\n const info = { title: 'Po compiled client API', version: '1' };\n const openapi = {\n openapi: '3.1.1',\n info,\n paths,\n components: {\n schemas: openApiSchemas(schemas),\n securitySchemes: {\n owner: { type: 'apiKey', in: 'header', name: 'x-po-token' },\n device: {\n type: 'apiKey',\n in: 'cookie',\n name: '__Host-po_device',\n description:\n 'Admitted device credentials and purpose-bound sealed channel; see remote authentication operations.',\n },\n },\n },\n };\n const asyncapi = {\n asyncapi: '3.0.0',\n info,\n channels: Object.fromEntries(\n Object.entries(channelMessages).map(([scope, messages]) => [\n scope,\n {\n address:\n scope === 'global'\n ? '/api/ws'\n : scope === 'workspace'\n ? '/api/workspaces/{workspaceId}/ws'\n : '/api/workspaces/{workspaceId}/sessions/{sessionId}/ws',\n ...(scope === 'global'\n ? {}\n : {\n parameters: {\n workspaceId: { description: 'Admitted workspace identity.' },\n ...(scope === 'session' ? { sessionId: { description: 'Session owned by this workspace.' } } : {}),\n },\n }),\n messages,\n description:\n 'Decoded Pi/Chord values over framed CBOR. The global hub socket aggregates all scopes; workspace and session sockets restrict session access and package calls to their addressed scope. Remote paired-device sockets seal the same bytes.',\n },\n ]),\n ),\n operations,\n components: { schemas: asyncApiSchemas(schemas), messages },\n };\n // References must resolve in each portable document before either is published.\n for (const document of [openapi, asyncapi]) {\n const visit = (value: unknown): void => {\n if (value === null || typeof value !== 'object') return;\n for (const [key, child] of Object.entries(value)) {\n if (key === '$ref' && typeof child === 'string') {\n let target: unknown = document;\n for (const segment of child.slice(2).split('/')) {\n if (target === null || typeof target !== 'object') throw new Error(`Unresolved API reference: ${child}`);\n target = Reflect.get(target, segment.replace(/~1/gu, '/').replace(/~0/gu, '~'));\n }\n if (target === undefined) throw new Error(`Unresolved API reference: ${child}`);\n } else visit(child);\n }\n };\n visit(document);\n }\n return { openapi, asyncapi, manifest };\n}\n\n/** TypeBox uses draft-07 tuple keywords; OpenAPI 3.1 evaluates the 2020-12 vocabulary. */\nfunction openApiSchemas(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(openApiSchemas);\n if (value === null || typeof value !== 'object') return value;\n const source = value as Record<string, unknown>;\n const result: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(source)) {\n if (key === 'items' && Array.isArray(child)) {\n if (child.length) result.prefixItems = child.map(openApiSchemas);\n else {\n result.items = false;\n result.maxItems = 0;\n }\n } else if (key === 'additionalItems' && Array.isArray(source.items)) result.items = openApiSchemas(child);\n else if (key === 'dependencies' && child !== null && typeof child === 'object') {\n const required: Record<string, unknown> = {};\n const schemas: Record<string, unknown> = {};\n for (const [name, dependency] of Object.entries(child)) {\n if (Array.isArray(dependency)) required[name] = dependency;\n else schemas[name] = openApiSchemas(dependency);\n }\n if (Object.keys(required).length) result.dependentRequired = required;\n if (Object.keys(schemas).length) result.dependentSchemas = schemas;\n } else if (key === '$schema') result.$schema = 'https://json-schema.org/draft/2020-12/schema';\n else result[key] = openApiSchemas(child);\n }\n return result;\n}\n\nfunction asyncApiSchemas(schemas: Record<string, unknown>): Record<string, unknown> {\n const convert = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(convert);\n if (value === null || typeof value !== 'object') return value;\n const result: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(value)) {\n if (key === '$ref' && typeof child === 'string') {\n result[key] = child.replace(/^(#\\/components\\/schemas\\/[^/]+)(.*)$/u, '$1/schema$2');\n } else if (key === 'items' && Array.isArray(child) && child.length === 0) {\n result.items = false;\n result.maxItems = 0;\n } else result[key] = convert(child);\n }\n return result;\n };\n return Object.fromEntries(\n Object.entries(schemas).map(([name, schema]) => [\n name,\n {\n schemaFormat: 'application/schema+json;version=draft-07',\n schema: convert(schema),\n },\n ]),\n );\n}\n","/**\n * What one entry in the composition actually is, for a reader who clicked it.\n *\n * The projection prices the composition and stops there: names, owners, and\n * integer counts, small enough to republish whenever the composition changes.\n * The prose and the schema behind a figure are an order of magnitude larger and\n * are wanted one row at a time, so they travel on request instead. This module\n * is the contract both ends of that request share, and it is deliberately free\n * of Node imports so a browser can hold it too.\n */\n\n/** Where a host mounts this package's API; the segment after /api/plugins/. */\nexport const API_BASE_PATH = 'context';\n\n/** The session a proxied request belongs to; the hub strips it before forwarding. */\nexport const SESSION_QUERY_PARAM = 'session';\n\nexport const ITEM_ROUTE = '/item';\n\nexport const NAME_QUERY_PARAM = 'name';\n\nexport const KIND_QUERY_PARAM = 'kind';\n\nexport const CONTEXT_DETAIL_VERSION = 1;\n\n/** Plugin-agnostic status payload: a JSON map keyed by registered tool name. */\nexport const CONTEXT_TOOL_WARNINGS_STATUS_KEY = 'doom-context-tool-warnings';\n","import { Type, type TSchema } from 'typebox';\n\nimport { API_BASE_PATH, ITEM_ROUTE } from '../constants/contextApi';\nimport type { DoomHttpContract } from './apiContracts';\n\nconst Text = Type.String();\nconst Optional = Type.Optional;\nconst Strings = Type.Array(Text);\nconst Flag = Type.Boolean();\nconst NumberValue = Type.Number();\nexport const ApiErrorSchema = Type.Object({ error: Text, hash: Optional(Text) });\nexport const ApiOkSchema = Type.Object({ ok: Type.Literal(true) });\nconst Json = Type.Unknown({ description: 'Value whose schema is supplied by the selected runtime contribution.' });\n\n/** Common JSON response construction; status and payload remain explicit at the declaration. */\nexport function jsonApiResponses(schema: object | boolean, status = 200): DoomHttpContract['responses'] {\n return {\n [status]: { description: 'Successful response', contentType: 'application/json', schema },\n '400': { description: 'Invalid request', schema: ApiErrorSchema },\n '401': { description: 'Authentication required', schema: ApiErrorSchema },\n '403': { description: 'Request is not authorized', schema: ApiErrorSchema },\n '404': { description: 'Resource or capability unavailable', schema: ApiErrorSchema },\n '409': { description: 'Conflicting state', schema: ApiErrorSchema },\n '422': { description: 'Invalid operation', schema: ApiErrorSchema },\n '500': { description: 'Host operation failed', schema: ApiErrorSchema },\n '502': { description: 'Provider failed', schema: ApiErrorSchema },\n '503': { description: 'Service unavailable', schema: ApiErrorSchema },\n };\n}\nexport const WebCompositionSchema = Type.Object({\n id: Text,\n scope: Type.Union([Type.Literal('global'), Type.Literal('workspace'), Type.Literal('session')]),\n revision: NumberValue,\n manifestUrl: Text,\n rawAssetBaseUrl: Text,\n verifiedAssetBaseUrl: Text,\n pluginEntries: Type.Array(Type.Tuple([Text, Text])),\n assetPaths: Strings,\n stylePaths: Strings,\n channels: Strings,\n});\nexport const NativeCompositionSchema = Type.Object({\n id: Text,\n scope: Type.Union([Type.Literal('global'), Type.Literal('workspace'), Type.Literal('session')]),\n revision: NumberValue,\n manifestUrl: Text,\n rawAssetBaseUrl: Text,\n entryPath: Text,\n channels: Strings,\n plugins: Strings,\n});\n/** A configured template id and the mount whose compositions offer it. */\nconst TemplateDecisionSchema = Type.Object({\n id: Optional(Text),\n mount: Type.Union([\n Type.Object({ scope: Type.Literal('global') }),\n Type.Object({ scope: Type.Literal('workspace'), workspaceId: Text }),\n ]),\n});\nexport const SessionSummarySchema = Type.Object({\n id: Text,\n workspaceId: Optional(Text),\n webComposition: Optional(WebCompositionSchema),\n nativeComposition: Optional(NativeCompositionSchema),\n name: Text,\n cwd: Text,\n createdAt: Text,\n updatedAt: Text,\n phase: Type.Union([Type.Literal('idle'), Type.Literal('turn'), Type.Literal('compaction'), Type.Literal('retry')]),\n phaseSince: Text,\n attach: Type.Literal('attached'),\n pendingMessageCount: NumberValue,\n everPrompted: Flag,\n awaitingInput: Flag,\n lastSettledAt: Optional(Text),\n git: Optional(Type.Object({ branch: Text, dirty: Flag })),\n profile: Optional(Type.Object({ name: Text, displayName: Optional(Text), iconVersion: Optional(Text) })),\n parentSessionId: Optional(Text),\n sessionProvenance: Optional(Text),\n /** The line the session's extension published about background work it runs. */\n activity: Optional(Type.Object({ label: Text, attention: Optional(Flag), since: Optional(Text) })),\n pendingSetups: Optional(\n Type.Array(\n Type.Object({\n id: Text,\n name: Text,\n createdAt: Text,\n cwd: Optional(Text),\n setupKind: Optional(Type.Union([Type.Literal('managed-worktree'), Type.Literal('existing-directory')])),\n status: Optional(\n Type.Union([Type.Literal('provisioning'), Type.Literal('failed'), Type.Literal('interrupted')]),\n ),\n errorCode: Optional(\n Type.Union([Type.Literal('SESSION_WORKTREE_PROVISION_FAILED'), Type.Literal('SESSION_UNAVAILABLE')]),\n ),\n }),\n ),\n ),\n /** Present and true for a recorded session the server has not reopened yet. */\n dormant: Optional(Flag),\n});\nexport const HubSnapshotFrameSchema = Type.Object({\n type: Type.Literal('sessions_snapshot'),\n sessions: Type.Array(SessionSummarySchema),\n});\nexport const HubUpsertFrameSchema = Type.Object({\n type: Type.Literal('session_upsert'),\n session: SessionSummarySchema,\n});\nexport const HubRemovedFrameSchema = Type.Object({ type: Type.Literal('session_removed'), sessionId: Text });\nconst Workspace = Type.Object({ id: Text, root: Text, name: Optional(Text), available: Optional(Flag) });\nexport const WorkspaceSnapshotFrameSchema = Type.Object({\n type: Type.Literal('workspaces_snapshot'),\n workspaces: Type.Array(Workspace),\n});\nexport const WorkspaceUpsertFrameSchema = Type.Object({\n type: Type.Literal('workspace_upsert'),\n workspace: Workspace,\n});\nexport const WorkspaceRemovedFrameSchema = Type.Object({\n type: Type.Literal('workspace_removed'),\n workspaceId: Text,\n});\nconst SavedSession = Type.Object({\n id: Text,\n name: Optional(Text),\n firstMessage: Text,\n createdAt: Text,\n updatedAt: Text,\n messageCount: NumberValue,\n});\nconst query = (\n name: string,\n schema: TSchema = Text,\n required = false,\n): NonNullable<DoomHttpContract['parameters']>[number] => ({ name, in: 'query', required, schema });\nconst body = (schema: TSchema): NonNullable<DoomHttpContract['body']> => ({\n contentType: 'application/json',\n required: true,\n schema,\n});\nconst host = (\n id: string,\n path: string,\n method: DoomHttpContract['method'],\n result: TSchema,\n extra: Partial<DoomHttpContract> = {},\n): DoomHttpContract => ({\n id,\n path,\n method,\n scope: 'global',\n authentication: 'owner',\n description: id,\n responses: jsonApiResponses(result),\n ...extra,\n});\nconst Binary = Type.String({ contentEncoding: 'binary' });\nexport const headlessHttpContracts: DoomHttpContract[] = [\n host(\n 'health',\n '/api/health',\n 'GET',\n Type.Object({\n ok: Type.Literal(true),\n role: Type.Literal('hub'),\n protocol: Type.Literal(1),\n sessions: NumberValue,\n }),\n { authentication: 'none' },\n ),\n host('telemetry.browser', '/api/telemetry/browser', 'POST', ApiOkSchema, {\n body: body(\n Type.Object({\n v: Type.Literal(1),\n events: Type.Array(\n Type.Object({\n name: Type.String({ pattern: '^web\\\\.browser\\\\.[a-z_]{1,40}$' }),\n duration_ms: Optional(NumberValue),\n count: Optional(NumberValue),\n }),\n { maxItems: 10 },\n ),\n }),\n ),\n }),\n host(\n 'compositions',\n '/api/compositions',\n 'GET',\n Type.Object({\n global: Optional(WebCompositionSchema),\n nativeGlobal: Optional(NativeCompositionSchema),\n publicKey: Optional(Text),\n shell: Optional(Type.Object({ publicKey: Text, revision: NumberValue })),\n template: Optional(TemplateDecisionSchema),\n /** The phone app's `native.template` choice, resolved the same way. */\n nativeTemplate: Optional(TemplateDecisionSchema),\n workspaces: Type.Array(\n Type.Object({\n id: Text,\n root: Text,\n webComposition: Optional(WebCompositionSchema),\n nativeComposition: Optional(NativeCompositionSchema),\n }),\n ),\n }),\n ),\n host('directories', '/api/directories', 'GET', Type.Object({ directories: Strings }), { parameters: [query('q')] }),\n host(\n 'directories.children',\n '/api/directories/children',\n 'GET',\n Type.Object({ path: Text, parent: Optional(Text), directories: Strings }),\n { parameters: [query('path')] },\n ),\n host(\n 'sessions.list',\n '/api/workspaces/{workspaceId}/sessions',\n 'GET',\n Type.Object({ sessions: Type.Array(SessionSummarySchema) }),\n ),\n host('sessions.create', '/api/workspaces/{workspaceId}/sessions', 'POST', Type.Object({ sessionId: Text }), {\n body: body(Type.Object({ name: Optional(Text) })),\n responses: jsonApiResponses(Type.Object({ sessionId: Text }), 201),\n }),\n host('sessions.get', '/api/workspaces/{workspaceId}/sessions/{sessionId}', 'GET', SessionSummarySchema),\n host('sessions.delete', '/api/workspaces/{workspaceId}/sessions/{sessionId}', 'DELETE', ApiOkSchema),\n host(\n 'sessions.history',\n '/api/workspaces/{workspaceId}/sessions/{sessionId}/history',\n 'GET',\n Type.Object({ sessions: Type.Array(SavedSession) }),\n { availability: 'Host provides sessionHistory' },\n ),\n host('sessions.restart', '/api/workspaces/{workspaceId}/sessions/{sessionId}/restart', 'POST', ApiOkSchema, {\n availability: 'Host provides restartSession',\n }),\n host('sessions.revive', '/api/workspaces/{workspaceId}/sessions/{sessionId}/revive', 'POST', ApiOkSchema, {\n availability: 'Host provides reviveSession',\n }),\n host(\n 'sessions.resume',\n '/api/workspaces/{workspaceId}/sessions/{sessionId}/resume',\n 'POST',\n Type.Object({ sessionId: Text }),\n {\n availability: 'Host provides resumeSession',\n body: body(Type.Object({ targetSessionId: Type.String({ pattern: '^[A-Za-z0-9_-]+$' }) })),\n },\n ),\n host('sessions.file', '/api/workspaces/{workspaceId}/sessions/{sessionId}/file', 'GET', Binary, {\n parameters: [query('path', Text, true)],\n responses: {\n ...jsonApiResponses(Binary),\n '200': { description: 'File bytes, MIME type follows the file extension', contentType: '*/*', schema: Binary },\n },\n }),\n host(\n 'sessions.channels',\n '/api/workspaces/{workspaceId}/sessions/{sessionId}/channels',\n 'GET',\n Type.Object({ channels: Type.Array(Type.Object({ type: Text, sessionId: Text, payload: Json })) }),\n ),\n host(\n 'sessions.channel.send',\n '/api/workspaces/{workspaceId}/sessions/{sessionId}/channel/{frameType}',\n 'POST',\n ApiOkSchema,\n {\n body: body(Json),\n responses: jsonApiResponses(ApiOkSchema, 202),\n description: 'Deliver a payload to the selected channel contract identified by frameType.',\n },\n ),\n host('workspaces.list', '/api/workspaces', 'GET', Type.Object({ workspaces: Type.Array(Workspace) })),\n host('workspaces.admit', '/api/workspaces', 'POST', Type.Object({ workspace: Workspace }), {\n body: body(Type.Object({ root: Optional(Text), name: Optional(Text) })),\n responses: jsonApiResponses(Type.Object({ workspace: Workspace }), 201),\n }),\n host('workspaces.get', '/api/workspaces/{workspaceId}', 'GET', Type.Object({ workspace: Workspace })),\n host(\n 'workspaces.history',\n '/api/workspaces/{workspaceId}/history',\n 'GET',\n Type.Object({ sessions: Type.Array(SavedSession) }),\n {\n availability: 'Host provides workspaceHistory',\n },\n ),\n host('workspaces.resume', '/api/workspaces/{workspaceId}/resume', 'POST', Type.Object({ sessionId: Text }), {\n availability: 'Host provides resumeWorkspaceSession',\n body: body(Type.Object({ targetSessionId: Type.String({ pattern: '^[A-Za-z0-9_-]+$' }) })),\n }),\n host('workspaces.remove', '/api/workspaces/{workspaceId}', 'DELETE', ApiOkSchema),\n host('events', '/api/events', 'GET', Text, {\n responses: {\n '200': {\n description:\n 'SSE session and workspace snapshots, membership changes, and selected channel frames. Selected extension channel payloads are defined by the corresponding AsyncAPI channel operations.',\n events: {\n sessions_snapshot: HubSnapshotFrameSchema,\n session_upsert: HubUpsertFrameSchema,\n session_removed: HubRemovedFrameSchema,\n workspaces_snapshot: WorkspaceSnapshotFrameSchema,\n workspace_upsert: WorkspaceUpsertFrameSchema,\n workspace_removed: WorkspaceRemovedFrameSchema,\n },\n contentType: 'text/event-stream',\n schema: Text,\n },\n '401': { description: 'Authentication required', schema: ApiErrorSchema },\n },\n }),\n];\nconst AuthType = Type.Union([Type.Literal('api_key'), Type.Literal('oauth')]);\nconst Provider = Type.Object({\n id: Text,\n name: Text,\n methods: Type.Array(Type.Object({ type: AuthType, label: Text })),\n authenticated: Optional(Type.Object({ type: AuthType, source: Optional(Text) })),\n});\nconst LoginEvent = Type.Union([\n Type.Object({\n type: Type.Literal('info'),\n message: Text,\n links: Optional(Type.Array(Type.Object({ url: Text, label: Optional(Text) }))),\n }),\n Type.Object({ type: Type.Literal('auth_url'), url: Text, instructions: Optional(Text) }),\n Type.Object({\n type: Type.Literal('device_code'),\n userCode: Text,\n verificationUri: Text,\n intervalSeconds: Optional(NumberValue),\n expiresInSeconds: Optional(NumberValue),\n }),\n Type.Object({ type: Type.Literal('progress'), message: Text }),\n]);\nexport const LoginFlowSchema = Type.Object({\n id: Text,\n providerId: Text,\n providerName: Text,\n type: AuthType,\n status: Type.Union([\n Type.Literal('running'),\n Type.Literal('succeeded'),\n Type.Literal('failed'),\n Type.Literal('cancelled'),\n ]),\n events: Type.Array(LoginEvent),\n prompt: Optional(\n Type.Object({\n id: Text,\n type: Type.Union([\n Type.Literal('text'),\n Type.Literal('secret'),\n Type.Literal('select'),\n Type.Literal('manual_code'),\n ]),\n message: Text,\n placeholder: Optional(Text),\n options: Optional(Type.Array(Type.Object({ id: Text, label: Text, description: Optional(Text) }))),\n }),\n ),\n remote: Optional(Flag),\n error: Optional(Text),\n});\nconst Flow = Type.Object({ flow: LoginFlowSchema });\nexport const machineHttpContracts: DoomHttpContract[] = [\n host('providers.list', '/providers', 'GET', Type.Object({ providers: Type.Array(Provider) })),\n host(\n 'models.list',\n '/models',\n 'GET',\n Type.Object({ models: Type.Array(Type.Object({ value: Text, label: Text, group: Text })) }),\n ),\n host('providers.logout', '/providers/{providerId}', 'DELETE', ApiOkSchema),\n host('logins.create', '/logins', 'POST', Flow, {\n body: body(Type.Object({ providerId: Text, type: AuthType })),\n responses: jsonApiResponses(Flow, 201),\n }),\n host('logins.get', '/logins/{flowId}', 'GET', Flow),\n host('logins.cancel', '/logins/{flowId}', 'DELETE', Flow),\n host('logins.answer', '/logins/{flowId}/answer', 'POST', Flow, {\n body: body(Type.Object({ promptId: Text, value: Text })),\n }),\n].map((route) => ({ ...route, basePath: 'po' }));\nconst Source = Type.Union([\n Type.Literal('extension'),\n Type.Literal('mcp'),\n Type.Literal('plugin'),\n Type.Literal('core'),\n]);\nconst Detail = Type.Union([\n Type.Object({\n itemKind: Type.Literal('tool'),\n name: Text,\n owner: Text,\n source: Source,\n active: Flag,\n tokens: Type.Object({ schemaTokens: NumberValue, promptTokens: NumberValue, totalTokens: NumberValue }),\n description: Optional(Text),\n promptSnippet: Optional(Text),\n promptGuidelines: Optional(Strings),\n parameters: Optional(Json),\n }),\n Type.Object({\n itemKind: Type.Literal('skill'),\n name: Text,\n owner: Text,\n source: Source,\n active: Type.Literal(true),\n tokens: NumberValue,\n description: Text,\n filePath: Optional(Text),\n modelInvocable: Flag,\n }),\n Type.Object({\n itemKind: Type.Literal('prompt'),\n name: Type.Literal('system'),\n tokens: NumberValue,\n stage: Type.Union([Type.Literal('base'), Type.Literal('effective')]),\n text: Text,\n }),\n]);\nexport const sessionHttpContracts: DoomHttpContract[] = [\n {\n ...host('context.item', ITEM_ROUTE, 'GET', Type.Object({ revision: NumberValue, item: Detail }), {\n parameters: [\n query('kind', Type.Union([Type.Literal('tool'), Type.Literal('skill'), Type.Literal('prompt')]), true),\n query('name', Text, true),\n ],\n }),\n scope: 'session',\n basePath: API_BASE_PATH,\n },\n {\n ...host('files.complete', '/', 'GET', Type.Object({ files: Strings }), {\n parameters: [query('q', Type.String({ maxLength: 256 }))],\n }),\n scope: 'session',\n basePath: 'files',\n },\n];\n","import { Type, type TSchema } from 'typebox';\n\nimport type { DoomHttpContract } from './apiContracts';\nimport { ApiErrorSchema, ApiOkSchema, jsonApiResponses } from './httpApiContracts';\n\nconst Text = Type.String();\nconst NumberValue = Type.Number();\nconst Optional = Type.Optional;\nconst Flag = Type.Boolean();\nconst JsonObject = Type.Record(\n Text,\n Type.Unknown({\n description: 'WebAuthn ceremony fields supplied and verified by the installed WebAuthn implementation.',\n }),\n);\nconst Tunnel = Type.Union([\n Type.Object({ kind: Type.Literal('quick') }),\n Type.Object({\n kind: Type.Literal('named'),\n hostname: Text,\n name: Optional(Text),\n tokenFile: Optional(Text),\n configFile: Optional(Text),\n }),\n]);\nconst Settings = Type.Object({\n autoCloseEnabled: Flag,\n autoCloseMinutes: NumberValue,\n sessionExpiryEnabled: Flag,\n idleMinutes: NumberValue,\n absoluteHours: NumberValue,\n tunnel: Tunnel,\n sandbox: Type.Object({ enabled: Flag, workspaces: Type.Array(Text) }),\n});\nconst State = Type.Object({\n status: Type.Union([Type.Literal('off'), Type.Literal('starting'), Type.Literal('on'), Type.Literal('failed')]),\n publicUrl: Optional(Text),\n startedAt: Optional(Text),\n closesAt: Optional(Text),\n error: Optional(Text),\n devices: Type.Array(\n Type.Object({ id: Text, label: Text, userAgent: Text, createdAt: Text, lastSeenAt: Text, self: Flag }),\n ),\n pending: Type.Array(Type.Object({ id: Text, userAgent: Text, edgeIp: Text, createdAt: Text, expiresAt: Text })),\n trustedDevices: Type.Array(\n Type.Object({\n id: Text,\n label: Text,\n platform: Type.Union([Type.Literal('ios'), Type.Literal('android')]),\n createdAt: Text,\n lastSeenAt: Text,\n self: Flag,\n }),\n ),\n settings: Settings,\n});\nconst StateResponse = Type.Object({ state: State, handingOver: Optional(Flag) });\nconst Trust = Type.Object({ publicKey: Text, fingerprint: Text, revision: NumberValue });\nconst Begun = Type.Object({ ceremonyId: Text, options: JsonObject });\nconst DeviceKeyBegun = Type.Object({ ceremonyId: Text, challenge: Text, kind: Type.Literal('device-key') });\nconst ChannelKeys = Type.Object({ session: Text, protocol: Text, http: Text });\nconst Finish = Type.Object({ ceremonyId: Text, response: JsonObject });\nexport const SealedEnvelopeSchema = Type.Object({ v: Type.Literal(1), n: Text, c: Text });\nexport const SealedHttpRequestSchema = Type.Object({\n v: Type.Literal(1),\n method: Text,\n target: Text,\n headers: Type.Array(Type.Tuple([Text, Text])),\n body: Optional(Text),\n});\nexport const SealedHttpResponseSchema = Type.Object({\n v: Type.Literal(1),\n status: NumberValue,\n headers: Type.Array(Type.Tuple([Text, Text])),\n body: Text,\n});\nconst route = (\n id: string,\n path: string,\n method: DoomHttpContract['method'],\n result: TSchema,\n input?: TSchema,\n extra: Partial<DoomHttpContract> = {},\n): DoomHttpContract => ({\n id: `remote.${id}`,\n path: `/api/remote${path}`,\n method,\n scope: 'global',\n authentication: 'owner',\n description: `Remote Control ${id}.`,\n availability:\n 'Global host provides Remote Control. Tunnel routes additionally enforce device, origin and step-up policy.',\n responses: { ...jsonApiResponses(result), '429': { description: 'Rate limit exceeded', schema: ApiErrorSchema } },\n ...(input ? { body: { contentType: 'application/json', required: true, schema: input } } : {}),\n ...extra,\n});\nconst direct: DoomHttpContract[] = [\n route('state', '', 'GET', StateResponse),\n route('enable', '/enable', 'POST', StateResponse, undefined, {\n responses: {\n ...jsonApiResponses(StateResponse),\n '202': { description: 'Container handover started', schema: StateResponse },\n },\n }),\n route('disable', '/disable', 'POST', StateResponse, undefined, {\n responses: {\n ...jsonApiResponses(StateResponse),\n '202': { description: 'Tunnel closing', schema: Type.Object({ status: Type.Literal('closing') }) },\n },\n }),\n route(\n 'codes',\n '/codes',\n 'POST',\n Type.Object({ ...Trust.properties, code: Text, manualCode: Text, pairUrl: Text, expiresAt: Text }),\n undefined,\n {\n responses: jsonApiResponses(\n Type.Object({ ...Trust.properties, code: Text, manualCode: Text, pairUrl: Text, expiresAt: Text }),\n 201,\n ),\n },\n ),\n route('approve', '/pairing/{id}/approve', 'POST', StateResponse),\n route('deny', '/pairing/{id}/deny', 'POST', StateResponse),\n route('revoke', '/devices/{id}', 'DELETE', StateResponse),\n route('settings', '/settings', 'PUT', Type.Object({ settings: Settings }), Type.Partial(Settings)),\n route(\n 'passkeys',\n '/passkeys',\n 'GET',\n Type.Object({\n support: Type.Union([\n Type.Object({ supported: Type.Literal(true), rpId: Text }),\n Type.Object({ supported: Type.Literal(false), reason: Text }),\n ]),\n credentials: Type.Array(Type.Object({ id: Text, label: Text, createdAt: Text, lastUsedAt: Text })),\n }),\n ),\n route('passkeys.remove', '/passkeys/{id}', 'DELETE', ApiOkSchema),\n route('register.begin', '/passkeys/register/begin', 'POST', Begun, undefined, { authentication: 'device' }),\n route('register.finish', '/passkeys/register/finish', 'POST', Type.Object({ id: Text }), Finish, {\n authentication: 'device',\n }),\n route('authenticate.begin', '/passkeys/authenticate/begin', 'POST', Begun, undefined, { authentication: 'none' }),\n route(\n 'authenticate.finish',\n '/passkeys/authenticate/finish',\n 'POST',\n Type.Object({ ok: Type.Literal(true), hostPublicKey: Text }),\n Finish,\n { authentication: 'none' },\n ),\n route('challenge', '/challenge', 'POST', Type.Union([Begun, DeviceKeyBegun]), Type.Object({ action: Text }), {\n authentication: 'device',\n }),\n route(\n 'trusted-devices.register',\n '/trusted-devices',\n 'POST',\n Type.Object({ trustedDeviceId: Text }),\n Type.Object({\n identityPublicKey: Text,\n stepUpPublicKey: Text,\n label: Text,\n platform: Type.Union([Type.Literal('ios'), Type.Literal('android')]),\n identityProof: Text,\n stepUpProof: Text,\n }),\n {\n authentication: 'device',\n description: 'Registers a native device from a sealed, QR-approved pairing session.',\n responses: jsonApiResponses(Type.Object({ trustedDeviceId: Text }), 201),\n },\n ),\n route('trusted-devices.revoke', '/trusted-devices/{id}', 'DELETE', StateResponse, undefined, {\n description: 'Revokes a trusted native device. Local callers, or sealed callers with verified step-up.',\n }),\n route(\n 'device-auth.challenge',\n '/device-auth/challenge',\n 'POST',\n Type.Object({ challengeId: Text, challenge: Text, hostPublicKey: Text, attestation: Text }),\n Type.Object({ trustedDeviceId: Text, nonce: Text }),\n { authentication: 'none' },\n ),\n route(\n 'device-auth.authenticate',\n '/device-auth/authenticate',\n 'POST',\n Type.Object({ ok: Type.Literal(true) }),\n Type.Object({ challengeId: Text, trustedDeviceId: Text, signature: Text, channels: ChannelKeys }),\n { authentication: 'none' },\n ),\n route(\n 'channel',\n '/channel',\n 'POST',\n ApiOkSchema,\n Type.Object({\n clientPublicKey: Text,\n scope: Type.Union([Type.Literal('session'), Type.Literal('protocol'), Type.Literal('http')]),\n }),\n { authentication: 'device' },\n ),\n route('request', '/request', 'POST', SealedEnvelopeSchema, SealedEnvelopeSchema, {\n authentication: 'device',\n description:\n 'Sealed HTTP gateway. Decrypted requests/responses use the SealedHttpRequest and SealedHttpResponse envelopes.',\n }),\n route(\n 'pair',\n '/pair',\n 'POST',\n Type.Object({ requestId: Text, status: Type.Literal('pending') }),\n Type.Object({ code: Type.String({ minLength: 1 }) }),\n {\n authentication: 'none',\n responses: {\n ...jsonApiResponses(Type.Object({ requestId: Text, status: Type.Literal('pending') }), 202),\n '410': { description: 'Pairing code is no longer valid', schema: ApiErrorSchema },\n },\n },\n ),\n route(\n 'pair.status',\n '/pair/status',\n 'GET',\n Type.Object({\n status: Type.Union([\n Type.Literal('pending'),\n Type.Literal('approved'),\n Type.Literal('denied'),\n Type.Literal('expired'),\n Type.Literal('consumed'),\n ]),\n bundleTrust: Optional(Trust),\n hostPublicKey: Optional(Text),\n }),\n undefined,\n { authentication: 'none', parameters: [{ name: 'request', in: 'query', required: true, schema: Text }] },\n ),\n];\nexport const remoteHttpContracts: DoomHttpContract[] = [\n route('frontend', '/frontend', 'POST', ApiOkSchema, Type.Object({ origin: Text }), {\n authentication: 'owner',\n availability: 'Internal loopback frontend registration; blocked by the browser proxy.',\n parameters: [{ name: 'x-po-web-registration', in: 'header', required: true, schema: Text }],\n }),\n ...direct,\n ...direct.map((operation) => ({\n ...operation,\n id: `${operation.id}.plugin`,\n basePath: 'remote',\n path: operation.path.slice('/api/remote'.length) || '/',\n authentication: 'owner' as const,\n availability: 'Global Remote Control plugin mount, reached through the authenticated headless listener.',\n })),\n {\n id: 'remote.pair.page',\n scope: 'global',\n path: '/pair',\n method: 'GET',\n authentication: 'none',\n availability: 'Remote listener only',\n description: 'Pairing and passkey bootstrap page.',\n responses: { '200': { description: 'Pairing page', contentType: 'text/html', schema: Text } },\n },\n];\nconst Asset = Type.Object({\n path: Text,\n sha256: Type.String({ pattern: '^[a-f0-9]{64}$' }),\n byteLength: Type.Integer({ minimum: 0 }),\n contentType: Text,\n});\nconst Signed = Type.Object({\n manifest: Type.Object({\n version: Type.Literal(2),\n revision: Type.Integer({ minimum: 1 }),\n builtAt: NumberValue,\n assets: Type.Array(Asset),\n }),\n signature: Text,\n publicKey: Text,\n});\nexport const bundleHttpContracts: DoomHttpContract[] = [\n ...['/bundle-manifest.json', '/api/web-plugins/{id}/{revision}/manifest'].flatMap((path) =>\n (['GET', 'HEAD'] as const).map((method): DoomHttpContract => ({\n id: `bundle.${path}.${method}`,\n scope: 'global',\n path,\n method,\n authentication: 'owner',\n availability: 'Host publishes a web bundle',\n description: 'Read an immutable signed browser bundle manifest.',\n responses:\n method === 'HEAD'\n ? { '200': { description: 'Manifest response headers' }, '404': { description: 'Bundle not published' } }\n : jsonApiResponses(Signed),\n })),\n ),\n ...['/bundle-assets/{revision}/{assetPath}', '/api/web-plugins/{id}/{revision}/assets/{assetPath}'].flatMap((path) =>\n (['GET', 'HEAD'] as const).map((method): DoomHttpContract => ({\n id: `asset.${path}.${method}`,\n scope: 'global',\n path,\n method,\n authentication: 'owner',\n availability: 'Host publishes a web bundle',\n description: 'Read an asset from the signed manifest. assetPath may contain multiple path segments.',\n responses: {\n '200': {\n description: 'Manifest-listed asset, original MIME type',\n ...(method === 'GET' ? { contentType: '*/*', schema: Type.String({ contentEncoding: 'binary' }) } : {}),\n },\n '404': { description: 'Asset not published' },\n },\n })),\n ),\n];\n","import { defineService, type Context, type ReplicatedState } from '@earendil-works/chord';\n\nimport type { DoomSessionUpdateEvent } from './sessionUpdates';\n\nexport const DOOM_SESSION_SERVICE_ID = 'po.session.v2';\nexport const DOOM_SESSION_MANAGEMENT_SERVICE_ID = 'po.session-management.v1';\nexport const DOOM_COCKPIT_SERVER_ID = '646f6f6d-7069-4000-8000-000000000001';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff' | 'uncertain';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\nexport type TranscriptProgress =\n | { type: 'item_started'; item: TranscriptItem }\n | { type: 'item_updated'; item: TranscriptItem }\n | { type: 'item_finished'; item: TranscriptItem };\n\nexport interface SessionSnapshot {\n id: string;\n cwd: string;\n name?: string;\n createdAt: number;\n updatedAt: number;\n phase: SessionPhase;\n model: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n attached: boolean;\n locked: boolean;\n revision: number;\n transcript: TranscriptItem[];\n queuedSteer: UserTranscriptItem[];\n queuedSteerCount: number;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\nexport interface HubService {\n readonly state: ReplicatedState<{ events: ProtocolEvent[] }>;\n send(frame: { type: string; [key: string]: JsonValue }, context: Context): Promise<void>;\n}\n\nexport const DoomHubService = defineService<HubService>('po.hub.v1');\n\nexport interface SessionServiceState {\n snapshot: Omit<SessionSnapshot, 'transcript'>;\n progress: TranscriptProgress | null;\n /** ACP v2-shaped agent events, replayed in sequence across fresh bindings. */\n updates?: DoomSessionUpdateEvent[];\n presentation?: SessionPresentation;\n /** Current concurrent drafts/tools, so a fresh attachment does not depend on missed progress events. */\n inFlight?: TranscriptItem[];\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n /** Current drafts are separate from committed history. */\n drafts: TranscriptItem[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionFile?: string;\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionFile?: string;\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n}\n\nexport interface SessionManagementService {\n attach(sessionId: string, context: Context): Promise<void>;\n detach(context: Context): Promise<void>;\n}\n\nexport const DoomSessionService = defineService<SessionService>(DOOM_SESSION_SERVICE_ID);\nexport const DoomSessionManagementService = defineService<SessionManagementService>(DOOM_SESSION_MANAGEMENT_SERVICE_ID);\n","import { Type } from 'typebox';\n\nimport type { DoomSocketContract } from './apiContracts';\nimport { HubSnapshotFrameSchema, HubUpsertFrameSchema, HubRemovedFrameSchema } from './httpApiContracts';\nimport { DOOM_SESSION_MANAGEMENT_SERVICE_ID, DOOM_SESSION_SERVICE_ID, type JsonValue } from './sessionProtocol';\n\nconst Text = Type.String();\nconst NumberValue = Type.Number();\nconst Flag = Type.Boolean();\nconst Json = Type.Unsafe<JsonValue>(\n Type.Unknown({\n description:\n 'Strict JSON application value supplied by the active tool, journal entry, or extension; validated by the Pi codec.',\n }),\n);\nconst Optional = Type.Optional;\nconst Strings = Type.Array(Text);\nconst Model = Type.Object({ provider: Text, id: Text });\nconst Thinking = Type.Union([\n Type.Literal('off'),\n Type.Literal('minimal'),\n Type.Literal('low'),\n Type.Literal('medium'),\n Type.Literal('high'),\n Type.Literal('max'),\n Type.Literal('xhigh'),\n]);\nconst Phase = Type.Union([\n Type.Literal('idle'),\n Type.Literal('turn'),\n Type.Literal('compaction'),\n Type.Literal('retry'),\n]);\nconst Image = Type.Object({ type: Type.Literal('image'), data: Text, mimeType: Text });\nconst TextPart = Type.Object({ type: Type.Literal('text'), text: Text });\nconst Content = Type.Union([Image, TextPart]);\nconst User = Type.Object({\n id: Text,\n role: Type.Literal('user'),\n content: Type.Array(Content),\n timestamp: NumberValue,\n});\nconst Transcript = Type.Union([\n User,\n Type.Object({\n id: Text,\n role: Type.Literal('assistant'),\n content: Type.Array(\n Type.Union([\n TextPart,\n Type.Object({ type: Type.Literal('thinking'), thinking: Text, redacted: Optional(Type.Literal(true)) }),\n Type.Object({ type: Type.Literal('toolCall'), toolCallId: Text, toolName: Text, input: Json }),\n ]),\n ),\n model: Model,\n status: Type.Union([\n Type.Literal('streaming'),\n Type.Literal('complete'),\n Type.Literal('aborted'),\n Type.Literal('error'),\n ]),\n stopReason: Optional(\n Type.Union([\n Type.Literal('stop'),\n Type.Literal('length'),\n Type.Literal('toolUse'),\n Type.Literal('aborted'),\n Type.Literal('error'),\n ]),\n ),\n errorMessage: Optional(Text),\n timestamp: NumberValue,\n }),\n Type.Object({\n id: Text,\n role: Type.Literal('tool'),\n toolCallId: Text,\n toolName: Text,\n input: Json,\n content: Type.Array(Content),\n details: Optional(Json),\n status: Type.Union([Type.Literal('running'), Type.Literal('complete'), Type.Literal('error')]),\n isError: Flag,\n timestamp: NumberValue,\n }),\n]);\nconst Usage = Type.Object({\n input: NumberValue,\n output: NumberValue,\n cacheRead: NumberValue,\n cacheWrite: NumberValue,\n total: NumberValue,\n});\nconst Message = Type.Object({ text: Text, images: Optional(Type.Array(Image)) });\nconst Lifecycle = Type.Object({\n revision: NumberValue,\n operation: Type.Union([\n Type.Null(),\n Type.Object({\n id: Text,\n kind: Type.Union([Type.Literal('run'), Type.Literal('compaction'), Type.Literal('navigation')]),\n status: Type.Union([Type.Literal('open'), Type.Literal('aborting')]),\n }),\n ]),\n paused: Flag,\n queue: Type.Array(\n Type.Object({\n id: Text,\n text: Text,\n images: Optional(Type.Array(Image)),\n delivery: Type.Union([Type.Literal('steer'), Type.Literal('followUp'), Type.Literal('nextRun')]),\n scheduling: Type.Union([Type.Literal('automatic'), Type.Literal('held')]),\n disposition: Type.Union([Type.Literal('pending'), Type.Literal('handoff'), Type.Literal('uncertain')]),\n }),\n ),\n});\nconst Frame = Type.Intersect([Type.Object({ type: Text }), Type.Record(Text, Json)], {\n description: 'Discriminated extension presentation frame; selected channel schemas describe package payloads.',\n});\nconst HubClientFrame = Type.Union([\n Type.Object({ type: Type.Union([Type.Literal('subscribe'), Type.Literal('unsubscribe')]), sessionId: Text }),\n Type.Object({\n type: Type.Union([Type.Literal('subscribe_thread'), Type.Literal('unsubscribe_thread')]),\n sessionId: Text,\n threadId: Text,\n }),\n Type.Object({\n type: Type.String({ not: { enum: ['subscribe', 'unsubscribe', 'subscribe_thread', 'unsubscribe_thread'] } }),\n sessionId: Text,\n payload: Json,\n }),\n]);\nconst HubServerFrame = Type.Union([\n HubSnapshotFrameSchema,\n HubUpsertFrameSchema,\n HubRemovedFrameSchema,\n Type.Object({ type: Type.Literal('thread_frame'), sessionId: Text, threadId: Text, frame: Frame }),\n Type.Object({ type: Type.Literal('thread_backlog'), sessionId: Text, threadId: Text, frames: Type.Array(Frame) }),\n Type.Object({\n type: Type.String({\n not: {\n enum: [\n 'sessions_snapshot',\n 'session_upsert',\n 'session_removed',\n 'workspaces_snapshot',\n 'workspace_upsert',\n 'workspace_removed',\n 'thread_frame',\n 'thread_backlog',\n ],\n },\n }),\n sessionId: Text,\n payload: Json,\n }),\n]);\nconst ProtocolEvent = Type.Object({ sequence: NumberValue, frame: Frame });\nconst Update = Type.Union([\n Type.Object({\n sessionUpdate: Type.Union([\n Type.Literal('user_message'),\n Type.Literal('agent_message'),\n Type.Literal('agent_thought'),\n ]),\n messageId: Text,\n content: Type.Array(Content),\n }),\n Type.Object({\n sessionUpdate: Type.Literal('tool_call_update'),\n toolCallId: Text,\n title: Optional(Text),\n kind: Optional(Text),\n status: Optional(\n Type.Union([\n Type.Literal('pending'),\n Type.Literal('in_progress'),\n Type.Literal('completed'),\n Type.Literal('failed'),\n Type.Literal('cancelled'),\n ]),\n ),\n content: Optional(Type.Array(Type.Object({ type: Type.Literal('content'), content: Content }))),\n rawInput: Optional(Json),\n rawOutput: Optional(Json),\n }),\n Type.Object({\n sessionUpdate: Type.Literal('state_update'),\n state: Type.Union([Type.Literal('running'), Type.Literal('idle'), Type.Literal('requires_action')]),\n stopReason: Optional(\n Type.Union([\n Type.Literal('end_turn'),\n Type.Literal('max_tokens'),\n Type.Literal('max_turn_requests'),\n Type.Literal('refusal'),\n Type.Literal('cancelled'),\n Type.Unsafe<`_${string}`>(Type.String({ pattern: '^_' })),\n ]),\n ),\n }),\n]);\nexport const SessionServiceStateSchema = Type.Object({\n snapshot: Type.Object({\n id: Text,\n cwd: Text,\n name: Optional(Text),\n createdAt: NumberValue,\n updatedAt: NumberValue,\n phase: Phase,\n model: Model,\n thinkingLevel: Thinking,\n fastMode: Flag,\n attached: Flag,\n locked: Flag,\n revision: NumberValue,\n queuedSteer: Type.Array(User),\n queuedSteerCount: NumberValue,\n lifecycle: Optional(Lifecycle),\n }),\n progress: Type.Union([\n Type.Null(),\n Type.Union([\n Type.Object({ type: Type.Literal('item_started'), item: Transcript }),\n Type.Object({ type: Type.Literal('item_updated'), item: Transcript }),\n Type.Object({ type: Type.Literal('item_finished'), item: Transcript }),\n ]),\n ]),\n updates: Optional(Type.Array(Type.Object({ sequence: NumberValue, update: Update }))),\n presentation: Optional(\n Type.Object({\n revision: NumberValue,\n dropped: NumberValue,\n resetRevision: Optional(NumberValue),\n events: Type.Array(ProtocolEvent),\n projections: Type.Array(ProtocolEvent),\n }),\n ),\n inFlight: Optional(Type.Array(Transcript)),\n});\nexport const SessionMethodSchemas = {\n readTranscriptPage: {\n input: Type.Tuple([\n Type.Object({\n cursor: Optional(Text),\n direction: Optional(Type.Union([Type.Literal('older'), Type.Literal('newer')])),\n limit: Optional(NumberValue),\n threadId: Optional(Text),\n }),\n ]),\n output: Type.Object({\n entries: Type.Array(Json),\n startCursor: Type.Union([Text, Type.Null()]),\n endCursor: Type.Union([Text, Type.Null()]),\n olderCursor: Type.Union([Text, Type.Null()]),\n newerCursor: Type.Union([Text, Type.Null()]),\n generation: NumberValue,\n revision: NumberValue,\n context: Type.Array(Json),\n drafts: Type.Array(Transcript),\n }),\n },\n prompt: {\n input: Type.Tuple([\n Type.Union([\n Text,\n Type.Object({\n ...Message.properties,\n waitFor: Optional(Type.Union([Type.Literal('accepted'), Type.Literal('settled')])),\n }),\n ]),\n ]),\n },\n steer: { input: Type.Tuple([Type.Union([Text, Message])]) },\n abort: { input: Type.Tuple([]) },\n abortOperation: { input: Type.Tuple([Type.Object({ operationId: Text })]) },\n setModel: { input: Type.Tuple([Model]) },\n setThinking: { input: Type.Tuple([Thinking]) },\n setFastMode: { input: Type.Tuple([Flag]) },\n setAgentLock: { input: Type.Tuple([Flag]) },\n followUp: { input: Type.Tuple([Message]) },\n enqueueAutomatic: { input: Type.Tuple([Message]), output: Type.Object({ id: Text }) },\n removeQueued: {\n input: Type.Tuple([Type.Object({ id: Text })]),\n output: Type.Union([\n Type.Literal('removed'),\n Type.Literal('in_flight'),\n Type.Literal('already_consumed'),\n Type.Literal('not_found'),\n ]),\n },\n promoteQueued: {\n input: Type.Tuple([Type.Object({ id: Text, operationId: Optional(Text) })]),\n output: Type.Union([\n Type.Literal('promoted'),\n Type.Literal('in_flight'),\n Type.Literal('target_changed'),\n Type.Literal('not_found'),\n ]),\n },\n resumeQueue: { input: Type.Tuple([]) },\n clearQueue: { input: Type.Tuple([]), output: Type.Object({ steering: Strings, followUp: Strings }) },\n rewind: {\n input: Type.Tuple([\n Type.Object({\n itemId: Text,\n summarize: Optional(Flag),\n customInstructions: Optional(Text),\n replaceInstructions: Optional(Flag),\n label: Optional(Text),\n }),\n ]),\n output: Type.Object({\n editorText: Optional(Text),\n cancelled: Flag,\n aborted: Optional(Flag),\n summaryEntry: Optional(\n Type.Object({\n id: Text,\n parentId: Type.Union([Text, Type.Null()]),\n timestamp: Text,\n fromId: Text,\n summary: Text,\n details: Optional(Json),\n usage: Optional(Usage),\n fromHook: Optional(Flag),\n }),\n ),\n }),\n },\n extensionUiResponse: {\n input: Type.Tuple([\n Type.Union([\n Type.Object({ id: Text, value: Text }),\n Type.Object({ id: Text, confirmed: Flag }),\n Type.Object({ id: Text, cancelled: Type.Literal(true) }),\n ]),\n ]),\n },\n getState: {\n input: Type.Tuple([]),\n output: Type.Object({\n model: Optional(Model),\n thinkingLevel: Thinking,\n fastMode: Flag,\n isStreaming: Flag,\n isCompacting: Flag,\n steeringMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n followUpMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n sessionFile: Optional(Text),\n sessionId: Text,\n sessionName: Optional(Text),\n autoCompactionEnabled: Flag,\n messageCount: NumberValue,\n pendingMessageCount: NumberValue,\n operationId: Optional(Text),\n executionStatus: Optional(Type.Union([Type.Literal('open'), Type.Literal('aborting')])),\n queuePaused: Optional(Flag),\n queueRevision: Optional(NumberValue),\n }),\n },\n getSessionStats: {\n input: Type.Tuple([]),\n output: Type.Object({\n sessionFile: Optional(Text),\n sessionId: Text,\n totalMessages: NumberValue,\n tokens: Usage,\n cost: NumberValue,\n contextUsage: Optional(\n Type.Object({\n tokens: Type.Union([NumberValue, Type.Null()]),\n contextWindow: NumberValue,\n percent: Type.Union([NumberValue, Type.Null()]),\n }),\n ),\n }),\n },\n getCommands: {\n input: Type.Tuple([]),\n output: Type.Array(\n Type.Object({\n name: Text,\n description: Optional(Text),\n source: Type.Union([Type.Literal('extension'), Type.Literal('prompt'), Type.Literal('skill')]),\n sourceInfo: Optional(\n Type.Object({\n path: Text,\n source: Text,\n scope: Type.Union([Type.Literal('user'), Type.Literal('project'), Type.Literal('temporary')]),\n origin: Type.Union([Type.Literal('package'), Type.Literal('top-level')]),\n baseDir: Optional(Text),\n }),\n ),\n }),\n ),\n },\n getAvailableModels: { input: Type.Tuple([]), output: Type.Array(Model) },\n getAvailableThinkingLevels: { input: Type.Tuple([]), output: Type.Array(Thinking) },\n compact: { input: Type.Tuple([Type.Object({ customInstructions: Optional(Text) })]), output: Json },\n setName: { input: Type.Tuple([Text]) },\n};\n\nconst ErrorSchema = Type.Object({ code: Text, message: Text });\nexport const sessionSocketContracts: DoomSocketContract[] = [\n ...Object.entries(SessionMethodSchemas).map(([member, definition]): DoomSocketContract => ({\n id: `session.${member}`,\n scope: 'session',\n service: DOOM_SESSION_SERVICE_ID,\n member,\n direction: 'client-to-server',\n kind: 'method',\n description: `Session ${member}. Arguments exclude the process-local Chord Context. A void result is omitted from the successful Pi response.`,\n ...definition,\n errors: ErrorSchema,\n })),\n {\n id: 'session.state',\n scope: 'session',\n service: DOOM_SESSION_SERVICE_ID,\n member: 'state',\n direction: 'server-to-client',\n kind: 'state',\n input: SessionServiceStateSchema,\n description: 'Reconstructed session state after Chord snapshot/delta decoding.',\n },\n {\n id: 'management.attach',\n scope: 'global',\n service: DOOM_SESSION_MANAGEMENT_SERVICE_ID,\n member: 'attach',\n direction: 'client-to-server',\n kind: 'method',\n input: Type.Tuple([Text]),\n errors: ErrorSchema,\n description: 'Attach this presentation to a session. Pi publishes an out-of-band attachment update.',\n },\n {\n id: 'management.detach',\n scope: 'global',\n service: DOOM_SESSION_MANAGEMENT_SERVICE_ID,\n member: 'detach',\n direction: 'client-to-server',\n kind: 'method',\n input: Type.Tuple([]),\n errors: ErrorSchema,\n description: 'Detach this presentation from its selected session.',\n },\n {\n id: 'hub.send',\n scope: 'global',\n service: 'po.hub.v1',\n member: 'send',\n direction: 'client-to-server',\n kind: 'method',\n input: Type.Tuple([HubClientFrame]),\n errors: ErrorSchema,\n description: 'Send a hub subscription, thread, history, or selected extension channel frame.',\n },\n {\n id: 'hub.state',\n scope: 'global',\n service: 'po.hub.v1',\n member: 'state',\n direction: 'server-to-client',\n kind: 'state',\n input: Type.Object({ events: Type.Array(Type.Object({ sequence: NumberValue, frame: HubServerFrame })) }),\n description:\n 'Reconstructed hub event replay window. Frame discriminators identify session and selected extension updates.',\n },\n];\n","import { defineService, type Context, type JsonValue } from '@earendil-works/chord';\nimport { type Static, type TSchema, Type } from 'typebox';\nimport { Check } from 'typebox/value';\n\nimport type { DoomApiMount, DoomApiScope } from './packageApi';\n\n/** The address is always exact. A workspace call never resolves to a global service. */\nexport const DoomPluginMountSchema = Type.Union([\n Type.Object({ scope: Type.Literal('global') }, { additionalProperties: false }),\n Type.Object(\n { scope: Type.Literal('workspace'), workspaceId: Type.String({ minLength: 1 }) },\n { additionalProperties: false },\n ),\n Type.Object(\n { scope: Type.Literal('session'), sessionId: Type.String({ minLength: 1 }) },\n { additionalProperties: false },\n ),\n]);\n\nexport const DoomPluginCallSchema = Type.Object(\n {\n mount: DoomPluginMountSchema,\n service: Type.String({ minLength: 1 }),\n method: Type.String({ minLength: 1 }),\n input: Type.Unknown(),\n },\n { additionalProperties: false },\n);\n\nexport type DoomPluginCall = Static<typeof DoomPluginCallSchema>;\nexport type DoomPluginDirection = 'client-to-server' | 'server-to-client';\nexport interface DoomPluginCaller {\n /** Authenticated connection that owns client capabilities and leases. */\n connectionId?: string;\n /** Aborted when the authenticated browser connection closes. Never supplied over the wire. */\n signal?: AbortSignal;\n}\n\n/** Chord method shared by all authenticated Po clients. */\nexport interface DoomPluginService {\n invoke(\n call: {\n mount: DoomApiMount;\n service: string;\n method: string;\n input: JsonValue;\n },\n context: Context,\n ): Promise<JsonValue>;\n}\n\nexport const DoomPluginService = defineService<DoomPluginService>('po.plugin.v1');\n\nexport interface DoomPluginMethod<TInput extends TSchema, TOutput extends TSchema> {\n readonly service: string;\n readonly method: string;\n readonly scope: DoomApiScope;\n readonly direction: DoomPluginDirection;\n readonly input: TInput;\n readonly output: TOutput;\n}\n\nexport function defineDoomPluginMethod<TInput extends TSchema, TOutput extends TSchema>(\n definition: DoomPluginMethod<TInput, TOutput>,\n): DoomPluginMethod<TInput, TOutput> {\n if (!definition.service || !definition.method) throw new Error('Plugin service and method must be named.');\n return definition;\n}\n\nexport function doomPluginMountKey(mount: DoomApiMount): string {\n if (!Check(DoomPluginMountSchema, mount)) throw new Error('Invalid plugin mount.');\n switch (mount.scope) {\n case 'global':\n return 'global';\n case 'workspace':\n return `workspace:${mount.workspaceId}`;\n case 'session':\n return `session:${mount.sessionId}`;\n }\n}\n\nexport class DoomPluginCallError extends Error {\n constructor(\n readonly code: 'INVALID_CALL' | 'METHOD_NOT_FOUND' | 'INVALID_INPUT' | 'INVALID_OUTPUT',\n message: string,\n ) {\n super(message);\n this.name = 'DoomPluginCallError';\n }\n}\n\nexport interface DoomPluginRegistry {\n register<TInput extends TSchema, TOutput extends TSchema>(\n mount: DoomApiMount,\n definition: DoomPluginMethod<TInput, TOutput>,\n handler: (input: Static<TInput>, caller: DoomPluginCaller) => Static<TOutput> | Promise<Static<TOutput>>,\n ): () => void;\n invoke(call: unknown, direction: DoomPluginDirection, caller?: DoomPluginCaller): Promise<unknown>;\n dispose(): void;\n}\n\n/** Transport-neutral dispatch, shared by Chord server services and client capability hosts. */\nexport function createDoomPluginRegistry(): DoomPluginRegistry {\n const handlers = new Map<\n string,\n {\n definition: DoomPluginMethod<TSchema, TSchema>;\n handler: (input: never, caller: DoomPluginCaller) => unknown;\n }\n >();\n let disposed = false;\n const keyOf = (mount: DoomApiMount, service: string, method: string, direction: DoomPluginDirection): string =>\n `${doomPluginMountKey(mount)}\\0${direction}\\0${service}\\0${method}`;\n return {\n register(mount, definition, handler) {\n if (disposed) throw new Error('Plugin registry is disposed.');\n if (mount.scope !== definition.scope)\n throw new Error(`Method '${definition.service}.${definition.method}' requires ${definition.scope} scope.`);\n const key = keyOf(mount, definition.service, definition.method, definition.direction);\n if (handlers.has(key))\n throw new Error(`Plugin method '${definition.service}.${definition.method}' is already mounted.`);\n const entry = { definition, handler } as typeof handlers extends Map<string, infer TValue> ? TValue : never;\n handlers.set(key, entry);\n return () => {\n if (handlers.get(key) === entry) handlers.delete(key);\n };\n },\n async invoke(value, direction, caller = {}) {\n if (disposed) throw new Error('Plugin registry is disposed.');\n if (!Check(DoomPluginCallSchema, value)) throw new DoomPluginCallError('INVALID_CALL', 'Invalid plugin call.');\n const call = value as DoomPluginCall;\n const entry = handlers.get(keyOf(call.mount, call.service, call.method, direction));\n if (!entry)\n throw new DoomPluginCallError(\n 'METHOD_NOT_FOUND',\n `Plugin method '${call.service}.${call.method}' is not mounted at this scope.`,\n );\n if (!Check(entry.definition.input, call.input))\n throw new DoomPluginCallError('INVALID_INPUT', `Invalid input for '${call.service}.${call.method}'.`);\n const output = await entry.handler(call.input as never, caller);\n if (!Check(entry.definition.output, output))\n throw new DoomPluginCallError('INVALID_OUTPUT', `Invalid output from '${call.service}.${call.method}'.`);\n return output;\n },\n dispose() {\n disposed = true;\n handlers.clear();\n },\n };\n}\n\nexport async function invokeDoomPluginMethod<TInput extends TSchema, TOutput extends TSchema>(\n transport: (call: DoomPluginCall) => Promise<unknown>,\n mount: DoomApiMount,\n definition: DoomPluginMethod<TInput, TOutput>,\n input: Static<TInput>,\n): Promise<Static<TOutput>> {\n if (mount.scope !== definition.scope)\n throw new Error(`Method '${definition.service}.${definition.method}' requires ${definition.scope} scope.`);\n if (!Check(definition.input, input))\n throw new DoomPluginCallError('INVALID_INPUT', `Invalid input for '${definition.service}.${definition.method}'.`);\n const output = await transport({ mount, service: definition.service, method: definition.method, input });\n if (!Check(definition.output, output))\n throw new DoomPluginCallError(\n 'INVALID_OUTPUT',\n `Invalid output from '${definition.service}.${definition.method}'.`,\n );\n return output;\n}\n","import { PROTOCOL_VERSION } from '@earendil-works/pi-protocol';\nimport { Type } from 'typebox';\n\nimport type { DoomSocketContract } from './apiContracts';\nimport { DoomPluginCallSchema } from './pluginProtocol';\n\nconst S = Type.String({ minLength: 1 });\nconst Json = Type.Unknown({\n description: 'JSON value; its application shape is defined by the addressed service member.',\n});\nconst E = Type.Object({ code: S, message: Type.String() }, { additionalProperties: false });\nconst ServerId = Type.String({ pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$' });\nconst Address = Type.Object({ key: S, generation: Type.Integer({ minimum: 1 }) }, { additionalProperties: false });\nconst Mode = Type.Union([Type.Literal('singleton'), Type.Literal('keyed')]);\nconst SessionTarget = Type.Object(\n { serverId: ServerId, sessionId: S, attachmentId: S },\n { additionalProperties: false },\n);\nconst Target = Type.Union([Type.Object({ serverId: ServerId }, { additionalProperties: false }), SessionTarget]);\nexport const ChordCallSchema = Type.Object(\n { serviceId: S, member: S, args: Type.Array(Json), instance: Type.Optional(Address) },\n { additionalProperties: false },\n);\nconst Segment = Type.Union([Type.String(), Type.Integer({ minimum: 0 })]);\nconst Path = Type.Array(Segment);\nconst PathRef = Type.Union([Path, Type.Integer({ minimum: 0 })]);\nconst NonemptyPathRef = Type.Union([Type.Array(Segment, { minItems: 1 }), Type.Integer({ minimum: 0 })]);\nconst Index = Type.Integer({ minimum: 0 });\nexport const ChordWireOpSchema = Type.Union(\n [\n Type.Tuple([Type.Literal('r'), Json]),\n Type.Tuple([Type.Literal('s'), NonemptyPathRef, Json]),\n Type.Tuple([Type.Literal('s'), Json]),\n Type.Tuple([Type.Literal('d'), NonemptyPathRef]),\n Type.Tuple([Type.Literal('d')]),\n Type.Tuple([Type.Literal('a'), NonemptyPathRef, Type.String()]),\n Type.Tuple([Type.Literal('a'), Type.String()]),\n Type.Tuple([Type.Literal('t'), NonemptyPathRef, Index]),\n Type.Tuple([Type.Literal('t'), Index]),\n Type.Tuple([Type.Literal('p'), PathRef, Index, Index, Type.Array(Json)]),\n Type.Tuple([Type.Literal('p'), Index, Index, Type.Array(Json)]),\n Type.Tuple([Type.Literal('#'), Index, Path]),\n ],\n {\n description:\n 'Chord delta tuples. Path dictionary references and omitted paths depend on earlier operations in this subscription; decode with the Chord delta decoder.',\n },\n);\nconst Instance = Type.Object({\n instance: Type.Optional(Address),\n members: Type.Array(\n Type.Union([\n Type.Object({ name: S, kind: Type.Literal('method') }),\n Type.Object({\n name: S,\n kind: Type.Literal('state'),\n sequence: Type.Integer({ minimum: 0 }),\n ops: Type.Array(ChordWireOpSchema),\n }),\n ]),\n ),\n});\nexport const ChordSnapshotSchema = Type.Object({ serviceId: S, mode: Mode, instances: Type.Array(Instance) });\nexport const ChordUpdateSchema = Type.Union([\n Type.Object({\n type: Type.Literal('state'),\n instance: Type.Optional(Address),\n member: S,\n sequence: Type.Integer({ minimum: 1 }),\n ops: Type.Array(ChordWireOpSchema),\n }),\n Type.Object({ type: Type.Literal('unavailable') }),\n Type.Object({ type: Type.Literal('replaced'), snapshot: Instance }),\n Type.Object({ type: Type.Literal('spawned'), instance: Instance }),\n Type.Object({ type: Type.Literal('closed'), instance: Address }),\n]);\nexport const PiClientMessageSchema = Type.Union([\n Type.Object({ type: Type.Literal('hello'), version: Type.Integer({ minimum: 0 }) }),\n Type.Object({ type: Type.Literal('request'), id: S, target: Target, call: ChordCallSchema }),\n Type.Object({ type: Type.Literal('cancel'), id: S, target: Target }),\n]);\nexport const PiServerMessageSchema = Type.Union([\n Type.Object({ type: Type.Literal('hello'), version: Type.Literal(PROTOCOL_VERSION), serverId: ServerId }),\n Type.Object({ type: Type.Literal('hello_error'), error: E }),\n Type.Object({ type: Type.Literal('response'), id: S, ok: Type.Literal(true), result: Type.Optional(Json) }),\n Type.Object({ type: Type.Literal('response'), id: S, ok: Type.Literal(false), error: E }),\n Type.Object({ type: Type.Literal('service_update'), subscriptionId: S, update: ChordUpdateSchema }),\n Type.Object({ type: Type.Literal('attachment'), attachment: Type.Union([SessionTarget, Type.Null()]) }),\n]);\nexport const transportSocketContracts: DoomSocketContract[] = [\n {\n id: 'pi.client',\n scope: 'global',\n service: '$pi',\n member: 'client',\n direction: 'client-to-server',\n kind: 'channel',\n input: PiClientMessageSchema,\n description: `Pi protocol ${PROTOCOL_VERSION} decoded client envelope. Encode with the public Pi codec and framing functions, then seal for WebSocket delivery.`,\n },\n {\n id: 'pi.server',\n scope: 'global',\n service: '$pi',\n member: 'server',\n direction: 'server-to-client',\n kind: 'channel',\n input: PiServerMessageSchema,\n description: 'Pi decoded server envelope. Responses correlate by id; service updates correlate by subscriptionId.',\n },\n {\n id: 'chord.catalogue',\n scope: 'global',\n service: '$chord.service',\n member: 'catalogue',\n direction: 'client-to-server',\n kind: 'method',\n input: Type.Tuple([]),\n output: Type.Array(Type.Object({ serviceId: S, mode: Mode })),\n errors: E,\n description: 'Discover services at the selected Pi target.',\n },\n {\n id: 'chord.subscribe',\n scope: 'global',\n service: '$chord.service',\n member: 'subscribe',\n direction: 'client-to-server',\n kind: 'method',\n input: Type.Tuple([S, S, Mode]),\n output: ChordSnapshotSchema,\n errors: E,\n description:\n 'Subscribe with [subscriptionId, serviceId, mode]; subsequent Pi service_update messages contain Chord deltas.',\n },\n {\n id: 'chord.unsubscribe',\n scope: 'global',\n service: '$chord.service',\n member: 'unsubscribe',\n direction: 'client-to-server',\n kind: 'method',\n input: Type.Tuple([S]),\n errors: E,\n description: 'Unsubscribe by subscriptionId.',\n },\n {\n id: 'plugin.invoke',\n scope: 'global',\n service: 'po.plugin.v1',\n member: 'invoke',\n direction: 'client-to-server',\n kind: 'method',\n input: Type.Tuple([DoomPluginCallSchema]),\n output: Json,\n errors: E,\n description: 'Invoke the selected scoped plugin method. Its declaration supplies input and output shapes.',\n },\n];\n","import { PROTOCOL_VERSION } from '@earendil-works/pi-protocol';\n\nimport { defineApiContract } from './apiContracts';\nimport { headlessHttpContracts, machineHttpContracts, sessionHttpContracts } from './httpApiContracts';\nimport {\n SealedEnvelopeSchema,\n SealedHttpRequestSchema,\n SealedHttpResponseSchema,\n remoteHttpContracts,\n bundleHttpContracts,\n} from './remoteApiContracts';\nimport { sessionSocketContracts } from './sessionApiContracts';\nimport { transportSocketContracts } from './transportApiContracts';\n\nexport const builtinApiContract = defineApiContract({\n version: 1,\n schemas: {\n SealedEnvelope: SealedEnvelopeSchema,\n SealedHttpRequest: SealedHttpRequestSchema,\n SealedHttpResponse: SealedHttpResponseSchema,\n },\n protocols: { pi: String(PROTOCOL_VERSION), chord: '1.0.0', sealed: '1' },\n http: [\n ...headlessHttpContracts,\n ...machineHttpContracts,\n ...sessionHttpContracts,\n ...remoteHttpContracts,\n ...bundleHttpContracts,\n ],\n sockets: [...sessionSocketContracts, ...transportSocketContracts],\n dynamic: [\n 'WebAuthn options and credential responses follow the installed WebAuthn implementation.',\n 'Tool inputs/results and journal entries contain runtime-defined JSON.',\n 'Selected channel and presentation payload schemas are contributed by their owning package.',\n ],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"apiContracts.cjs","names":["Type","Check","Text","Type","Optional","Strings","Flag","NumberValue","Json","Text","Type","NumberValue","Optional","Flag","method","Json","Type","remote","hostNamed","Type","Text","Type","Json","remote","hostNamed","Type","remote","hostNamed","Type","Json","Type"],"sources":["../src/schemas/apiContracts.ts","../src/services/apiContracts/index.ts","../src/constants/contextApi.ts","../src/schemas/httpApiContracts.ts","../src/schemas/remoteApiContracts.ts","../src/schemas/protocolContracts.ts","../src/schemas/protocolChannelsContract.ts","../src/schemas/pluginProtocol.ts","../src/schemas/protocolHubContract.ts","../src/schemas/protocolThreadContract.ts","../src/schemas/sessionApiContracts.ts","../src/schemas/transportApiContracts.ts","../src/schemas/builtinApiContracts.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\nimport { Check } from 'typebox/value';\n\nimport type { PoApiScope } from './packageApi';\nimport type { PoServerBundleOwner } from './serverBundle';\n\nexport const PO_API_CONTRACT_VERSION = 1;\nexport const PO_API_CONTRACT_FILE = 'contracts.json';\nconst Schema = Type.Unsafe<object | boolean>(Type.Union([Type.Boolean(), Type.Record(Type.String(), Type.Unknown())]));\nconst Scope = Type.Union([Type.Literal('global'), Type.Literal('workspace'), Type.Literal('session')]);\nconst Named = Type.String({ minLength: 1 });\nconst ResponseSchema = Type.Object({\n description: Named,\n contentType: Type.Optional(Named),\n schema: Type.Optional(Schema),\n events: Type.Optional(Type.Record(Named, Schema)),\n});\n\n/** Data-only package entry. Schemas use JSON Schema draft-07, including TypeBox output; OpenAPI export translates tuple keywords. */\nexport const PoApiContractSchema = Type.Object({\n version: Type.Literal(PO_API_CONTRACT_VERSION),\n protocols: Type.Optional(Type.Record(Named, Named)),\n schemas: Type.Optional(Type.Record(Named, Schema)),\n http: Type.Array(\n Type.Object({\n id: Named,\n scope: Scope,\n /** Omit for host-owned absolute routes. */\n basePath: Type.Optional(Type.String({ pattern: '^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$' })),\n path: Type.String({ pattern: '^/' }),\n method: Type.Union([\n Type.Literal('GET'),\n Type.Literal('POST'),\n Type.Literal('PUT'),\n Type.Literal('PATCH'),\n Type.Literal('DELETE'),\n Type.Literal('HEAD'),\n Type.Literal('OPTIONS'),\n ]),\n description: Named,\n availability: Type.Optional(Named),\n authentication: Type.Union([Type.Literal('none'), Type.Literal('owner'), Type.Literal('device')]),\n parameters: Type.Optional(\n Type.Array(\n Type.Object({\n name: Named,\n in: Type.Union([Type.Literal('path'), Type.Literal('query'), Type.Literal('header')]),\n required: Type.Boolean(),\n schema: Schema,\n }),\n ),\n ),\n body: Type.Optional(\n Type.Object({\n contentType: Named,\n contentTypes: Type.Optional(Type.Array(Named, { minItems: 1 })),\n required: Type.Boolean(),\n schema: Schema,\n }),\n ),\n responses: Type.Record(Type.String({ pattern: '^(?:[1-5][0-9]{2}|default)$' }), ResponseSchema, {\n minProperties: 1,\n }),\n }),\n ),\n sockets: Type.Array(\n Type.Object({\n id: Named,\n scope: Scope,\n description: Named,\n availability: Type.Optional(Named),\n service: Named,\n member: Named,\n direction: Type.Union([Type.Literal('client-to-server'), Type.Literal('server-to-client')]),\n kind: Type.Union([Type.Literal('method'), Type.Literal('state'), Type.Literal('channel')]),\n input: Schema,\n output: Type.Optional(Schema),\n errors: Type.Optional(Schema),\n }),\n ),\n /** Explicitly enumerate dynamic values whose shape is supplied at runtime. */\n dynamic: Type.Array(Type.String({ minLength: 1 })),\n gaps: Type.Optional(Type.Array(Named)),\n});\n\nexport type PoApiContract = Static<typeof PoApiContractSchema>;\nexport type PoHttpContract = PoApiContract['http'][number];\nexport type PoSocketContract = PoApiContract['sockets'][number];\n\nexport function defineApiContract(contract: PoApiContract): PoApiContract {\n return contract;\n}\n\nexport function parseApiContract(value: unknown): PoApiContract {\n if (!Check(PoApiContractSchema, value)) throw new Error('Invalid Po API contract');\n const contract = value as PoApiContract;\n const ids = new Set<string>();\n for (const entry of [...contract.http, ...contract.sockets]) {\n const key = `${entry.scope}:${entry.id}`;\n if (ids.has(key)) throw new Error(`Duplicate API contract operation: ${key}`);\n ids.add(key);\n }\n // Reject non-JSON data rather than silently losing it during export.\n const visit = (item: unknown, ancestors: Set<object>): void => {\n if (item === null || typeof item === 'string' || typeof item === 'boolean') return;\n if (typeof item === 'number' && Number.isFinite(item)) return;\n if (typeof item !== 'object' || ancestors.has(item)) throw new Error('API contracts must contain finite JSON data');\n ancestors.add(item);\n for (const child of Object.values(item)) visit(child, ancestors);\n ancestors.delete(item);\n };\n visit(contract, new Set());\n return contract;\n}\n\nexport interface PoPackageContract {\n packageName: string;\n packageVersion: string;\n scopes: readonly PoApiScope[];\n owners: readonly PoServerBundleOwner[];\n contract?: PoApiContract;\n problem?: string;\n /** Generation-relative compiler output, never imported by the export command. */\n module?: string;\n}\n\nexport interface PoCompiledContracts {\n version: typeof PO_API_CONTRACT_VERSION;\n generation: string;\n fingerprint: string;\n packages: PoPackageContract[];\n}\n\nexport function parseCompiledContracts(value: unknown): PoCompiledContracts {\n const PackageSchema = Type.Object({\n packageName: Named,\n packageVersion: Named,\n scopes: Type.Array(Scope, { uniqueItems: true }),\n owners: Type.Array(Type.Object({ majorMode: Named, layer: Named }), { minItems: 1 }),\n contract: Type.Optional(PoApiContractSchema),\n problem: Type.Optional(Named),\n module: Type.Optional(Type.String({ pattern: '^\\\\./[^\\\\\\\\%?#]+$' })),\n });\n const CompiledSchema = Type.Object({\n version: Type.Literal(PO_API_CONTRACT_VERSION),\n generation: Named,\n fingerprint: Type.String({ pattern: '^[a-f0-9]{64}$' }),\n packages: Type.Array(PackageSchema),\n });\n if (!Check(CompiledSchema, value)) throw new Error('Invalid compiled API contracts');\n const data = value as PoCompiledContracts;\n const names = new Set<string>();\n for (const entry of data.packages) {\n if (names.has(entry.packageName) || entry.module?.split('/').includes('..'))\n throw new Error('Invalid compiled package contract');\n names.add(entry.packageName);\n if (entry.contract !== undefined) parseApiContract(entry.contract);\n }\n return data;\n}\n","import { parseApiContract, type PoCompiledContracts } from '../../schemas/apiContracts';\nimport type { PoApiScope } from '../../schemas/packageApi';\n\nexport interface ApiContractSelection {\n scope: PoApiScope;\n majorMode: string;\n activeLayers: readonly string[];\n compiled: PoCompiledContracts;\n}\n\nexport interface ApiDocuments {\n openapi: Record<string, unknown>;\n asyncapi: Record<string, unknown>;\n manifest: {\n version: 1;\n complete: boolean;\n protocols: Record<string, string>;\n selections: {\n scope: PoApiScope;\n majorMode: string;\n activeLayers: string[];\n generation: string;\n fingerprint: string;\n }[];\n packages: { name: string; version: string; scope: PoApiScope }[];\n gaps: { packageName: string; scope: PoApiScope; reason: string }[];\n dynamic: string[];\n };\n}\n\n/** Stable bytes for diffs and hashes, independent of object insertion order. */\nexport function canonicalContractJson(value: unknown): string {\n const ordered = (item: unknown): unknown => {\n if (Array.isArray(item)) return item.map(ordered);\n if (item !== null && typeof item === 'object')\n return Object.fromEntries(\n Object.entries(item)\n .sort(([a], [b]) => a.localeCompare(b, 'en'))\n .map(([key, child]) => [key, ordered(child)]),\n );\n return item;\n };\n return `${JSON.stringify(ordered(value), null, 2)}\\n`;\n}\n\nconst componentName = (value: string): string =>\n value.replace(/[^a-zA-Z0-9.-]/gu, (character) => `_${character.codePointAt(0)!.toString(16)}_`);\nconst pluginPrefix = (scope: PoApiScope): string =>\n scope === 'global'\n ? '/api/plugins'\n : scope === 'workspace'\n ? '/api/workspaces/{workspaceId}/plugins'\n : '/api/workspaces/{workspaceId}/sessions/{sessionId}/plugins';\n\n/** Compose declarations only. No handlers, lifecycle hooks, or platform resources are loaded. */\nexport function createApiDocuments(selections: readonly ApiContractSelection[]): ApiDocuments {\n const paths: Record<string, Record<string, unknown>> = {};\n const schemas: Record<string, unknown> = {};\n const messages: Record<string, unknown> = {};\n const operations: Record<string, unknown> = {};\n const channelMessages: Record<string, Record<string, unknown>> = { global: {}, workspace: {}, session: {} };\n const manifest: ApiDocuments['manifest'] = {\n version: 1,\n complete: true,\n protocols: {},\n selections: [],\n packages: [],\n gaps: [],\n dynamic: [],\n };\n const socketAddresses = new Set<string>();\n const schema = (id: string, value: unknown): { $ref: string } => {\n const name = componentName(id);\n if (schemas[name] !== undefined) throw new Error(`Conflicting schema: ${id}`);\n // Local $defs references must remain local after moving into components.\n const relocate = (child: unknown): unknown => {\n if (Array.isArray(child)) return child.map(relocate);\n if (child === null || typeof child !== 'object') return child;\n return Object.fromEntries(\n Object.entries(child).map(([key, entry]) => {\n if (key === '$id') throw new Error(`Schema ${id} must use local references, not $id`);\n if (key === '$ref' && typeof entry === 'string') {\n if (!entry.startsWith('#/')) throw new Error(`Unresolved schema reference in ${id}: ${entry}`);\n return [key, `#/components/schemas/${name}${entry.slice(1)}`];\n }\n return [key, relocate(entry)];\n }),\n );\n };\n schemas[name] = relocate(value);\n return { $ref: `#/components/schemas/${name}` };\n };\n for (const selected of [...selections].sort((a, b) => a.scope.localeCompare(b.scope))) {\n manifest.selections.push({\n scope: selected.scope,\n majorMode: selected.majorMode,\n activeLayers: [...selected.activeLayers].sort(),\n generation: selected.compiled.generation,\n fingerprint: selected.compiled.fingerprint,\n });\n for (const entry of [...selected.compiled.packages].sort((a, b) => a.packageName.localeCompare(b.packageName))) {\n if (\n !entry.scopes.includes(selected.scope) ||\n !entry.owners.some(\n (owner) =>\n owner.majorMode === selected.majorMode &&\n (owner.layer === 'default' || selected.activeLayers.includes(owner.layer)),\n )\n )\n continue;\n manifest.packages.push({ name: entry.packageName, version: entry.packageVersion, scope: selected.scope });\n if (!entry.contract || entry.problem) {\n manifest.gaps.push({\n packageName: entry.packageName,\n scope: selected.scope,\n reason: entry.problem ?? 'No contract declaration',\n });\n continue;\n }\n const contract = parseApiContract(entry.contract);\n for (const [name, value] of Object.entries(contract.schemas ?? {}))\n schema(`${entry.packageName}.${selected.scope}.${name}`, value);\n for (const [name, version] of Object.entries(contract.protocols ?? {})) {\n if (manifest.protocols[name] !== undefined && manifest.protocols[name] !== version)\n throw new Error(`Conflicting ${name} protocol versions`);\n manifest.protocols[name] = version;\n }\n manifest.gaps.push(\n ...(contract.gaps ?? []).map((reason) => ({ packageName: entry.packageName, scope: selected.scope, reason })),\n );\n manifest.dynamic.push(...contract.dynamic.map((value) => `${entry.packageName}: ${value}`));\n for (const route of contract.http.filter((route) => route.scope === selected.scope)) {\n const id = `${entry.packageName}.${route.scope}.${route.id}`;\n const mount =\n route.basePath === undefined\n ? ''\n : route.basePath === 'settings'\n ? `${route.scope === 'global' ? '/api' : '/api/workspaces/{workspaceId}'}/settings`\n : `${pluginPrefix(route.scope)}/${route.basePath}`;\n const pathname = `${mount}${route.path === '/' ? '' : route.path}`;\n const method = route.method.toLowerCase();\n const path = (paths[pathname] ??= {});\n if (path[method]) throw new Error(`Conflicting HTTP contract: ${route.method} ${pathname}`);\n const parameters = (route.parameters ?? []).map((parameter) => ({\n ...parameter,\n schema: schema(`${id}.${parameter.in}.${parameter.name}`, parameter.schema),\n }));\n for (const match of pathname.matchAll(/\\{([^}]+)\\}/gu)) {\n if (!parameters.some((parameter) => parameter.in === 'path' && parameter.name === match[1]))\n parameters.push({\n name: match[1],\n in: 'path',\n required: true,\n schema: schema(`${id}.path.${match[1]}`, { type: 'string', minLength: 1 }),\n });\n }\n path[method] = {\n operationId: componentName(id),\n description: route.description,\n parameters,\n security: route.authentication === 'none' ? [] : [{ [route.authentication]: [] }],\n 'x-po': {\n packageName: entry.packageName,\n scope: route.scope,\n ...(route.availability ? { availability: route.availability } : {}),\n },\n ...(route.body\n ? {\n requestBody: {\n required: route.body.required,\n content: Object.fromEntries(\n (route.body.contentTypes ?? [route.body.contentType]).map((mediaType) => [\n mediaType,\n { schema: schema(`${id}.body.${mediaType}`, route.body!.schema) },\n ]),\n ),\n },\n }\n : {}),\n responses: Object.fromEntries(\n Object.entries(route.responses).map(([status, response]) => [\n status,\n {\n description: response.description,\n ...(response.events\n ? {\n 'x-sse-events': Object.fromEntries(\n Object.entries(response.events).map(([name, payload]) => [\n name,\n schema(`${id}.event.${name}`, payload),\n ]),\n ),\n }\n : {}),\n ...(response.schema === undefined\n ? {}\n : {\n content: {\n [response.contentType ?? 'application/json']: {\n schema: schema(`${id}.response.${status}`, response.schema),\n },\n },\n }),\n },\n ]),\n ),\n };\n }\n for (const socket of contract.sockets.filter((socket) => socket.scope === selected.scope)) {\n const address = `${socket.scope}:${socket.direction}:${socket.kind}:${socket.service}:${socket.member}`;\n if (socketAddresses.has(address)) throw new Error(`Conflicting socket contract: ${address}`);\n socketAddresses.add(address);\n for (const channel of socket.scope === 'global' ? ['global'] : [socket.scope, 'global']) {\n const id = componentName(\n `${entry.packageName}.${socket.scope}.${socket.id}${channel === socket.scope ? '' : '.aggregate'}`,\n );\n const addMessage = (suffix: string, payload: unknown): string => {\n const name = `${id}.${suffix}`;\n messages[name] = { name, payload: schema(name, payload) };\n channelMessages[channel][name] = { $ref: `#/components/messages/${name}` };\n return `#/channels/${channel}/messages/${name}`;\n };\n const request = addMessage('input', socket.input);\n const replies = socket.output === undefined ? [] : [{ $ref: addMessage('output', socket.output) }];\n if (socket.errors !== undefined) replies.push({ $ref: addMessage('error', socket.errors) });\n operations[id] = {\n action: socket.direction === 'client-to-server' ? 'receive' : 'send',\n channel: { $ref: `#/channels/${channel}` },\n messages: [{ $ref: request }],\n description: socket.description,\n ...(replies.length ? { reply: { channel: { $ref: `#/channels/${channel}` }, messages: replies } } : {}),\n 'x-po': {\n service: socket.service,\n member: socket.member,\n scope: socket.scope,\n kind: socket.kind,\n transportScope: channel,\n ...(socket.availability ? { availability: socket.availability } : {}),\n },\n };\n }\n }\n }\n }\n manifest.complete = manifest.gaps.length === 0;\n manifest.dynamic = [...new Set(manifest.dynamic)].sort();\n const info = { title: 'Po compiled client API', version: '1' };\n const openapi = {\n openapi: '3.1.1',\n info,\n paths,\n components: {\n schemas: openApiSchemas(schemas),\n securitySchemes: {\n owner: { type: 'apiKey', in: 'header', name: 'x-po-token' },\n device: {\n type: 'apiKey',\n in: 'cookie',\n name: '__Host-po_device',\n description:\n 'Admitted device credentials and purpose-bound sealed channel; see remote authentication operations.',\n },\n },\n },\n };\n const asyncapi = {\n asyncapi: '3.0.0',\n info,\n channels: Object.fromEntries(\n Object.entries(channelMessages).map(([scope, messages]) => [\n scope,\n {\n address:\n scope === 'global'\n ? '/api/ws'\n : scope === 'workspace'\n ? '/api/workspaces/{workspaceId}/ws'\n : '/api/workspaces/{workspaceId}/sessions/{sessionId}/ws',\n ...(scope === 'global'\n ? {}\n : {\n parameters: {\n workspaceId: { description: 'Admitted workspace identity.' },\n ...(scope === 'session' ? { sessionId: { description: 'Session owned by this workspace.' } } : {}),\n },\n }),\n messages,\n description:\n 'Decoded Pi/Chord values over framed CBOR. The global hub socket aggregates all scopes; workspace and session sockets restrict session access and package calls to their addressed scope. Remote paired-device sockets seal the same bytes.',\n },\n ]),\n ),\n operations,\n components: { schemas: asyncApiSchemas(schemas), messages },\n };\n // References must resolve in each portable document before either is published.\n for (const document of [openapi, asyncapi]) {\n const visit = (value: unknown): void => {\n if (value === null || typeof value !== 'object') return;\n for (const [key, child] of Object.entries(value)) {\n if (key === '$ref' && typeof child === 'string') {\n let target: unknown = document;\n for (const segment of child.slice(2).split('/')) {\n if (target === null || typeof target !== 'object') throw new Error(`Unresolved API reference: ${child}`);\n target = Reflect.get(target, segment.replace(/~1/gu, '/').replace(/~0/gu, '~'));\n }\n if (target === undefined) throw new Error(`Unresolved API reference: ${child}`);\n } else visit(child);\n }\n };\n visit(document);\n }\n return { openapi, asyncapi, manifest };\n}\n\n/** TypeBox uses draft-07 tuple keywords; OpenAPI 3.1 evaluates the 2020-12 vocabulary. */\nfunction openApiSchemas(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(openApiSchemas);\n if (value === null || typeof value !== 'object') return value;\n const source = value as Record<string, unknown>;\n const result: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(source)) {\n if (key === 'items' && Array.isArray(child)) {\n if (child.length) result.prefixItems = child.map(openApiSchemas);\n else {\n result.items = false;\n result.maxItems = 0;\n }\n } else if (key === 'additionalItems' && Array.isArray(source.items)) result.items = openApiSchemas(child);\n else if (key === 'dependencies' && child !== null && typeof child === 'object') {\n const required: Record<string, unknown> = {};\n const schemas: Record<string, unknown> = {};\n for (const [name, dependency] of Object.entries(child)) {\n if (Array.isArray(dependency)) required[name] = dependency;\n else schemas[name] = openApiSchemas(dependency);\n }\n if (Object.keys(required).length) result.dependentRequired = required;\n if (Object.keys(schemas).length) result.dependentSchemas = schemas;\n } else if (key === '$schema') result.$schema = 'https://json-schema.org/draft/2020-12/schema';\n else result[key] = openApiSchemas(child);\n }\n return result;\n}\n\nfunction asyncApiSchemas(schemas: Record<string, unknown>): Record<string, unknown> {\n const convert = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(convert);\n if (value === null || typeof value !== 'object') return value;\n const result: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(value)) {\n if (key === '$ref' && typeof child === 'string') {\n result[key] = child.replace(/^(#\\/components\\/schemas\\/[^/]+)(.*)$/u, '$1/schema$2');\n } else if (key === 'items' && Array.isArray(child) && child.length === 0) {\n result.items = false;\n result.maxItems = 0;\n } else result[key] = convert(child);\n }\n return result;\n };\n return Object.fromEntries(\n Object.entries(schemas).map(([name, schema]) => [\n name,\n {\n schemaFormat: 'application/schema+json;version=draft-07',\n schema: convert(schema),\n },\n ]),\n );\n}\n","/**\n * What one entry in the composition actually is, for a reader who clicked it.\n *\n * The projection prices the composition and stops there: names, owners, and\n * integer counts, small enough to republish whenever the composition changes.\n * The prose and the schema behind a figure are an order of magnitude larger and\n * are wanted one row at a time, so they travel on request instead. This module\n * is the contract both ends of that request share, and it is deliberately free\n * of Node imports so a browser can hold it too.\n */\n\n/** Where a host mounts this package's API; the segment after /api/plugins/. */\nexport const API_BASE_PATH = 'context';\n\n/** The session a proxied request belongs to; the hub strips it before forwarding. */\nexport const SESSION_QUERY_PARAM = 'session';\n\nexport const ITEM_ROUTE = '/item';\n\nexport const CURRENT_ROUTE = '/current';\n\nexport const NAME_QUERY_PARAM = 'name';\n\nexport const KIND_QUERY_PARAM = 'kind';\n\nexport const CONTEXT_DETAIL_VERSION = 1;\n\n/** Plugin-agnostic status payload: a JSON map keyed by registered tool name. */\nexport const CONTEXT_TOOL_WARNINGS_STATUS_KEY = 'po-context-tool-warnings';\n","import { Type, type TSchema } from 'typebox';\n\nimport { API_BASE_PATH, CURRENT_ROUTE, ITEM_ROUTE } from '../constants/contextApi';\nimport type { PoHttpContract } from './apiContracts';\n\nconst Text = Type.String();\nconst Optional = Type.Optional;\nconst Strings = Type.Array(Text);\nconst Flag = Type.Boolean();\nconst NumberValue = Type.Number();\nexport const ApiErrorSchema = Type.Object({ error: Text, hash: Optional(Text) });\nexport const ApiOkSchema = Type.Object({ ok: Type.Literal(true) });\nconst Json = Type.Unknown({ description: 'Value whose schema is supplied by the selected runtime contribution.' });\n\n/** Common JSON response construction; status and payload remain explicit at the declaration. */\nexport function jsonApiResponses(schema: object | boolean, status = 200): PoHttpContract['responses'] {\n return {\n [status]: { description: 'Successful response', contentType: 'application/json', schema },\n '400': { description: 'Invalid request', schema: ApiErrorSchema },\n '401': { description: 'Authentication required', schema: ApiErrorSchema },\n '403': { description: 'Request is not authorized', schema: ApiErrorSchema },\n '404': { description: 'Resource or capability unavailable', schema: ApiErrorSchema },\n '409': { description: 'Conflicting state', schema: ApiErrorSchema },\n '422': { description: 'Invalid operation', schema: ApiErrorSchema },\n '500': { description: 'Host operation failed', schema: ApiErrorSchema },\n '502': { description: 'Provider failed', schema: ApiErrorSchema },\n '503': { description: 'Service unavailable', schema: ApiErrorSchema },\n };\n}\nexport const WebCompositionSchema = Type.Object({\n id: Text,\n scope: Type.Union([Type.Literal('global'), Type.Literal('workspace'), Type.Literal('session')]),\n revision: NumberValue,\n manifestUrl: Text,\n rawAssetBaseUrl: Text,\n verifiedAssetBaseUrl: Text,\n pluginEntries: Type.Array(Type.Tuple([Text, Text])),\n assetPaths: Strings,\n stylePaths: Strings,\n channels: Strings,\n});\nexport const NativeCompositionSchema = Type.Object({\n id: Text,\n scope: Type.Union([Type.Literal('global'), Type.Literal('workspace'), Type.Literal('session')]),\n revision: NumberValue,\n manifestUrl: Text,\n rawAssetBaseUrl: Text,\n entryPath: Text,\n channels: Strings,\n plugins: Strings,\n});\n/** A configured template id and the mount whose compositions offer it. */\nconst TemplateDecisionSchema = Type.Object({\n id: Optional(Text),\n mount: Type.Union([\n Type.Object({ scope: Type.Literal('global') }),\n Type.Object({ scope: Type.Literal('workspace'), workspaceId: Text }),\n ]),\n});\nexport const SessionSummarySchema = Type.Object({\n id: Text,\n workspaceId: Optional(Text),\n webComposition: Optional(WebCompositionSchema),\n nativeComposition: Optional(NativeCompositionSchema),\n name: Text,\n cwd: Text,\n createdAt: Text,\n updatedAt: Text,\n phase: Type.Union([Type.Literal('idle'), Type.Literal('turn'), Type.Literal('compaction'), Type.Literal('retry')]),\n phaseSince: Text,\n attach: Type.Literal('attached'),\n pendingMessageCount: NumberValue,\n everPrompted: Flag,\n awaitingInput: Flag,\n lastSettledAt: Optional(Text),\n git: Optional(Type.Object({ branch: Text, dirty: Flag })),\n profile: Optional(Type.Object({ name: Text, displayName: Optional(Text), iconVersion: Optional(Text) })),\n parentSessionId: Optional(Text),\n sessionProvenance: Optional(Text),\n /** The line the session's extension published about background work it runs. */\n activity: Optional(Type.Object({ label: Text, attention: Optional(Flag), since: Optional(Text) })),\n pendingSetups: Optional(\n Type.Array(\n Type.Object({\n id: Text,\n name: Text,\n createdAt: Text,\n cwd: Optional(Text),\n setupKind: Optional(Type.Union([Type.Literal('managed-worktree'), Type.Literal('existing-directory')])),\n status: Optional(\n Type.Union([Type.Literal('provisioning'), Type.Literal('failed'), Type.Literal('interrupted')]),\n ),\n errorCode: Optional(\n Type.Union([Type.Literal('SESSION_WORKTREE_PROVISION_FAILED'), Type.Literal('SESSION_UNAVAILABLE')]),\n ),\n }),\n ),\n ),\n groups: Optional(Strings),\n backgroundWorkActive: Optional(Flag),\n /** Present and true for a recorded session the server has not reopened yet. */\n dormant: Optional(Flag),\n});\nexport const WorkspaceSchema = Type.Object({ id: Text, root: Text, name: Optional(Text), available: Optional(Flag) });\nconst SavedSession = Type.Object({\n id: Text,\n name: Optional(Text),\n firstMessage: Text,\n createdAt: Text,\n updatedAt: Text,\n});\nconst query = (\n name: string,\n schema: TSchema = Text,\n required = false,\n): NonNullable<PoHttpContract['parameters']>[number] => ({ name, in: 'query', required, schema });\nconst body = (schema: TSchema): NonNullable<PoHttpContract['body']> => ({\n contentType: 'application/json',\n required: true,\n schema,\n});\nconst host = (\n id: string,\n path: string,\n method: PoHttpContract['method'],\n result: TSchema,\n extra: Partial<PoHttpContract> = {},\n): PoHttpContract => ({\n id,\n path,\n method,\n scope: 'global',\n authentication: 'owner',\n description: id,\n responses: jsonApiResponses(result),\n ...extra,\n});\nconst Binary = Type.String({ contentEncoding: 'binary' });\nexport const headlessHttpContracts: PoHttpContract[] = [\n host(\n 'health',\n '/api/health',\n 'GET',\n Type.Object({\n ok: Type.Literal(true),\n role: Type.Literal('hub'),\n protocol: Type.Literal(1),\n sessions: NumberValue,\n }),\n { authentication: 'none' },\n ),\n host('telemetry.browser', '/api/telemetry/browser', 'POST', ApiOkSchema, {\n body: body(\n Type.Object({\n v: Type.Literal(1),\n events: Type.Array(\n Type.Object({\n name: Type.String({ pattern: '^web\\\\.browser\\\\.[a-z_]{1,40}$' }),\n duration_ms: Optional(NumberValue),\n count: Optional(NumberValue),\n }),\n { maxItems: 10 },\n ),\n }),\n ),\n }),\n host(\n 'compositions',\n '/api/compositions',\n 'GET',\n Type.Object({\n global: Optional(WebCompositionSchema),\n nativeGlobal: Optional(NativeCompositionSchema),\n publicKey: Optional(Text),\n shell: Optional(Type.Object({ publicKey: Text, revision: NumberValue })),\n template: Optional(TemplateDecisionSchema),\n /** The phone app's `native.template` choice, resolved the same way. */\n nativeTemplate: Optional(TemplateDecisionSchema),\n workspaces: Type.Array(\n Type.Object({\n id: Text,\n root: Text,\n webComposition: Optional(WebCompositionSchema),\n nativeComposition: Optional(NativeCompositionSchema),\n }),\n ),\n }),\n ),\n host('directories', '/api/directories', 'GET', Type.Object({ directories: Strings }), { parameters: [query('q')] }),\n host(\n 'directories.children',\n '/api/directories/children',\n 'GET',\n Type.Object({ path: Text, parent: Optional(Text), directories: Strings }),\n { parameters: [query('path')] },\n ),\n host('directories.po', '/api/directories/po', 'GET', Type.Object({ directories: Strings })),\n host(\n 'sessions.list',\n '/api/workspaces/{workspaceId}/sessions',\n 'GET',\n Type.Object({ sessions: Type.Array(SessionSummarySchema) }),\n ),\n host('sessions.create', '/api/workspaces/{workspaceId}/sessions', 'POST', Type.Object({ sessionId: Text }), {\n body: body(Type.Object({ name: Optional(Text) })),\n responses: jsonApiResponses(Type.Object({ sessionId: Text }), 201),\n }),\n host('sessions.get', '/api/workspaces/{workspaceId}/sessions/{sessionId}', 'GET', SessionSummarySchema),\n host('sessions.delete', '/api/workspaces/{workspaceId}/sessions/{sessionId}', 'DELETE', ApiOkSchema),\n host(\n 'sessions.history',\n '/api/workspaces/{workspaceId}/sessions/{sessionId}/history',\n 'GET',\n Type.Object({ sessions: Type.Array(SavedSession) }),\n { availability: 'Host provides sessionHistory' },\n ),\n host('sessions.restart', '/api/workspaces/{workspaceId}/sessions/{sessionId}/restart', 'POST', ApiOkSchema, {\n availability: 'Host provides restartSession',\n }),\n host('sessions.revive', '/api/workspaces/{workspaceId}/sessions/{sessionId}/revive', 'POST', ApiOkSchema, {\n availability: 'Host provides reviveSession',\n }),\n host(\n 'sessions.resume',\n '/api/workspaces/{workspaceId}/sessions/{sessionId}/resume',\n 'POST',\n Type.Object({ sessionId: Text }),\n {\n availability: 'Host provides resumeSession',\n body: body(Type.Object({ targetSessionId: Type.String({ pattern: '^[A-Za-z0-9_-]+$' }) })),\n },\n ),\n host('sessions.file', '/api/workspaces/{workspaceId}/sessions/{sessionId}/file', 'GET', Binary, {\n parameters: [query('path', Text, true)],\n responses: {\n ...jsonApiResponses(Binary),\n '200': { description: 'File bytes, MIME type follows the file extension', contentType: '*/*', schema: Binary },\n },\n }),\n host('workspaces.list', '/api/workspaces', 'GET', Type.Object({ workspaces: Type.Array(WorkspaceSchema) })),\n host('workspaces.admit', '/api/workspaces', 'POST', Type.Object({ workspace: WorkspaceSchema }), {\n body: body(Type.Object({ root: Optional(Text), name: Optional(Text) })),\n responses: jsonApiResponses(Type.Object({ workspace: WorkspaceSchema }), 201),\n }),\n host('workspaces.get', '/api/workspaces/{workspaceId}', 'GET', Type.Object({ workspace: WorkspaceSchema })),\n host(\n 'workspaces.history',\n '/api/workspaces/{workspaceId}/history',\n 'GET',\n Type.Object({ sessions: Type.Array(SavedSession) }),\n {\n availability: 'Host provides workspaceHistory',\n },\n ),\n host('workspaces.resume', '/api/workspaces/{workspaceId}/resume', 'POST', Type.Object({ sessionId: Text }), {\n availability: 'Host provides resumeWorkspaceSession',\n body: body(Type.Object({ targetSessionId: Type.String({ pattern: '^[A-Za-z0-9_-]+$' }) })),\n }),\n host('workspaces.remove', '/api/workspaces/{workspaceId}', 'DELETE', ApiOkSchema),\n];\nconst AuthType = Type.Union([Type.Literal('api_key'), Type.Literal('oauth')]);\nconst Provider = Type.Object({\n id: Text,\n name: Text,\n methods: Type.Array(Type.Object({ type: AuthType, label: Text })),\n authenticated: Optional(Type.Object({ type: AuthType, source: Optional(Text) })),\n});\nconst LoginEvent = Type.Union([\n Type.Object({\n type: Type.Literal('info'),\n message: Text,\n links: Optional(Type.Array(Type.Object({ url: Text, label: Optional(Text) }))),\n }),\n Type.Object({ type: Type.Literal('auth_url'), url: Text, instructions: Optional(Text) }),\n Type.Object({\n type: Type.Literal('device_code'),\n userCode: Text,\n verificationUri: Text,\n intervalSeconds: Optional(NumberValue),\n expiresInSeconds: Optional(NumberValue),\n }),\n Type.Object({ type: Type.Literal('progress'), message: Text }),\n]);\nexport const LoginFlowSchema = Type.Object({\n id: Text,\n providerId: Text,\n providerName: Text,\n type: AuthType,\n status: Type.Union([\n Type.Literal('running'),\n Type.Literal('succeeded'),\n Type.Literal('failed'),\n Type.Literal('cancelled'),\n ]),\n events: Type.Array(LoginEvent),\n prompt: Optional(\n Type.Object({\n id: Text,\n type: Type.Union([\n Type.Literal('text'),\n Type.Literal('secret'),\n Type.Literal('select'),\n Type.Literal('manual_code'),\n ]),\n message: Text,\n placeholder: Optional(Text),\n options: Optional(Type.Array(Type.Object({ id: Text, label: Text, description: Optional(Text) }))),\n }),\n ),\n remote: Optional(Flag),\n error: Optional(Text),\n});\nconst Flow = Type.Object({ flow: LoginFlowSchema });\nexport const machineHttpContracts: PoHttpContract[] = [\n host('providers.list', '/providers', 'GET', Type.Object({ providers: Type.Array(Provider) })),\n host(\n 'models.list',\n '/models',\n 'GET',\n Type.Object({ models: Type.Array(Type.Object({ value: Text, label: Text, group: Text })) }),\n ),\n host('providers.logout', '/providers/{providerId}', 'DELETE', ApiOkSchema),\n host('logins.create', '/logins', 'POST', Flow, {\n body: body(Type.Object({ providerId: Text, type: AuthType })),\n responses: jsonApiResponses(Flow, 201),\n }),\n host('logins.get', '/logins/{flowId}', 'GET', Flow),\n host('logins.cancel', '/logins/{flowId}', 'DELETE', Flow),\n host('logins.answer', '/logins/{flowId}/answer', 'POST', Flow, {\n body: body(Type.Object({ promptId: Text, value: Text })),\n }),\n].map((route) => ({ ...route, basePath: 'po' }));\nconst Source = Type.Union([\n Type.Literal('extension'),\n Type.Literal('mcp'),\n Type.Literal('plugin'),\n Type.Literal('core'),\n]);\nconst Detail = Type.Union([\n Type.Object({\n itemKind: Type.Literal('tool'),\n name: Text,\n owner: Text,\n source: Source,\n active: Flag,\n tokens: Type.Object({ schemaTokens: NumberValue, promptTokens: NumberValue, totalTokens: NumberValue }),\n description: Optional(Text),\n promptSnippet: Optional(Text),\n promptGuidelines: Optional(Strings),\n parameters: Optional(Json),\n }),\n Type.Object({\n itemKind: Type.Literal('skill'),\n name: Text,\n owner: Text,\n source: Source,\n active: Type.Literal(true),\n tokens: NumberValue,\n description: Text,\n filePath: Optional(Text),\n modelInvocable: Flag,\n }),\n Type.Object({\n itemKind: Type.Literal('prompt'),\n name: Type.Literal('system'),\n tokens: NumberValue,\n stage: Type.Union([Type.Literal('base'), Type.Literal('effective')]),\n text: Text,\n }),\n]);\nconst ContextProjection = Type.Object({\n version: Type.Literal(1),\n revision: NumberValue,\n selection: Type.Object({ majorMode: Text, domains: Strings, profile: Optional(Text) }),\n groups: Type.Array(\n Type.Object({\n id: Text,\n label: Text,\n kind: Type.Union([Type.Literal('major'), Type.Literal('minor'), Type.Literal('domain'), Type.Literal('core')]),\n items: Type.Array(\n Type.Object({\n name: Text,\n itemKind: Type.Union([Type.Literal('tool'), Type.Literal('skill')]),\n source: Source,\n owner: Text,\n tokens: NumberValue,\n active: Flag,\n }),\n ),\n tokens: NumberValue,\n inactiveTokens: NumberValue,\n }),\n ),\n totalTokens: NumberValue,\n inactiveTokens: NumberValue,\n systemPrompt: Optional(\n Type.Object({\n tokens: NumberValue,\n stage: Type.Union([Type.Literal('base'), Type.Literal('effective')]),\n }),\n ),\n estimator: Type.Literal('gpt-tokenizer'),\n});\nexport const sessionHttpContracts: PoHttpContract[] = [\n {\n ...host('context.current', CURRENT_ROUTE, 'GET', ContextProjection),\n scope: 'session',\n basePath: API_BASE_PATH,\n },\n {\n ...host('context.item', ITEM_ROUTE, 'GET', Type.Object({ revision: NumberValue, item: Detail }), {\n parameters: [\n query('kind', Type.Union([Type.Literal('tool'), Type.Literal('skill'), Type.Literal('prompt')]), true),\n query('name', Text, true),\n ],\n }),\n scope: 'session',\n basePath: API_BASE_PATH,\n },\n {\n ...host('files.complete', '/', 'GET', Type.Object({ files: Strings }), {\n parameters: [query('q', Type.String({ maxLength: 256 }))],\n }),\n scope: 'session',\n basePath: 'files',\n },\n];\n","import { Type, type TSchema } from 'typebox';\n\nimport type { PoHttpContract } from './apiContracts';\nimport { ApiErrorSchema, ApiOkSchema, jsonApiResponses } from './httpApiContracts';\n\nconst Text = Type.String();\nconst NumberValue = Type.Number();\nconst Optional = Type.Optional;\nconst Flag = Type.Boolean();\nconst JsonObject = Type.Record(\n Text,\n Type.Unknown({\n description: 'WebAuthn ceremony fields supplied and verified by the installed WebAuthn implementation.',\n }),\n);\nconst Tunnel = Type.Union([\n Type.Object({ kind: Type.Literal('quick') }),\n Type.Object({\n kind: Type.Literal('named'),\n hostname: Text,\n name: Optional(Text),\n tokenFile: Optional(Text),\n configFile: Optional(Text),\n }),\n]);\nconst Settings = Type.Object({\n autoCloseEnabled: Flag,\n autoCloseMinutes: NumberValue,\n sessionExpiryEnabled: Flag,\n idleMinutes: NumberValue,\n absoluteHours: NumberValue,\n tunnel: Tunnel,\n sandbox: Type.Object({ enabled: Flag, workspaces: Type.Array(Text) }),\n});\nconst State = Type.Object({\n status: Type.Union([Type.Literal('off'), Type.Literal('starting'), Type.Literal('on'), Type.Literal('failed')]),\n publicUrl: Optional(Text),\n startedAt: Optional(Text),\n closesAt: Optional(Text),\n error: Optional(Text),\n devices: Type.Array(\n Type.Object({ id: Text, label: Text, userAgent: Text, createdAt: Text, lastSeenAt: Text, self: Flag }),\n ),\n pending: Type.Array(Type.Object({ id: Text, userAgent: Text, edgeIp: Text, createdAt: Text, expiresAt: Text })),\n trustedDevices: Type.Array(\n Type.Object({\n id: Text,\n label: Text,\n platform: Type.Union([Type.Literal('ios'), Type.Literal('android')]),\n createdAt: Text,\n lastSeenAt: Text,\n self: Flag,\n }),\n ),\n settings: Settings,\n});\nconst StateResponse = Type.Object({ state: State, handingOver: Optional(Flag) });\nconst Trust = Type.Object({ publicKey: Text, fingerprint: Text, revision: NumberValue });\nconst Begun = Type.Object({ ceremonyId: Text, options: JsonObject });\nconst DeviceKeyBegun = Type.Object({ ceremonyId: Text, challenge: Text, kind: Type.Literal('device-key') });\nconst ChannelKeys = Type.Object({ session: Text, protocol: Text, http: Text });\nconst Finish = Type.Object({ ceremonyId: Text, response: JsonObject });\nexport const SealedEnvelopeSchema = Type.Object({ v: Type.Literal(1), n: Text, c: Text });\nexport const SealedHttpRequestSchema = Type.Object({\n v: Type.Literal(1),\n method: Text,\n target: Text,\n headers: Type.Array(Type.Tuple([Text, Text])),\n body: Optional(Text),\n});\nexport const SealedHttpResponseSchema = Type.Object({\n v: Type.Literal(1),\n status: NumberValue,\n headers: Type.Array(Type.Tuple([Text, Text])),\n body: Text,\n});\nconst route = (\n id: string,\n path: string,\n method: PoHttpContract['method'],\n result: TSchema,\n input?: TSchema,\n extra: Partial<PoHttpContract> = {},\n): PoHttpContract => ({\n id: `remote.${id}`,\n path: `/api/remote${path}`,\n method,\n scope: 'global',\n authentication: 'owner',\n description: `Remote Control ${id}.`,\n availability:\n 'Global host provides Remote Control. Tunnel routes additionally enforce device, origin and step-up policy.',\n responses: { ...jsonApiResponses(result), '429': { description: 'Rate limit exceeded', schema: ApiErrorSchema } },\n ...(input ? { body: { contentType: 'application/json', required: true, schema: input } } : {}),\n ...extra,\n});\nconst direct: PoHttpContract[] = [\n route('state', '', 'GET', StateResponse),\n route('enable', '/enable', 'POST', StateResponse, undefined, {\n responses: {\n ...jsonApiResponses(StateResponse),\n '202': { description: 'Container handover started', schema: StateResponse },\n },\n }),\n route('disable', '/disable', 'POST', StateResponse, undefined, {\n responses: {\n ...jsonApiResponses(StateResponse),\n '202': { description: 'Tunnel closing', schema: Type.Object({ status: Type.Literal('closing') }) },\n },\n }),\n route(\n 'codes',\n '/codes',\n 'POST',\n Type.Object({ ...Trust.properties, code: Text, manualCode: Text, pairUrl: Text, expiresAt: Text }),\n undefined,\n {\n responses: jsonApiResponses(\n Type.Object({ ...Trust.properties, code: Text, manualCode: Text, pairUrl: Text, expiresAt: Text }),\n 201,\n ),\n },\n ),\n route('approve', '/pairing/{id}/approve', 'POST', StateResponse),\n route('deny', '/pairing/{id}/deny', 'POST', StateResponse),\n route('revoke', '/devices/{id}', 'DELETE', StateResponse),\n route('settings', '/settings', 'PUT', Type.Object({ settings: Settings }), Type.Partial(Settings)),\n route(\n 'passkeys',\n '/passkeys',\n 'GET',\n Type.Object({\n support: Type.Union([\n Type.Object({ supported: Type.Literal(true), rpId: Text }),\n Type.Object({ supported: Type.Literal(false), reason: Text }),\n ]),\n credentials: Type.Array(Type.Object({ id: Text, label: Text, createdAt: Text, lastUsedAt: Text })),\n }),\n ),\n route('passkeys.remove', '/passkeys/{id}', 'DELETE', ApiOkSchema),\n route('register.begin', '/passkeys/register/begin', 'POST', Begun, undefined, { authentication: 'device' }),\n route('register.finish', '/passkeys/register/finish', 'POST', Type.Object({ id: Text }), Finish, {\n authentication: 'device',\n }),\n route('authenticate.begin', '/passkeys/authenticate/begin', 'POST', Begun, undefined, { authentication: 'none' }),\n route(\n 'authenticate.finish',\n '/passkeys/authenticate/finish',\n 'POST',\n Type.Object({ ok: Type.Literal(true), hostPublicKey: Text }),\n Finish,\n { authentication: 'none' },\n ),\n route('challenge', '/challenge', 'POST', Type.Union([Begun, DeviceKeyBegun]), Type.Object({ action: Text }), {\n authentication: 'device',\n }),\n route(\n 'trusted-devices.register',\n '/trusted-devices',\n 'POST',\n Type.Object({ trustedDeviceId: Text }),\n Type.Object({\n identityPublicKey: Text,\n stepUpPublicKey: Text,\n label: Text,\n platform: Type.Union([Type.Literal('ios'), Type.Literal('android')]),\n identityProof: Text,\n stepUpProof: Text,\n }),\n {\n authentication: 'device',\n description: 'Registers a native device from a sealed, QR-approved pairing session.',\n responses: jsonApiResponses(Type.Object({ trustedDeviceId: Text }), 201),\n },\n ),\n route('trusted-devices.revoke', '/trusted-devices/{id}', 'DELETE', StateResponse, undefined, {\n description: 'Revokes a trusted native device. Local callers, or sealed callers with verified step-up.',\n }),\n route(\n 'device-auth.challenge',\n '/device-auth/challenge',\n 'POST',\n Type.Object({ challengeId: Text, challenge: Text, hostPublicKey: Text, attestation: Text }),\n Type.Object({ trustedDeviceId: Text, nonce: Text }),\n { authentication: 'none' },\n ),\n route(\n 'device-auth.authenticate',\n '/device-auth/authenticate',\n 'POST',\n Type.Object({ ok: Type.Literal(true) }),\n Type.Object({ challengeId: Text, trustedDeviceId: Text, signature: Text, channels: ChannelKeys }),\n { authentication: 'none' },\n ),\n route(\n 'channel',\n '/channel',\n 'POST',\n ApiOkSchema,\n Type.Object({\n clientPublicKey: Text,\n scope: Type.Union([Type.Literal('session'), Type.Literal('protocol'), Type.Literal('http')]),\n }),\n { authentication: 'device' },\n ),\n route('request', '/request', 'POST', SealedEnvelopeSchema, SealedEnvelopeSchema, {\n authentication: 'device',\n description:\n 'Sealed HTTP gateway. Decrypted requests/responses use the SealedHttpRequest and SealedHttpResponse envelopes.',\n }),\n route(\n 'pair',\n '/pair',\n 'POST',\n Type.Object({ requestId: Text, status: Type.Literal('pending') }),\n Type.Object({ code: Type.String({ minLength: 1 }) }),\n {\n authentication: 'none',\n responses: {\n ...jsonApiResponses(Type.Object({ requestId: Text, status: Type.Literal('pending') }), 202),\n '410': { description: 'Pairing code is no longer valid', schema: ApiErrorSchema },\n },\n },\n ),\n route(\n 'pair.status',\n '/pair/status',\n 'GET',\n Type.Object({\n status: Type.Union([\n Type.Literal('pending'),\n Type.Literal('approved'),\n Type.Literal('denied'),\n Type.Literal('expired'),\n Type.Literal('consumed'),\n ]),\n bundleTrust: Optional(Trust),\n hostPublicKey: Optional(Text),\n }),\n undefined,\n { authentication: 'none', parameters: [{ name: 'request', in: 'query', required: true, schema: Text }] },\n ),\n];\nexport const remoteHttpContracts: PoHttpContract[] = [\n route('frontend', '/frontend', 'POST', ApiOkSchema, Type.Object({ origin: Text }), {\n authentication: 'owner',\n availability: 'Internal loopback frontend registration; blocked by the browser proxy.',\n parameters: [{ name: 'x-po-web-registration', in: 'header', required: true, schema: Text }],\n }),\n ...direct,\n ...direct.map((operation) => ({\n ...operation,\n id: `${operation.id}.plugin`,\n basePath: 'remote',\n path: operation.path.slice('/api/remote'.length) || '/',\n authentication: 'owner' as const,\n availability: 'Global Remote Control plugin mount, reached through the authenticated headless listener.',\n })),\n {\n id: 'remote.pair.page',\n scope: 'global',\n path: '/pair',\n method: 'GET',\n authentication: 'none',\n availability: 'Remote listener only',\n description: 'Pairing and passkey bootstrap page.',\n responses: { '200': { description: 'Pairing page', contentType: 'text/html', schema: Text } },\n },\n];\nconst Asset = Type.Object({\n path: Text,\n sha256: Type.String({ pattern: '^[a-f0-9]{64}$' }),\n byteLength: Type.Integer({ minimum: 0 }),\n contentType: Text,\n});\nconst Signed = Type.Object({\n manifest: Type.Object({\n version: Type.Literal(2),\n revision: Type.Integer({ minimum: 1 }),\n builtAt: NumberValue,\n assets: Type.Array(Asset),\n }),\n signature: Text,\n publicKey: Text,\n});\nexport const bundleHttpContracts: PoHttpContract[] = [\n ...['/bundle-manifest.json', '/api/web-plugins/{id}/{revision}/manifest'].flatMap((path) =>\n (['GET', 'HEAD'] as const).map((method): PoHttpContract => ({\n id: `bundle.${path}.${method}`,\n scope: 'global',\n path,\n method,\n authentication: 'owner',\n availability: 'Host publishes a web bundle',\n description: 'Read an immutable signed browser bundle manifest.',\n responses:\n method === 'HEAD'\n ? { '200': { description: 'Manifest response headers' }, '404': { description: 'Bundle not published' } }\n : jsonApiResponses(Signed),\n })),\n ),\n ...['/bundle-assets/{revision}/{assetPath}', '/api/web-plugins/{id}/{revision}/assets/{assetPath}'].flatMap((path) =>\n (['GET', 'HEAD'] as const).map((method): PoHttpContract => ({\n id: `asset.${path}.${method}`,\n scope: 'global',\n path,\n method,\n authentication: 'owner',\n availability: 'Host publishes a web bundle',\n description: 'Read an asset from the signed manifest. assetPath may contain multiple path segments.',\n responses: {\n '200': {\n description: 'Manifest-listed asset, original MIME type',\n ...(method === 'GET' ? { contentType: '*/*', schema: Type.String({ contentEncoding: 'binary' }) } : {}),\n },\n '404': { description: 'Asset not published' },\n },\n })),\n ),\n];\n","import { ChordError, createHost, isChordError, method, type Frame, type Host, type Link } from '@earendil-works/chord';\nimport type { TSchema } from 'typebox';\n\n/** Name of the Po server host; every Po contract places its objects on it. */\nexport const PO_SERVER_HOST = 'server';\n\n/** One method's argument and result schemas; a missing one means no arguments or a void result. */\nexport interface PoMethodSchemas {\n readonly args?: TSchema;\n readonly result?: TSchema;\n}\n\n/**\n * What Chord's `method(args, result)` returns. Chord keeps `MethodSpec` private, so declaration\n * emit cannot name an inferred `method()` result; this alias can.\n */\nexport type ChordMethod<A extends TSchema | undefined, R extends TSchema | undefined> = Omit<\n ReturnType<typeof method<TSchema, TSchema>>,\n 'args' | 'result'\n> & { readonly args: A; readonly result: R };\n\nexport type ChordMethods<T extends Record<string, PoMethodSchemas>> = {\n [K in keyof T]: ChordMethod<\n T[K] extends { readonly args: infer A extends TSchema } ? A : undefined,\n T[K] extends { readonly result: infer R extends TSchema } ? R : undefined\n >;\n};\n\n/** Chord method specs for a schema table, typed so contracts built from them stay nameable. */\nexport function chordMethods<T extends Record<string, PoMethodSchemas>>(schemas: T): ChordMethods<T> {\n return Object.fromEntries(\n Object.entries<PoMethodSchemas>(schemas).map(([name, { args, result }]) => [\n name,\n result !== undefined ? method(args, result) : args !== undefined ? method(args) : method(),\n ]),\n ) as ChordMethods<T>;\n}\n\n/** A transport that carries text messages in order; `send` may be asynchronous (sealing). */\nexport interface TextPort {\n send(text: string): void;\n close(): void;\n}\n\n/**\n * A Chord link over any ordered text transport. Feed received text to `deliver` and the\n * transport's end to `ended`.\n */\nexport function createTextLink(port: TextPort): {\n link: Link;\n deliver(text: string): void;\n ended(reason: string): void;\n} {\n let handler: ((frame: Frame) => void) | undefined;\n let queue: Frame[] = [];\n const closeHandlers = new Set<(reason: string) => void>();\n let closed = false;\n const ended = (reason: string): void => {\n if (closed) return;\n closed = true;\n queue = [];\n try {\n port.close();\n } finally {\n for (const close of closeHandlers) close(reason);\n closeHandlers.clear();\n }\n };\n const link: Link = {\n get closed() {\n return closed;\n },\n send(frame) {\n if (closed) return undefined;\n const text = JSON.stringify(frame);\n port.send(text);\n // Reported like Chord's WebSocket link, so this link joins its flow control.\n return text.length;\n },\n receive(next) {\n handler = next;\n for (const frame of queue.splice(0)) next(frame);\n },\n onClose(close) {\n if (closed) close('closed');\n else closeHandlers.add(close);\n },\n close(reason = 'closed') {\n if (closed) return;\n try {\n port.send(JSON.stringify({ t: 'bye', reason }));\n } catch {\n // The transport may already be gone.\n }\n ended(reason);\n },\n };\n return {\n link,\n deliver(text) {\n if (closed) return;\n let frame: Frame;\n try {\n frame = JSON.parse(text) as Frame;\n if (frame === null || typeof frame !== 'object' || typeof (frame as { t?: unknown }).t !== 'string')\n throw new TypeError('not a frame');\n } catch {\n link.close('protocol error');\n return;\n }\n if ((frame as { t: string }).t === 'bye') {\n ended((frame as { reason?: string }).reason ?? 'peer closed');\n return;\n }\n if (handler === undefined) queue.push(frame);\n else handler(frame);\n },\n ended,\n };\n}\n\n/**\n * Whether `error` means this client's code is older than the server's. Chord refuses a changed contract with\n * `contract_mismatch`, which it reports to a client as `upgrade_required`; another protocol version is reported the\n * same way by `createProtocolClient`. Retrying cannot help, only new client code can.\n */\nexport function isUpdateRequired(error: unknown): boolean {\n return isChordError(error, 'contract_mismatch') || isChordError(error, 'upgrade_required');\n}\n\n/** `update_required` is heard once, before the closing link's `disconnected`; the client never connects again. */\nexport type ProtocolConnectionState = 'connected' | 'disconnected' | 'update_required';\n\n/** A browser or native Chord client host with one reconnectable link to the Po server. */\nexport interface ProtocolClient {\n readonly host: Host;\n readonly connected: boolean;\n /** The server needs newer client code; `connect` rejects from now on. */\n readonly updateRequired: boolean;\n connect(): Promise<void>;\n /** Closes the current link; listeners hear `disconnected`. */\n disconnect(): void;\n /** Hands over the error a held reference ended with; an update-required error stops the client for good. */\n reportError(error: unknown): void;\n dispose(): void;\n onConnectionStateChange(listener: (change: { state: ProtocolConnectionState }) => void): () => void;\n}\n\nexport function createProtocolClient(options: { name?: string; openLink: () => Promise<Link> }): ProtocolClient {\n const host = createHost({ name: options.name ?? 'client', kind: 'client', self: { host: true } });\n const listeners = new Set<(change: { state: ProtocolConnectionState }) => void>();\n let current: Link | undefined;\n let connecting: Promise<void> | undefined;\n let disposed = false;\n let updateError: unknown;\n const emit = (state: ProtocolConnectionState) => {\n for (const listener of Array.from(listeners)) listener({ state });\n };\n const reportError = (error: unknown): void => {\n if (disposed || updateError !== undefined || !isUpdateRequired(error)) return;\n updateError = error;\n emit('update_required');\n current?.close();\n };\n return {\n host,\n get connected() {\n return current !== undefined && !current.closed;\n },\n get updateRequired() {\n return updateError !== undefined;\n },\n connect() {\n if (disposed) return Promise.reject(new Error('The protocol client is disposed.'));\n if (updateError !== undefined) return Promise.reject(updateError);\n if (current !== undefined && !current.closed) return Promise.resolve();\n connecting ??= (async () => {\n try {\n const link = await options.openLink();\n if (disposed) {\n link.close();\n throw new Error('The protocol client is disposed.');\n }\n current = link;\n link.onClose(() => {\n if (current !== link) return;\n current = undefined;\n emit('disconnected');\n });\n host.connect(link, {\n principal: { host: PO_SERVER_HOST },\n onProtocolMismatch: ({ local, peer }) =>\n reportError(\n new ChordError(\n 'upgrade_required',\n `The Po server speaks Chord protocol ${peer}, this client speaks ${local}.`,\n ),\n ),\n });\n if (!link.closed) emit('connected');\n } finally {\n connecting = undefined;\n }\n })();\n return connecting;\n },\n disconnect() {\n current?.close();\n },\n reportError,\n dispose() {\n if (disposed) return;\n disposed = true;\n current?.close();\n listeners.clear();\n void host.close().catch(() => undefined);\n },\n onConnectionStateChange(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n };\n}\n","import { hostNamed, remote, type Ref } from '@earendil-works/chord';\nimport { Type } from 'typebox';\n\nimport { chordMethods, PO_SERVER_HOST } from './protocolContracts';\nimport type { JsonValue } from './sessionProtocol';\n\nconst Json = Type.Unsafe<JsonValue>({});\n\nexport const ChannelFrameSchema = Type.Object({ type: Type.String({ minLength: 1 }), payload: Json });\n/** Latest payload per extension channel frame type. */\nexport const PoChannelsStateSchema = Type.Record(Type.String(), Json);\n\n/** A session's extension channels as seen by one connection. */\nexport const PoChannelsContract = remote('po.channels', {\n version: 1,\n host: hostNamed(PO_SERVER_HOST),\n input: Type.Object({ sessionId: Type.String({ minLength: 1 }) }),\n variants: {\n default: {\n state: { latest: PoChannelsStateSchema },\n methods: chordMethods({ receive: { args: ChannelFrameSchema } }),\n },\n },\n});\n\nexport type ChannelsRef = Ref<typeof PoChannelsContract>;\n","import type { JsonValue } from '@earendil-works/chord';\nimport type { Context } from '@earendil-works/chord/context';\nimport { type Static, type TSchema, Type } from 'typebox';\nimport { Check } from 'typebox/value';\n\nimport type { PoApiMount, PoApiScope } from './packageApi';\n\n/** The address is always exact. A workspace call never resolves to a global service. */\nexport const PoPluginMountSchema = Type.Union([\n Type.Object({ scope: Type.Literal('global') }, { additionalProperties: false }),\n Type.Object(\n { scope: Type.Literal('workspace'), workspaceId: Type.String({ minLength: 1 }) },\n { additionalProperties: false },\n ),\n Type.Object(\n { scope: Type.Literal('session'), sessionId: Type.String({ minLength: 1 }) },\n { additionalProperties: false },\n ),\n]);\n\nexport const PoPluginCallSchema = Type.Object(\n {\n mount: PoPluginMountSchema,\n service: Type.String({ minLength: 1 }),\n method: Type.String({ minLength: 1 }),\n input: Type.Unknown(),\n },\n { additionalProperties: false },\n);\n\nexport type PoPluginCall = Static<typeof PoPluginCallSchema>;\nexport type PoPluginDirection = 'client-to-server' | 'server-to-client';\nexport interface PoPluginCaller {\n /** Authenticated connection that owns client capabilities and leases. */\n connectionId?: string;\n /** Aborted when the authenticated browser connection closes. Never supplied over the wire. */\n signal?: AbortSignal;\n}\n\n/** Chord method shared by all authenticated Po clients. */\nexport interface PoPluginService {\n invoke(\n call: {\n mount: PoApiMount;\n service: string;\n method: string;\n input: JsonValue;\n },\n context: Context,\n ): Promise<JsonValue>;\n}\n\nexport interface PoPluginMethod<TInput extends TSchema, TOutput extends TSchema> {\n readonly service: string;\n readonly method: string;\n readonly scope: PoApiScope;\n readonly direction: PoPluginDirection;\n readonly input: TInput;\n readonly output: TOutput;\n}\n\nexport function definePoPluginMethod<TInput extends TSchema, TOutput extends TSchema>(\n definition: PoPluginMethod<TInput, TOutput>,\n): PoPluginMethod<TInput, TOutput> {\n if (!definition.service || !definition.method) throw new Error('Plugin service and method must be named.');\n return definition;\n}\n\nexport function poPluginMountKey(mount: PoApiMount): string {\n if (!Check(PoPluginMountSchema, mount)) throw new Error('Invalid plugin mount.');\n switch (mount.scope) {\n case 'global':\n return 'global';\n case 'workspace':\n return `workspace:${mount.workspaceId}`;\n case 'session':\n return `session:${mount.sessionId}`;\n }\n}\n\nexport class PoPluginCallError extends Error {\n constructor(\n readonly code: 'INVALID_CALL' | 'METHOD_NOT_FOUND' | 'INVALID_INPUT' | 'INVALID_OUTPUT',\n message: string,\n ) {\n super(message);\n this.name = 'PoPluginCallError';\n }\n}\n\nexport interface PoPluginRegistry {\n register<TInput extends TSchema, TOutput extends TSchema>(\n mount: PoApiMount,\n definition: PoPluginMethod<TInput, TOutput>,\n handler: (input: Static<TInput>, caller: PoPluginCaller) => Static<TOutput> | Promise<Static<TOutput>>,\n ): () => void;\n invoke(call: unknown, direction: PoPluginDirection, caller?: PoPluginCaller): Promise<unknown>;\n dispose(): void;\n}\n\n/** Transport-neutral dispatch, shared by Chord server services and client capability hosts. */\nexport function createPoPluginRegistry(): PoPluginRegistry {\n const handlers = new Map<\n string,\n {\n definition: PoPluginMethod<TSchema, TSchema>;\n handler: (input: never, caller: PoPluginCaller) => unknown;\n }\n >();\n let disposed = false;\n const keyOf = (mount: PoApiMount, service: string, method: string, direction: PoPluginDirection): string =>\n `${poPluginMountKey(mount)}\\0${direction}\\0${service}\\0${method}`;\n return {\n register(mount, definition, handler) {\n if (disposed) throw new Error('Plugin registry is disposed.');\n if (mount.scope !== definition.scope)\n throw new Error(`Method '${definition.service}.${definition.method}' requires ${definition.scope} scope.`);\n const key = keyOf(mount, definition.service, definition.method, definition.direction);\n if (handlers.has(key))\n throw new Error(`Plugin method '${definition.service}.${definition.method}' is already mounted.`);\n const entry = { definition, handler } as typeof handlers extends Map<string, infer TValue> ? TValue : never;\n handlers.set(key, entry);\n return () => {\n if (handlers.get(key) === entry) handlers.delete(key);\n };\n },\n async invoke(value, direction, caller = {}) {\n if (disposed) throw new Error('Plugin registry is disposed.');\n if (!Check(PoPluginCallSchema, value)) throw new PoPluginCallError('INVALID_CALL', 'Invalid plugin call.');\n const call = value as PoPluginCall;\n const entry = handlers.get(keyOf(call.mount, call.service, call.method, direction));\n if (!entry)\n throw new PoPluginCallError(\n 'METHOD_NOT_FOUND',\n `Plugin method '${call.service}.${call.method}' is not mounted at this scope.`,\n );\n if (!Check(entry.definition.input, call.input))\n throw new PoPluginCallError('INVALID_INPUT', `Invalid input for '${call.service}.${call.method}'.`);\n const output = await entry.handler(call.input as never, caller);\n if (!Check(entry.definition.output, output))\n throw new PoPluginCallError('INVALID_OUTPUT', `Invalid output from '${call.service}.${call.method}'.`);\n return output;\n },\n dispose() {\n disposed = true;\n handlers.clear();\n },\n };\n}\n\nexport async function invokePoPluginMethod<TInput extends TSchema, TOutput extends TSchema>(\n transport: (call: PoPluginCall) => Promise<unknown>,\n mount: PoApiMount,\n definition: PoPluginMethod<TInput, TOutput>,\n input: Static<TInput>,\n): Promise<Static<TOutput>> {\n if (mount.scope !== definition.scope)\n throw new Error(`Method '${definition.service}.${definition.method}' requires ${definition.scope} scope.`);\n if (!Check(definition.input, input))\n throw new PoPluginCallError('INVALID_INPUT', `Invalid input for '${definition.service}.${definition.method}'.`);\n const output = await transport({ mount, service: definition.service, method: definition.method, input });\n if (!Check(definition.output, output))\n throw new PoPluginCallError('INVALID_OUTPUT', `Invalid output from '${definition.service}.${definition.method}'.`);\n return output;\n}\n","import { hostNamed, remote, type Ref } from '@earendil-works/chord';\nimport { Type, type Static } from 'typebox';\n\nimport type { HomeSnapshot } from './home';\nimport { SessionSummarySchema, WorkspaceSchema } from './httpApiContracts';\nimport { PoPluginCallSchema } from './pluginProtocol';\nimport { chordMethods, PO_SERVER_HOST } from './protocolContracts';\nimport type { JsonValue } from './sessionProtocol';\n\nconst Text = Type.String();\nconst Json = Type.Unsafe<JsonValue>({});\n\n/** A live session frame every hub client needs (notification entries and agent dialogs) until it is acknowledged. */\nexport const HubNoticeSchema = Type.Object({ id: Text, sessionId: Text, frame: Type.Record(Text, Json) });\nexport type HubNotice = Static<typeof HubNoticeSchema>;\nexport type HubSessionView = Static<typeof SessionSummarySchema>;\nexport type HubWorkspaceView = Static<typeof WorkspaceSchema>;\n\nconst HubState = {\n sessions: Type.Record(Text, SessionSummarySchema),\n workspaces: Type.Record(Text, WorkspaceSchema),\n pending: Type.Array(HubNoticeSchema),\n};\nexport const PoHubStateSchema = Type.Object(HubState);\n\n/** What one connection may see: its sessions, its workspaces, and the notices it has not acknowledged. */\nexport const PoHubContract = remote('po.hub', {\n version: 1,\n host: hostNamed(PO_SERVER_HOST),\n input: Type.Object({}),\n variants: {\n default: {\n state: HubState,\n methods: chordMethods({\n readHome: {\n args: Type.Object({\n offset: Type.Optional(Type.Integer({ minimum: 0 })),\n limit: Type.Optional(Type.Integer({ minimum: 1 })),\n source: Type.Optional(Text),\n workspaceId: Type.Optional(Text),\n }),\n result: Type.Unsafe<HomeSnapshot>({}),\n },\n invoke: { args: PoPluginCallSchema, result: Json },\n ackNotice: { args: Type.Object({ id: Text }) },\n }),\n },\n },\n});\n\nexport type HubRef = Ref<typeof PoHubContract>;\n","import { hostNamed, remote, type Ref } from '@earendil-works/chord';\nimport { Type } from 'typebox';\n\nimport { PO_SERVER_HOST } from './protocolContracts';\nimport type { JsonValue } from './sessionProtocol';\n\n/** The thread's latest frame: `transcript_state` while its child runs, `transcript_ready` once it has finished. */\nexport const PoThreadFrameSchema = Type.Union([\n Type.Null(),\n Type.Intersect([Type.Object({ type: Type.String() }), Type.Record(Type.String(), Type.Unsafe<JsonValue>({}))]),\n]);\n\n/** One child thread of a session, followed only while someone holds it. */\nexport const PoThreadContract = remote('po.thread', {\n version: 1,\n host: hostNamed(PO_SERVER_HOST),\n input: Type.Object({ sessionId: Type.String({ minLength: 1 }), threadId: Type.String({ minLength: 1 }) }),\n variants: {\n default: { state: { frame: PoThreadFrameSchema } },\n },\n});\n\nexport type ThreadRef = Ref<typeof PoThreadContract>;\n","import { Type, type TSchema } from 'typebox';\n\nimport type { PoSocketContract } from './apiContracts';\nimport { ChannelFrameSchema, PoChannelsStateSchema } from './protocolChannelsContract';\nimport { chordMethods, type PoMethodSchemas } from './protocolContracts';\nimport { PoHubStateSchema } from './protocolHubContract';\nimport { PoThreadFrameSchema } from './protocolThreadContract';\nimport type { JsonValue } from './sessionProtocol';\n\nconst Text = Type.String();\nconst NumberValue = Type.Number();\nconst Flag = Type.Boolean();\nconst Json = Type.Unsafe<JsonValue>(\n Type.Unknown({\n description:\n 'Strict JSON application value supplied by the active tool, journal entry, or extension; validated by the Pi codec.',\n }),\n);\nconst Optional = Type.Optional;\nconst Strings = Type.Array(Text);\nconst Model = Type.Object({ provider: Text, id: Text });\nconst Thinking = Type.Union([\n Type.Literal('off'),\n Type.Literal('minimal'),\n Type.Literal('low'),\n Type.Literal('medium'),\n Type.Literal('high'),\n Type.Literal('max'),\n Type.Literal('xhigh'),\n]);\nconst Phase = Type.Union([\n Type.Literal('idle'),\n Type.Literal('turn'),\n Type.Literal('compaction'),\n Type.Literal('retry'),\n]);\nconst Image = Type.Object({ type: Type.Literal('image'), data: Text, mimeType: Text });\nconst TextPart = Type.Object({ type: Type.Literal('text'), text: Text });\nconst ThinkingPart = Type.Object({\n type: Type.Literal('thinking'),\n thinking: Text,\n redacted: Optional(Type.Literal(true)),\n});\nconst Content = Type.Union([Image, TextPart]);\nconst Usage = Type.Object({\n input: NumberValue,\n output: NumberValue,\n cacheRead: NumberValue,\n cacheWrite: NumberValue,\n total: NumberValue,\n});\nconst Message = Type.Object({ text: Text, images: Optional(Type.Array(Image)) });\nconst Lifecycle = Type.Object({\n revision: NumberValue,\n operation: Type.Union([\n Type.Null(),\n Type.Object({\n id: Text,\n kind: Type.Union([Type.Literal('run'), Type.Literal('compaction'), Type.Literal('navigation')]),\n status: Type.Union([Type.Literal('open'), Type.Literal('aborting')]),\n }),\n ]),\n paused: Flag,\n queue: Type.Array(\n Type.Object({\n id: Text,\n text: Text,\n images: Optional(Type.Array(Image)),\n delivery: Type.Union([Type.Literal('steer'), Type.Literal('followUp'), Type.Literal('nextRun')]),\n scheduling: Type.Union([Type.Literal('automatic'), Type.Literal('held')]),\n disposition: Type.Union([Type.Literal('pending'), Type.Literal('handoff')]),\n }),\n ),\n});\nconst Frame = Type.Intersect([Type.Object({ type: Text }), Type.Record(Text, Json)], {\n description: 'Discriminated extension presentation frame; selected channel schemas describe package payloads.',\n});\nconst ProtocolEvent = Type.Object({ sequence: NumberValue, frame: Frame });\nexport const SessionServiceStateSchema = Type.Object({\n snapshot: Type.Object({\n fastMode: Flag,\n locked: Flag,\n lifecycle: Optional(Lifecycle),\n }),\n presentation: Optional(\n Type.Object({\n revision: NumberValue,\n dropped: NumberValue,\n resetRevision: Optional(NumberValue),\n events: Type.Array(ProtocolEvent),\n projections: Type.Array(ProtocolEvent),\n }),\n ),\n live: Optional(\n Type.Object({\n phase: Phase,\n message: Optional(\n Type.Object({\n role: Type.Literal('assistant'),\n content: Type.Array(Type.Union([TextPart, ThinkingPart])),\n model: Text,\n timestamp: NumberValue,\n }),\n ),\n tools: Type.Record(\n Text,\n Type.Object({\n toolCallId: Text,\n toolName: Text,\n args: Json,\n partialResult: Optional(Type.Object({ content: Type.Array(Content), details: Optional(Json) })),\n }),\n ),\n }),\n ),\n});\n/** Argument and result schemas of the `po.session` methods; the Chord contract and the API docs both read them. */\nexport const SessionMethodSchemas = {\n readTranscriptPage: {\n args: Type.Object({\n cursor: Optional(Text),\n direction: Optional(Type.Union([Type.Literal('older'), Type.Literal('newer')])),\n limit: Optional(NumberValue),\n threadId: Optional(Text),\n }),\n result: Type.Object({\n entries: Type.Array(Json),\n startCursor: Type.Union([Text, Type.Null()]),\n endCursor: Type.Union([Text, Type.Null()]),\n olderCursor: Type.Union([Text, Type.Null()]),\n newerCursor: Type.Union([Text, Type.Null()]),\n generation: NumberValue,\n revision: NumberValue,\n context: Type.Array(Json),\n }),\n },\n prompt: {\n args: Type.Union([\n Text,\n Type.Object({\n ...Message.properties,\n waitFor: Optional(Type.Union([Type.Literal('accepted'), Type.Literal('settled')])),\n }),\n ]),\n },\n steer: { args: Type.Union([Text, Message]) },\n abort: {},\n abortOperation: { args: Type.Object({ operationId: Text }) },\n setModel: { args: Model },\n setThinking: { args: Thinking },\n setFastMode: { args: Flag },\n setAgentLock: { args: Flag },\n followUp: { args: Message },\n enqueueAutomatic: { args: Message, result: Type.Object({ id: Text }) },\n removeQueued: {\n args: Type.Object({ id: Text }),\n result: Type.Union([\n Type.Literal('removed'),\n Type.Literal('in_flight'),\n Type.Literal('already_consumed'),\n Type.Literal('not_found'),\n ]),\n },\n promoteQueued: {\n args: Type.Object({ id: Text, operationId: Optional(Text) }),\n result: Type.Union([\n Type.Literal('promoted'),\n Type.Literal('in_flight'),\n Type.Literal('target_changed'),\n Type.Literal('not_found'),\n ]),\n },\n resumeQueue: {},\n clearQueue: { result: Type.Object({ steering: Strings, followUp: Strings }) },\n rewind: {\n args: Type.Object({\n itemId: Text,\n summarize: Optional(Flag),\n customInstructions: Optional(Text),\n replaceInstructions: Optional(Flag),\n label: Optional(Text),\n }),\n result: Type.Object({\n editorText: Optional(Text),\n cancelled: Flag,\n aborted: Optional(Flag),\n summaryEntry: Optional(\n Type.Object({\n id: Text,\n parentId: Type.Union([Text, Type.Null()]),\n timestamp: Text,\n fromId: Text,\n summary: Text,\n details: Optional(Json),\n usage: Optional(Usage),\n fromHook: Optional(Flag),\n }),\n ),\n }),\n },\n extensionUiResponse: {\n args: Type.Union([\n Type.Object({ id: Text, value: Text }),\n Type.Object({ id: Text, confirmed: Flag }),\n Type.Object({ id: Text, cancelled: Type.Literal(true) }),\n ]),\n },\n getState: {\n result: Type.Object({\n model: Optional(Model),\n thinkingLevel: Thinking,\n fastMode: Flag,\n agentLocked: Optional(Flag),\n isStreaming: Flag,\n isCompacting: Flag,\n steeringMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n followUpMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n sessionId: Text,\n sessionName: Optional(Text),\n autoCompactionEnabled: Flag,\n messageCount: NumberValue,\n pendingMessageCount: NumberValue,\n operationId: Optional(Text),\n executionStatus: Optional(Type.Union([Type.Literal('open'), Type.Literal('aborting')])),\n queuePaused: Optional(Flag),\n queueRevision: Optional(NumberValue),\n }),\n },\n getSessionStats: {\n result: Type.Object({\n sessionId: Text,\n totalMessages: NumberValue,\n tokens: Usage,\n cost: NumberValue,\n contextUsage: Optional(\n Type.Object({\n tokens: Type.Union([NumberValue, Type.Null()]),\n contextWindow: NumberValue,\n percent: Type.Union([NumberValue, Type.Null()]),\n }),\n ),\n }),\n },\n getCommands: {\n result: Type.Array(\n Type.Object({\n name: Text,\n description: Optional(Text),\n source: Type.Union([Type.Literal('extension'), Type.Literal('prompt'), Type.Literal('skill')]),\n sourceInfo: Optional(\n Type.Object({\n path: Text,\n source: Text,\n scope: Type.Union([Type.Literal('user'), Type.Literal('project'), Type.Literal('temporary')]),\n origin: Type.Union([Type.Literal('package'), Type.Literal('top-level')]),\n baseDir: Optional(Text),\n }),\n ),\n }),\n ),\n },\n getAvailableModels: { result: Type.Array(Model) },\n getAvailableThinkingLevels: { result: Type.Array(Thinking) },\n compact: { args: Type.Object({ customInstructions: Optional(Text) }), result: Json },\n setName: { args: Text },\n setGroups: { args: Type.Array(Text) },\n};\n/** The `po.session` methods as Chord specs. */\nexport const SessionMethods = chordMethods(SessionMethodSchemas);\n\nconst ErrorSchema = Type.Object({ code: Text, message: Text });\nconst documented = (\n id: string,\n service: string,\n member: string,\n direction: PoSocketContract['direction'],\n input: TSchema,\n description: string,\n): PoSocketContract => ({\n id,\n scope: service === 'po.hub' ? 'global' : 'session',\n service,\n member,\n direction,\n kind: direction === 'server-to-client' ? 'state' : 'method',\n input,\n ...(direction === 'server-to-client' ? {} : { errors: ErrorSchema }),\n description,\n});\nexport const sessionSocketContracts: PoSocketContract[] = [\n ...Object.entries<PoMethodSchemas>(SessionMethodSchemas).map(([member, { args, result }]): PoSocketContract => ({\n id: `session.${member}`,\n scope: 'session',\n service: 'po.session',\n member,\n direction: 'client-to-server',\n kind: 'method',\n description: `Session ${member}. The Chord call carries the argument; a void result is null.`,\n input: Type.Tuple(args === undefined ? [] : ([args] as TSchema[])),\n ...(result === undefined ? {} : { output: result }),\n errors: ErrorSchema,\n })),\n documented(\n 'session.state',\n 'po.session',\n 'state',\n 'server-to-client',\n SessionServiceStateSchema,\n 'The `state` member of `po.session`, reconstructed from Chord snapshot and delta frames.',\n ),\n documented(\n 'hub.state',\n 'po.hub',\n 'state',\n 'server-to-client',\n PoHubStateSchema,\n 'Sessions and workspaces this connection may see, and notices it has not acknowledged.',\n ),\n documented(\n 'thread.frame',\n 'po.thread',\n 'frame',\n 'server-to-client',\n PoThreadFrameSchema,\n 'The latest frame of one child thread: transcript_state while it runs, transcript_ready once finished.',\n ),\n documented(\n 'channels.latest',\n 'po.channels',\n 'latest',\n 'server-to-client',\n PoChannelsStateSchema,\n 'The latest payload of each extension channel frame type for one session.',\n ),\n documented(\n 'channels.receive',\n 'po.channels',\n 'receive',\n 'client-to-server',\n Type.Tuple([ChannelFrameSchema]),\n 'Send one extension channel frame to the session.',\n ),\n];\n","import { Type, type TSchema } from 'typebox';\n\nimport type { PoSocketContract } from './apiContracts';\nimport { PoPluginCallSchema } from './pluginProtocol';\n\n/** The Chord release whose link frames this file describes (link protocol 4). */\nexport const CHORD_WIRE_VERSION = '1.3.0';\n\nconst S = Type.String({ minLength: 1 });\nconst Json = Type.Unknown({\n description: 'JSON value; its application shape is defined by the addressed contract member.',\n});\nconst Id = Type.Integer({ minimum: 1 });\nconst ErrorCode = Type.Union(\n [\n 'aborted',\n 'contract_mismatch',\n 'forbidden',\n 'gone',\n 'invalid',\n 'not_in_variant',\n 'not_ready',\n 'released',\n 'superseded',\n 'unavailable',\n 'upgrade_conflict',\n 'upgrade_required',\n ].map((code) => Type.Literal(code)),\n);\nconst WireError = Type.Object({ code: ErrorCode, message: Type.String(), reason: Type.Optional(Type.String()) });\nconst Segment = Type.Union([Type.String(), Type.Integer({ minimum: 0 })]);\nconst Path = Type.Array(Segment);\nconst PathRef = Type.Union([Path, Type.Integer({ minimum: 0 })]);\nconst NonemptyPathRef = Type.Union([Type.Array(Segment, { minItems: 1 }), Type.Integer({ minimum: 0 })]);\nconst Index = Type.Integer({ minimum: 0 });\nexport const ChordWireOpSchema = Type.Union(\n [\n Type.Tuple([Type.Literal('r'), Json]),\n Type.Tuple([Type.Literal('s'), NonemptyPathRef, Json]),\n Type.Tuple([Type.Literal('s'), Json]),\n Type.Tuple([Type.Literal('d'), NonemptyPathRef]),\n Type.Tuple([Type.Literal('d')]),\n Type.Tuple([Type.Literal('a'), NonemptyPathRef, Type.String()]),\n Type.Tuple([Type.Literal('a'), Type.String()]),\n Type.Tuple([Type.Literal('t'), NonemptyPathRef, Index]),\n Type.Tuple([Type.Literal('t'), Index]),\n Type.Tuple([Type.Literal('p'), PathRef, Index, Index, Type.Array(Json)]),\n Type.Tuple([Type.Literal('p'), Index, Index, Type.Array(Json)]),\n Type.Tuple([Type.Literal('m'), PathRef, Type.Array(Index)]),\n Type.Tuple([Type.Literal('m'), Type.Array(Index)]),\n Type.Tuple([Type.Literal('#'), Index, Path]),\n ],\n {\n description:\n 'Chord delta tuples. Path dictionary references and omitted paths depend on earlier operations in this subscription; decode with the Chord delta decoder.',\n },\n);\nconst Hello = (kind: TSchema) =>\n Type.Object({\n t: Type.Literal('hello'),\n protocol: Type.Optional(Type.Integer({ minimum: 1 })),\n name: Type.String(),\n kind,\n codeVersion: Type.Integer({ minimum: 0 }),\n acks: Type.Optional(Type.Boolean()),\n });\nconst Ack = Type.Object({ t: Type.Literal('ack'), n: Type.Integer({ minimum: 1 }) });\nconst Ping = Type.Object({ t: Type.Literal('ping'), n: Type.Integer() });\nconst Pong = Type.Object({ t: Type.Literal('pong'), n: Type.Integer() });\nconst Bye = Type.Object({ t: Type.Literal('bye'), reason: Type.Optional(Type.String()) });\n\n/** Frames a client (browser or native app) sends on its link. */\nexport const ChordClientFrameSchema = Type.Union([\n Hello(Type.Literal('client')),\n Ack,\n Type.Object({\n t: Type.Literal('hold'),\n id: Id,\n at: Type.String(),\n token: Json,\n input: Json,\n state: Type.Optional(Type.Literal(false)),\n again: Type.Optional(Type.Literal(true)),\n }),\n Type.Object({ t: Type.Literal('release'), id: Id }),\n Type.Object({ t: Type.Literal('call'), id: Id, hold: Id, member: S, args: Type.Optional(Json) }),\n Type.Object({ t: Type.Literal('cancel'), id: Id }),\n Type.Object({ t: Type.Literal('sub'), hold: Id }),\n Type.Object({ t: Type.Literal('unsub'), hold: Id }),\n Type.Object({ t: Type.Literal('root_end'), rootId: Type.String() }),\n Ping,\n Pong,\n Bye,\n]);\n\n/** Frames the Po server sends to a client link. */\nexport const ChordServerFrameSchema = Type.Union([\n Hello(Type.String()),\n Ack,\n Type.Object({\n t: Type.Literal('shape'),\n id: Id,\n variant: Type.Optional(Type.String()),\n members: Type.Array(Type.String()),\n contract: Type.String(),\n state: Type.Array(S),\n }),\n Type.Object({ t: Type.Literal('gone'), id: Id, error: WireError }),\n Type.Object({ t: Type.Literal('result'), id: Id, value: Type.Optional(Json), error: Type.Optional(WireError) }),\n Type.Object({\n t: Type.Literal('state'),\n hold: Id,\n m: S,\n as: Type.Union([Type.Literal('snap'), Type.Literal('reset'), Type.Literal('ops'), Type.Literal('error')]),\n value: Type.Optional(Json),\n ops: Type.Optional(Type.Array(ChordWireOpSchema)),\n error: Type.Optional(WireError),\n }),\n Ping,\n Pong,\n Bye,\n]);\n\nexport const transportSocketContracts: PoSocketContract[] = [\n {\n id: 'chord.client',\n scope: 'global',\n service: '$chord',\n member: 'client',\n direction: 'client-to-server',\n kind: 'channel',\n input: ChordClientFrameSchema,\n description: `Chord ${CHORD_WIRE_VERSION} link frame, one JSON text message each, sealed for remote delivery. Hold \\`po.hub\\` ({}) and \\`po.session\\` ({ sessionId }) at host \\`server\\`.`,\n },\n {\n id: 'chord.server',\n scope: 'global',\n service: '$chord',\n member: 'server',\n direction: 'server-to-client',\n kind: 'channel',\n input: ChordServerFrameSchema,\n description: 'Chord link frame. Results correlate by call id; state frames by hold id and member.',\n },\n {\n id: 'plugin.invoke',\n scope: 'global',\n service: 'po.hub',\n member: 'invoke',\n direction: 'client-to-server',\n kind: 'method',\n input: PoPluginCallSchema,\n output: Json,\n errors: WireError,\n description: 'Invoke the selected scoped plugin method. Its declaration supplies input and output shapes.',\n },\n];\n","import { defineApiContract } from './apiContracts';\nimport { headlessHttpContracts, machineHttpContracts, sessionHttpContracts } from './httpApiContracts';\nimport {\n SealedEnvelopeSchema,\n SealedHttpRequestSchema,\n SealedHttpResponseSchema,\n remoteHttpContracts,\n bundleHttpContracts,\n} from './remoteApiContracts';\nimport { sessionSocketContracts } from './sessionApiContracts';\nimport { CHORD_WIRE_VERSION, transportSocketContracts } from './transportApiContracts';\n\nexport const builtinApiContract = defineApiContract({\n version: 1,\n schemas: {\n SealedEnvelope: SealedEnvelopeSchema,\n SealedHttpRequest: SealedHttpRequestSchema,\n SealedHttpResponse: SealedHttpResponseSchema,\n },\n protocols: { chord: CHORD_WIRE_VERSION, sealed: '1' },\n http: [\n ...headlessHttpContracts,\n ...machineHttpContracts,\n ...sessionHttpContracts,\n ...remoteHttpContracts,\n ...bundleHttpContracts,\n ],\n sockets: [...sessionSocketContracts, ...transportSocketContracts],\n dynamic: [\n 'WebAuthn options and credential responses follow the installed WebAuthn implementation.',\n 'Tool inputs/results and journal entries contain runtime-defined JSON.',\n 'Selected channel and presentation payload schemas are contributed by their owning package.',\n ],\n});\n"],"mappings":"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"}