@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":"pluginProtocol.mjs","names":[],"sources":["../../../src/schemas/pluginProtocol.ts"],"sourcesContent":["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"],"mappings":"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"}
1
+ {"version":3,"file":"pluginProtocol.mjs","names":[],"sources":["../../../src/schemas/pluginProtocol.ts"],"sourcesContent":["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"],"mappings":"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"}
@@ -19,7 +19,7 @@ let typebox = require("typebox");
19
19
  * one, because a message written before a switch keeps the identity it was
20
20
  * written under. Collapsing would rewrite history.
21
21
  */
22
- const DOOM_PROFILE_IDENTITY_ENTRY_TYPE = "doom-profile-identity";
22
+ const PO_PROFILE_IDENTITY_ENTRY_TYPE = "po-profile-identity";
23
23
  /**
24
24
  * Ceiling on the encoded icon, counted on the finished `data:` URL rather than
25
25
  * the file, so one number bounds both the journal entry and the transport.
@@ -59,7 +59,7 @@ const ProfileIdentityProjectionSchema = typebox.Type.Object({
59
59
  }))
60
60
  }, { additionalProperties: false });
61
61
  //#endregion
62
- exports.DOOM_PROFILE_IDENTITY_ENTRY_TYPE = DOOM_PROFILE_IDENTITY_ENTRY_TYPE;
62
+ exports.PO_PROFILE_IDENTITY_ENTRY_TYPE = PO_PROFILE_IDENTITY_ENTRY_TYPE;
63
63
  exports.PROFILE_ICON_MAX_DATA_URL_LENGTH = PROFILE_ICON_MAX_DATA_URL_LENGTH;
64
64
  exports.PROFILE_ICON_MIME_TYPES = PROFILE_ICON_MIME_TYPES;
65
65
  exports.ProfileIdentityProjectionSchema = ProfileIdentityProjectionSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"profileIdentity.cjs","names":["Type"],"sources":["../../../src/schemas/profileIdentity.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\n\n/**\n * The custom session entry the runtime journals when the active profile's\n * persona identity changes.\n *\n * A profile has always been prompt text only, so a cockpit had nothing to show\n * for it beyond the profile name already published as footer status. This entry\n * carries the persona's display name and avatar so the transcript can attribute\n * each assistant message to the persona that produced it.\n *\n * It rides Pi's `entry_appended` frames on the road the agent-model projection\n * already uses, so any RPC client sees the change live and on replay without a\n * new protocol.\n *\n * Unlike the minor-mode, context, and agent-model projections, this entry is\n * NOT a projection: it is transcript, positioned in journal order. A cockpit\n * folding it must keep every occurrence rather than collapsing to the latest\n * one, because a message written before a switch keeps the identity it was\n * written under. Collapsing would rewrite history.\n */\nexport const DOOM_PROFILE_IDENTITY_ENTRY_TYPE = 'doom-profile-identity';\n\n/**\n * Ceiling on the encoded icon, counted on the finished `data:` URL rather than\n * the file, so one number bounds both the journal entry and the transport.\n *\n * An avatar renders at 32 CSS pixels. This much room is already generous, and\n * the cap exists because the entry is replayed with the transcript: an oversize\n * icon is dropped and the persona keeps its name, never failing a profile load.\n */\nexport const PROFILE_ICON_MAX_DATA_URL_LENGTH = 262_144;\n\nconst MAX_PROFILE_NAME_LENGTH = 128;\n\n/**\n * Image types allowed for a persona icon.\n *\n * Deliberately narrower than the cockpit's general media catalog: `image/svg+xml`\n * is excluded because an SVG rendered same-origin executes script, and the icon\n * path comes from user-authored persona front-matter. Do not reconcile this list\n * with the broader media type map.\n */\nexport const PROFILE_ICON_MIME_TYPES = ['image/png', 'image/jpeg', 'image/gif', 'image/webp'] as const;\nexport type ProfileIconMimeType = (typeof PROFILE_ICON_MIME_TYPES)[number];\n\nexport const ProfileIdentityProjectionSchema = Type.Object(\n {\n profile: Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH }),\n name: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH })),\n icon: Type.Optional(Type.String({ minLength: 1, maxLength: PROFILE_ICON_MAX_DATA_URL_LENGTH })),\n },\n { additionalProperties: false },\n);\n\n/** The persona a message was produced under: the profile name, plus optional display name and icon. */\nexport type ProfileIdentityProjection = Static<typeof ProfileIdentityProjectionSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,mCAAmC;;;;;;;;;AAUhD,MAAa,mCAAmC;AAEhD,MAAM,0BAA0B;;;;;;;;;AAUhC,MAAa,0BAA0B;CAAC;CAAa;CAAc;CAAa;AAAY;AAG5F,MAAa,kCAAkCA,QAAAA,KAAK,OAClD;CACE,SAASA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC;CACzE,MAAMA,QAAAA,KAAK,SAASA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC,CAAC;CACrF,MAAMA,QAAAA,KAAK,SAASA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAiC,CAAC,CAAC;AAChG,GACA,EAAE,sBAAsB,MAAM,CAChC"}
1
+ {"version":3,"file":"profileIdentity.cjs","names":["Type"],"sources":["../../../src/schemas/profileIdentity.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\n\n/**\n * The custom session entry the runtime journals when the active profile's\n * persona identity changes.\n *\n * A profile has always been prompt text only, so a cockpit had nothing to show\n * for it beyond the profile name already published as footer status. This entry\n * carries the persona's display name and avatar so the transcript can attribute\n * each assistant message to the persona that produced it.\n *\n * It rides Pi's `entry_appended` frames on the road the agent-model projection\n * already uses, so any RPC client sees the change live and on replay without a\n * new protocol.\n *\n * Unlike the minor-mode, context, and agent-model projections, this entry is\n * NOT a projection: it is transcript, positioned in journal order. A cockpit\n * folding it must keep every occurrence rather than collapsing to the latest\n * one, because a message written before a switch keeps the identity it was\n * written under. Collapsing would rewrite history.\n */\nexport const PO_PROFILE_IDENTITY_ENTRY_TYPE = 'po-profile-identity';\n\n/**\n * Ceiling on the encoded icon, counted on the finished `data:` URL rather than\n * the file, so one number bounds both the journal entry and the transport.\n *\n * An avatar renders at 32 CSS pixels. This much room is already generous, and\n * the cap exists because the entry is replayed with the transcript: an oversize\n * icon is dropped and the persona keeps its name, never failing a profile load.\n */\nexport const PROFILE_ICON_MAX_DATA_URL_LENGTH = 262_144;\n\nconst MAX_PROFILE_NAME_LENGTH = 128;\n\n/**\n * Image types allowed for a persona icon.\n *\n * Deliberately narrower than the cockpit's general media catalog: `image/svg+xml`\n * is excluded because an SVG rendered same-origin executes script, and the icon\n * path comes from user-authored persona front-matter. Do not reconcile this list\n * with the broader media type map.\n */\nexport const PROFILE_ICON_MIME_TYPES = ['image/png', 'image/jpeg', 'image/gif', 'image/webp'] as const;\nexport type ProfileIconMimeType = (typeof PROFILE_ICON_MIME_TYPES)[number];\n\nexport const ProfileIdentityProjectionSchema = Type.Object(\n {\n profile: Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH }),\n name: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH })),\n icon: Type.Optional(Type.String({ minLength: 1, maxLength: PROFILE_ICON_MAX_DATA_URL_LENGTH })),\n },\n { additionalProperties: false },\n);\n\n/** The persona a message was produced under: the profile name, plus optional display name and icon. */\nexport type ProfileIdentityProjection = Static<typeof ProfileIdentityProjectionSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,iCAAiC;;;;;;;;;AAU9C,MAAa,mCAAmC;AAEhD,MAAM,0BAA0B;;;;;;;;;AAUhC,MAAa,0BAA0B;CAAC;CAAa;CAAc;CAAa;AAAY;AAG5F,MAAa,kCAAkCA,QAAAA,KAAK,OAClD;CACE,SAASA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC;CACzE,MAAMA,QAAAA,KAAK,SAASA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC,CAAC;CACrF,MAAMA,QAAAA,KAAK,SAASA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAiC,CAAC,CAAC;AAChG,GACA,EAAE,sBAAsB,MAAM,CAChC"}
@@ -19,7 +19,7 @@ import { Static, Type } from "typebox";
19
19
  * one, because a message written before a switch keeps the identity it was
20
20
  * written under. Collapsing would rewrite history.
21
21
  */
22
- export declare const DOOM_PROFILE_IDENTITY_ENTRY_TYPE = "doom-profile-identity";
22
+ export declare const PO_PROFILE_IDENTITY_ENTRY_TYPE = "po-profile-identity";
23
23
  /**
24
24
  * Ceiling on the encoded icon, counted on the finished `data:` URL rather than
25
25
  * the file, so one number bounds both the journal entry and the transport.
@@ -19,7 +19,7 @@ import { Type } from "typebox";
19
19
  * one, because a message written before a switch keeps the identity it was
20
20
  * written under. Collapsing would rewrite history.
21
21
  */
22
- const DOOM_PROFILE_IDENTITY_ENTRY_TYPE = "doom-profile-identity";
22
+ const PO_PROFILE_IDENTITY_ENTRY_TYPE = "po-profile-identity";
23
23
  /**
24
24
  * Ceiling on the encoded icon, counted on the finished `data:` URL rather than
25
25
  * the file, so one number bounds both the journal entry and the transport.
@@ -59,6 +59,6 @@ const ProfileIdentityProjectionSchema = Type.Object({
59
59
  }))
60
60
  }, { additionalProperties: false });
61
61
  //#endregion
62
- export { DOOM_PROFILE_IDENTITY_ENTRY_TYPE, PROFILE_ICON_MAX_DATA_URL_LENGTH, PROFILE_ICON_MIME_TYPES, ProfileIdentityProjectionSchema };
62
+ export { PO_PROFILE_IDENTITY_ENTRY_TYPE, PROFILE_ICON_MAX_DATA_URL_LENGTH, PROFILE_ICON_MIME_TYPES, ProfileIdentityProjectionSchema };
63
63
 
64
64
  //# sourceMappingURL=profileIdentity.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"profileIdentity.mjs","names":[],"sources":["../../../src/schemas/profileIdentity.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\n\n/**\n * The custom session entry the runtime journals when the active profile's\n * persona identity changes.\n *\n * A profile has always been prompt text only, so a cockpit had nothing to show\n * for it beyond the profile name already published as footer status. This entry\n * carries the persona's display name and avatar so the transcript can attribute\n * each assistant message to the persona that produced it.\n *\n * It rides Pi's `entry_appended` frames on the road the agent-model projection\n * already uses, so any RPC client sees the change live and on replay without a\n * new protocol.\n *\n * Unlike the minor-mode, context, and agent-model projections, this entry is\n * NOT a projection: it is transcript, positioned in journal order. A cockpit\n * folding it must keep every occurrence rather than collapsing to the latest\n * one, because a message written before a switch keeps the identity it was\n * written under. Collapsing would rewrite history.\n */\nexport const DOOM_PROFILE_IDENTITY_ENTRY_TYPE = 'doom-profile-identity';\n\n/**\n * Ceiling on the encoded icon, counted on the finished `data:` URL rather than\n * the file, so one number bounds both the journal entry and the transport.\n *\n * An avatar renders at 32 CSS pixels. This much room is already generous, and\n * the cap exists because the entry is replayed with the transcript: an oversize\n * icon is dropped and the persona keeps its name, never failing a profile load.\n */\nexport const PROFILE_ICON_MAX_DATA_URL_LENGTH = 262_144;\n\nconst MAX_PROFILE_NAME_LENGTH = 128;\n\n/**\n * Image types allowed for a persona icon.\n *\n * Deliberately narrower than the cockpit's general media catalog: `image/svg+xml`\n * is excluded because an SVG rendered same-origin executes script, and the icon\n * path comes from user-authored persona front-matter. Do not reconcile this list\n * with the broader media type map.\n */\nexport const PROFILE_ICON_MIME_TYPES = ['image/png', 'image/jpeg', 'image/gif', 'image/webp'] as const;\nexport type ProfileIconMimeType = (typeof PROFILE_ICON_MIME_TYPES)[number];\n\nexport const ProfileIdentityProjectionSchema = Type.Object(\n {\n profile: Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH }),\n name: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH })),\n icon: Type.Optional(Type.String({ minLength: 1, maxLength: PROFILE_ICON_MAX_DATA_URL_LENGTH })),\n },\n { additionalProperties: false },\n);\n\n/** The persona a message was produced under: the profile name, plus optional display name and icon. */\nexport type ProfileIdentityProjection = Static<typeof ProfileIdentityProjectionSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,mCAAmC;;;;;;;;;AAUhD,MAAa,mCAAmC;AAEhD,MAAM,0BAA0B;;;;;;;;;AAUhC,MAAa,0BAA0B;CAAC;CAAa;CAAc;CAAa;AAAY;AAG5F,MAAa,kCAAkC,KAAK,OAClD;CACE,SAAS,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC;CACzE,MAAM,KAAK,SAAS,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC,CAAC;CACrF,MAAM,KAAK,SAAS,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAiC,CAAC,CAAC;AAChG,GACA,EAAE,sBAAsB,MAAM,CAChC"}
1
+ {"version":3,"file":"profileIdentity.mjs","names":[],"sources":["../../../src/schemas/profileIdentity.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\n\n/**\n * The custom session entry the runtime journals when the active profile's\n * persona identity changes.\n *\n * A profile has always been prompt text only, so a cockpit had nothing to show\n * for it beyond the profile name already published as footer status. This entry\n * carries the persona's display name and avatar so the transcript can attribute\n * each assistant message to the persona that produced it.\n *\n * It rides Pi's `entry_appended` frames on the road the agent-model projection\n * already uses, so any RPC client sees the change live and on replay without a\n * new protocol.\n *\n * Unlike the minor-mode, context, and agent-model projections, this entry is\n * NOT a projection: it is transcript, positioned in journal order. A cockpit\n * folding it must keep every occurrence rather than collapsing to the latest\n * one, because a message written before a switch keeps the identity it was\n * written under. Collapsing would rewrite history.\n */\nexport const PO_PROFILE_IDENTITY_ENTRY_TYPE = 'po-profile-identity';\n\n/**\n * Ceiling on the encoded icon, counted on the finished `data:` URL rather than\n * the file, so one number bounds both the journal entry and the transport.\n *\n * An avatar renders at 32 CSS pixels. This much room is already generous, and\n * the cap exists because the entry is replayed with the transcript: an oversize\n * icon is dropped and the persona keeps its name, never failing a profile load.\n */\nexport const PROFILE_ICON_MAX_DATA_URL_LENGTH = 262_144;\n\nconst MAX_PROFILE_NAME_LENGTH = 128;\n\n/**\n * Image types allowed for a persona icon.\n *\n * Deliberately narrower than the cockpit's general media catalog: `image/svg+xml`\n * is excluded because an SVG rendered same-origin executes script, and the icon\n * path comes from user-authored persona front-matter. Do not reconcile this list\n * with the broader media type map.\n */\nexport const PROFILE_ICON_MIME_TYPES = ['image/png', 'image/jpeg', 'image/gif', 'image/webp'] as const;\nexport type ProfileIconMimeType = (typeof PROFILE_ICON_MIME_TYPES)[number];\n\nexport const ProfileIdentityProjectionSchema = Type.Object(\n {\n profile: Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH }),\n name: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_PROFILE_NAME_LENGTH })),\n icon: Type.Optional(Type.String({ minLength: 1, maxLength: PROFILE_ICON_MAX_DATA_URL_LENGTH })),\n },\n { additionalProperties: false },\n);\n\n/** The persona a message was produced under: the profile name, plus optional display name and icon. */\nexport type ProfileIdentityProjection = Static<typeof ProfileIdentityProjectionSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,iCAAiC;;;;;;;;;AAU9C,MAAa,mCAAmC;AAEhD,MAAM,0BAA0B;;;;;;;;;AAUhC,MAAa,0BAA0B;CAAC;CAAa;CAAc;CAAa;AAAY;AAG5F,MAAa,kCAAkC,KAAK,OAClD;CACE,SAAS,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC;CACzE,MAAM,KAAK,SAAS,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAwB,CAAC,CAAC;CACrF,MAAM,KAAK,SAAS,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAiC,CAAC,CAAC;AAChG,GACA,EAAE,sBAAsB,MAAM,CAChC"}
@@ -0,0 +1,27 @@
1
+ const require_protocolContracts = require("./protocolContracts.cjs");
2
+ let typebox = require("typebox");
3
+ let dist_interop_chord_mjs = require("../../../dist/interop/chord.mjs");
4
+ //#region src/schemas/protocolChannelsContract.ts
5
+ const Json = typebox.Type.Unsafe({});
6
+ const ChannelFrameSchema = typebox.Type.Object({
7
+ type: typebox.Type.String({ minLength: 1 }),
8
+ payload: Json
9
+ });
10
+ /** Latest payload per extension channel frame type. */
11
+ const PoChannelsStateSchema = typebox.Type.Record(typebox.Type.String(), Json);
12
+ /** A session's extension channels as seen by one connection. */
13
+ const PoChannelsContract = (0, dist_interop_chord_mjs.remote)("po.channels", {
14
+ version: 1,
15
+ host: (0, dist_interop_chord_mjs.hostNamed)(require_protocolContracts.PO_SERVER_HOST),
16
+ input: typebox.Type.Object({ sessionId: typebox.Type.String({ minLength: 1 }) }),
17
+ variants: { default: {
18
+ state: { latest: PoChannelsStateSchema },
19
+ methods: require_protocolContracts.chordMethods({ receive: { args: ChannelFrameSchema } })
20
+ } }
21
+ });
22
+ //#endregion
23
+ exports.ChannelFrameSchema = ChannelFrameSchema;
24
+ exports.PoChannelsContract = PoChannelsContract;
25
+ exports.PoChannelsStateSchema = PoChannelsStateSchema;
26
+
27
+ //# sourceMappingURL=protocolChannelsContract.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocolChannelsContract.cjs","names":["Type","remote","hostNamed","PO_SERVER_HOST","chordMethods"],"sources":["../../../src/schemas/protocolChannelsContract.ts"],"sourcesContent":["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"],"mappings":";;;;AAMA,MAAM,OAAOA,QAAAA,KAAK,OAAkB,CAAC,CAAC;AAEtC,MAAa,qBAAqBA,QAAAA,KAAK,OAAO;CAAE,MAAMA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;CAAG,SAAS;AAAK,CAAC;;AAEpG,MAAa,wBAAwBA,QAAAA,KAAK,OAAOA,QAAAA,KAAK,OAAO,GAAG,IAAI;;AAGpE,MAAa,sBAAA,GAAqBC,uBAAAA,OAAAA,CAAO,eAAe;CACtD,SAAS;CACT,OAAA,GAAMC,uBAAAA,UAAAA,CAAUC,0BAAAA,cAAc;CAC9B,OAAOH,QAAAA,KAAK,OAAO,EAAE,WAAWA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;CAC/D,UAAU,EACR,SAAS;EACP,OAAO,EAAE,QAAQ,sBAAsB;EACvC,SAASI,0BAAAA,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,EAAE,CAAC;CACjE,EACF;AACF,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { JsonValue as JsonValue$1 } from "./sessionProtocol.mjs";
2
+ import { ChordMethods } from "./protocolContracts.mjs";
3
+ import { Type } from "typebox";
4
+ import { Ref } from "@earendil-works/chord";
5
+ //#region src/schemas/protocolChannelsContract.d.ts
6
+ export declare const ChannelFrameSchema: Type.TObject<{
7
+ type: Type.TString;
8
+ payload: Type.TUnsafe<JsonValue$1>;
9
+ }>;
10
+ /** Latest payload per extension channel frame type. */
11
+ export declare const PoChannelsStateSchema: Type.TRecord<"^.*$", Type.TUnsafe<JsonValue$1>>;
12
+ /** A session's extension channels as seen by one connection. */
13
+ export declare const PoChannelsContract: import("@earendil-works/chord").RemoteContract<{
14
+ readonly version: 1;
15
+ readonly host: import("@earendil-works/chord").HostNamed;
16
+ readonly input: Type.TObject<{
17
+ sessionId: Type.TString;
18
+ }>;
19
+ readonly variants: {
20
+ default: {
21
+ state: {
22
+ latest: Type.TRecord<"^.*$", Type.TUnsafe<JsonValue$1>>;
23
+ };
24
+ methods: ChordMethods<{
25
+ receive: {
26
+ args: Type.TObject<{
27
+ type: Type.TString;
28
+ payload: Type.TUnsafe<JsonValue$1>;
29
+ }>;
30
+ };
31
+ }>;
32
+ };
33
+ };
34
+ }>;
35
+ export type ChannelsRef = Ref<typeof PoChannelsContract>;
36
+ //#endregion
37
+ //# sourceMappingURL=protocolChannelsContract.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocolChannelsContract.d.mts","names":["JsonValue","_$__protocolContracts0.ChordMethods"],"sources":["../../../src/schemas/protocolChannelsContract.ts"],"mappings":";;;;;qBAQa,oBAAkB,KAAA;;;;;qBAElB,uBAAqB,KAAA,gBAAA,KAAA,QAAAA;;qBAGrB,oDAAkB;;;;;;;IAK3B;MACE;QAAS,QAAM,KAAA,gBAAA,KAAA,QAAAA;;MACf,SAAuCC;;UAAJ,MAAI,KAAA;;;;;;;;;YAKjC,cAAc,WAAW"}
@@ -0,0 +1,25 @@
1
+ import { PO_SERVER_HOST, chordMethods } from "./protocolContracts.mjs";
2
+ import { Type } from "typebox";
3
+ import { hostNamed, remote } from "@earendil-works/chord";
4
+ //#region src/schemas/protocolChannelsContract.ts
5
+ const Json = Type.Unsafe({});
6
+ const ChannelFrameSchema = Type.Object({
7
+ type: Type.String({ minLength: 1 }),
8
+ payload: Json
9
+ });
10
+ /** Latest payload per extension channel frame type. */
11
+ const PoChannelsStateSchema = Type.Record(Type.String(), Json);
12
+ /** A session's extension channels as seen by one connection. */
13
+ const PoChannelsContract = remote("po.channels", {
14
+ version: 1,
15
+ host: hostNamed(PO_SERVER_HOST),
16
+ input: Type.Object({ sessionId: Type.String({ minLength: 1 }) }),
17
+ variants: { default: {
18
+ state: { latest: PoChannelsStateSchema },
19
+ methods: chordMethods({ receive: { args: ChannelFrameSchema } })
20
+ } }
21
+ });
22
+ //#endregion
23
+ export { ChannelFrameSchema, PoChannelsContract, PoChannelsStateSchema };
24
+
25
+ //# sourceMappingURL=protocolChannelsContract.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocolChannelsContract.mjs","names":[],"sources":["../../../src/schemas/protocolChannelsContract.ts"],"sourcesContent":["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"],"mappings":";;;;AAMA,MAAM,OAAO,KAAK,OAAkB,CAAC,CAAC;AAEtC,MAAa,qBAAqB,KAAK,OAAO;CAAE,MAAM,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;CAAG,SAAS;AAAK,CAAC;;AAEpG,MAAa,wBAAwB,KAAK,OAAO,KAAK,OAAO,GAAG,IAAI;;AAGpE,MAAa,qBAAqB,OAAO,eAAe;CACtD,SAAS;CACT,MAAM,UAAU,cAAc;CAC9B,OAAO,KAAK,OAAO,EAAE,WAAW,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;CAC/D,UAAU,EACR,SAAS;EACP,OAAO,EAAE,QAAQ,sBAAsB;EACvC,SAAS,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,EAAE,CAAC;CACjE,EACF;AACF,CAAC"}
@@ -0,0 +1,168 @@
1
+ let dist_interop_chord_mjs = require("../../../dist/interop/chord.mjs");
2
+ //#region src/schemas/protocolContracts.ts
3
+ /** Name of the Po server host; every Po contract places its objects on it. */
4
+ const PO_SERVER_HOST = "server";
5
+ /** Chord method specs for a schema table, typed so contracts built from them stay nameable. */
6
+ function chordMethods(schemas) {
7
+ return Object.fromEntries(Object.entries(schemas).map(([name, { args, result }]) => [name, result !== void 0 ? (0, dist_interop_chord_mjs.method)(args, result) : args !== void 0 ? (0, dist_interop_chord_mjs.method)(args) : (0, dist_interop_chord_mjs.method)()]));
8
+ }
9
+ /**
10
+ * A Chord link over any ordered text transport. Feed received text to `deliver` and the
11
+ * transport's end to `ended`.
12
+ */
13
+ function createTextLink(port) {
14
+ let handler;
15
+ let queue = [];
16
+ const closeHandlers = /* @__PURE__ */ new Set();
17
+ let closed = false;
18
+ const ended = (reason) => {
19
+ if (closed) return;
20
+ closed = true;
21
+ queue = [];
22
+ try {
23
+ port.close();
24
+ } finally {
25
+ for (const close of closeHandlers) close(reason);
26
+ closeHandlers.clear();
27
+ }
28
+ };
29
+ const link = {
30
+ get closed() {
31
+ return closed;
32
+ },
33
+ send(frame) {
34
+ if (closed) return void 0;
35
+ const text = JSON.stringify(frame);
36
+ port.send(text);
37
+ return text.length;
38
+ },
39
+ receive(next) {
40
+ handler = next;
41
+ for (const frame of queue.splice(0)) next(frame);
42
+ },
43
+ onClose(close) {
44
+ if (closed) close("closed");
45
+ else closeHandlers.add(close);
46
+ },
47
+ close(reason = "closed") {
48
+ if (closed) return;
49
+ try {
50
+ port.send(JSON.stringify({
51
+ t: "bye",
52
+ reason
53
+ }));
54
+ } catch {}
55
+ ended(reason);
56
+ }
57
+ };
58
+ return {
59
+ link,
60
+ deliver(text) {
61
+ if (closed) return;
62
+ let frame;
63
+ try {
64
+ frame = JSON.parse(text);
65
+ if (frame === null || typeof frame !== "object" || typeof frame.t !== "string") throw new TypeError("not a frame");
66
+ } catch {
67
+ link.close("protocol error");
68
+ return;
69
+ }
70
+ if (frame.t === "bye") {
71
+ ended(frame.reason ?? "peer closed");
72
+ return;
73
+ }
74
+ if (handler === void 0) queue.push(frame);
75
+ else handler(frame);
76
+ },
77
+ ended
78
+ };
79
+ }
80
+ /**
81
+ * Whether `error` means this client's code is older than the server's. Chord refuses a changed contract with
82
+ * `contract_mismatch`, which it reports to a client as `upgrade_required`; another protocol version is reported the
83
+ * same way by `createProtocolClient`. Retrying cannot help, only new client code can.
84
+ */
85
+ function isUpdateRequired(error) {
86
+ return (0, dist_interop_chord_mjs.isChordError)(error, "contract_mismatch") || (0, dist_interop_chord_mjs.isChordError)(error, "upgrade_required");
87
+ }
88
+ function createProtocolClient(options) {
89
+ const host = (0, dist_interop_chord_mjs.createHost)({
90
+ name: options.name ?? "client",
91
+ kind: "client",
92
+ self: { host: true }
93
+ });
94
+ const listeners = /* @__PURE__ */ new Set();
95
+ let current;
96
+ let connecting;
97
+ let disposed = false;
98
+ let updateError;
99
+ const emit = (state) => {
100
+ for (const listener of Array.from(listeners)) listener({ state });
101
+ };
102
+ const reportError = (error) => {
103
+ if (disposed || updateError !== void 0 || !isUpdateRequired(error)) return;
104
+ updateError = error;
105
+ emit("update_required");
106
+ current?.close();
107
+ };
108
+ return {
109
+ host,
110
+ get connected() {
111
+ return current !== void 0 && !current.closed;
112
+ },
113
+ get updateRequired() {
114
+ return updateError !== void 0;
115
+ },
116
+ connect() {
117
+ if (disposed) return Promise.reject(/* @__PURE__ */ new Error("The protocol client is disposed."));
118
+ if (updateError !== void 0) return Promise.reject(updateError);
119
+ if (current !== void 0 && !current.closed) return Promise.resolve();
120
+ connecting ??= (async () => {
121
+ try {
122
+ const link = await options.openLink();
123
+ if (disposed) {
124
+ link.close();
125
+ throw new Error("The protocol client is disposed.");
126
+ }
127
+ current = link;
128
+ link.onClose(() => {
129
+ if (current !== link) return;
130
+ current = void 0;
131
+ emit("disconnected");
132
+ });
133
+ host.connect(link, {
134
+ principal: { host: PO_SERVER_HOST },
135
+ onProtocolMismatch: ({ local, peer }) => reportError(new dist_interop_chord_mjs.ChordError("upgrade_required", `The Po server speaks Chord protocol ${peer}, this client speaks ${local}.`))
136
+ });
137
+ if (!link.closed) emit("connected");
138
+ } finally {
139
+ connecting = void 0;
140
+ }
141
+ })();
142
+ return connecting;
143
+ },
144
+ disconnect() {
145
+ current?.close();
146
+ },
147
+ reportError,
148
+ dispose() {
149
+ if (disposed) return;
150
+ disposed = true;
151
+ current?.close();
152
+ listeners.clear();
153
+ host.close().catch(() => void 0);
154
+ },
155
+ onConnectionStateChange(listener) {
156
+ listeners.add(listener);
157
+ return () => listeners.delete(listener);
158
+ }
159
+ };
160
+ }
161
+ //#endregion
162
+ exports.PO_SERVER_HOST = PO_SERVER_HOST;
163
+ exports.chordMethods = chordMethods;
164
+ exports.createProtocolClient = createProtocolClient;
165
+ exports.createTextLink = createTextLink;
166
+ exports.isUpdateRequired = isUpdateRequired;
167
+
168
+ //# sourceMappingURL=protocolContracts.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocolContracts.cjs","names":["method","isChordError","createHost","ChordError"],"sources":["../../../src/schemas/protocolContracts.ts"],"sourcesContent":["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"],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { TSchema } from "typebox";
2
+ import { Host, Link, method } from "@earendil-works/chord";
3
+ //#region src/schemas/protocolContracts.d.ts
4
+ /** Name of the Po server host; every Po contract places its objects on it. */
5
+ export declare const PO_SERVER_HOST = "server";
6
+ /** One method's argument and result schemas; a missing one means no arguments or a void result. */
7
+ export interface PoMethodSchemas {
8
+ readonly args?: TSchema;
9
+ readonly result?: TSchema;
10
+ }
11
+ /**
12
+ * What Chord's `method(args, result)` returns. Chord keeps `MethodSpec` private, so declaration
13
+ * emit cannot name an inferred `method()` result; this alias can.
14
+ */
15
+ export type ChordMethod<A extends TSchema | undefined, R extends TSchema | undefined> = Omit<ReturnType<typeof method<TSchema, TSchema>>, 'args' | 'result'> & {
16
+ readonly args: A;
17
+ readonly result: R;
18
+ };
19
+ export type ChordMethods<T extends Record<string, PoMethodSchemas>> = { [K in keyof T]: ChordMethod<T[K] extends {
20
+ readonly args: infer A extends TSchema;
21
+ } ? A : undefined, T[K] extends {
22
+ readonly result: infer R extends TSchema;
23
+ } ? R : undefined>; };
24
+ /** Chord method specs for a schema table, typed so contracts built from them stay nameable. */
25
+ export declare function chordMethods<T extends Record<string, PoMethodSchemas>>(schemas: T): ChordMethods<T>;
26
+ /** A transport that carries text messages in order; `send` may be asynchronous (sealing). */
27
+ export interface TextPort {
28
+ send(text: string): void;
29
+ close(): void;
30
+ }
31
+ /**
32
+ * A Chord link over any ordered text transport. Feed received text to `deliver` and the
33
+ * transport's end to `ended`.
34
+ */
35
+ export declare function createTextLink(port: TextPort): {
36
+ link: Link;
37
+ deliver(text: string): void;
38
+ ended(reason: string): void;
39
+ };
40
+ /**
41
+ * Whether `error` means this client's code is older than the server's. Chord refuses a changed contract with
42
+ * `contract_mismatch`, which it reports to a client as `upgrade_required`; another protocol version is reported the
43
+ * same way by `createProtocolClient`. Retrying cannot help, only new client code can.
44
+ */
45
+ export declare function isUpdateRequired(error: unknown): boolean;
46
+ /** `update_required` is heard once, before the closing link's `disconnected`; the client never connects again. */
47
+ export type ProtocolConnectionState = 'connected' | 'disconnected' | 'update_required';
48
+ /** A browser or native Chord client host with one reconnectable link to the Po server. */
49
+ export interface ProtocolClient {
50
+ readonly host: Host;
51
+ readonly connected: boolean;
52
+ /** The server needs newer client code; `connect` rejects from now on. */
53
+ readonly updateRequired: boolean;
54
+ connect(): Promise<void>;
55
+ /** Closes the current link; listeners hear `disconnected`. */
56
+ disconnect(): void;
57
+ /** Hands over the error a held reference ended with; an update-required error stops the client for good. */
58
+ reportError(error: unknown): void;
59
+ dispose(): void;
60
+ onConnectionStateChange(listener: (change: {
61
+ state: ProtocolConnectionState;
62
+ }) => void): () => void;
63
+ }
64
+ export declare function createProtocolClient(options: {
65
+ name?: string;
66
+ openLink: () => Promise<Link>;
67
+ }): ProtocolClient;
68
+ //#endregion
69
+ //# sourceMappingURL=protocolContracts.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocolContracts.d.mts","names":[],"sources":["../../../src/schemas/protocolContracts.ts"],"mappings":";;;;qBAIa;;iBAGI;WACN,OAAO;WACP,SAAS;;;;;;YAOR,YAAY,UAAU,qBAAqB,UAAU,uBAAuB,KACtF,kBAAkB,OAAO,SAAS;WAErB,MAAM;WAAY,QAAQ;;YAE7B,aAAa,UAAU,eAAe,uBAC/C,WAAW,IAAI,YACd,EAAE;WAAsB,YAAY,UAAU;IAAY,eAC1D,EAAE;WAAsB,cAAc,UAAU;IAAY;;wBAKhD,aAAa,UAAU,eAAe,kBAAkB,SAAS,IAAI,aAAa;;iBAUjF;EACf,KAAK;EACL;;;;;;wBAOc,eAAe,MAAM;EACnC,MAAM;EACN,QAAQ;EACR,MAAM;;;;;;;wBA2EQ,iBAAiB;;YAKrB;;iBAGK;WACN,MAAM;WACN;;WAEA;EACT,WAAW;;EAEX;;EAEA,YAAY;EACZ;EACA,wBAAwB,WAAW;IAAU,OAAO;;;wBAGtC,qBAAqB;EAAW;EAAe,gBAAgB,QAAQ;IAAU"}