@agimon-ai/po-core 0.0.0-alpha.0

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 (1218) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  4. package/dist/agentModel.cjs +4 -0
  5. package/dist/agentModel.d.mts +2 -0
  6. package/dist/agentModel.mjs +2 -0
  7. package/dist/apiContracts.cjs +2094 -0
  8. package/dist/apiContracts.cjs.map +1 -0
  9. package/dist/apiContracts.d.mts +1086 -0
  10. package/dist/apiContracts.d.mts.map +1 -0
  11. package/dist/apiContracts.mjs +2074 -0
  12. package/dist/apiContracts.mjs.map +1 -0
  13. package/dist/askUser.cjs +8 -0
  14. package/dist/askUser.d.mts +2 -0
  15. package/dist/askUser.mjs +2 -0
  16. package/dist/authorTools.cjs +5 -0
  17. package/dist/authorTools.d.mts +2 -0
  18. package/dist/authorTools.mjs +2 -0
  19. package/dist/backgroundWork.cjs +9 -0
  20. package/dist/backgroundWork.d.mts +2 -0
  21. package/dist/backgroundWork.mjs +2 -0
  22. package/dist/bundleAssetPolicy.cjs +5 -0
  23. package/dist/bundleAssetPolicy.d.mts +2 -0
  24. package/dist/bundleAssetPolicy.mjs +2 -0
  25. package/dist/childProcess.cjs +15 -0
  26. package/dist/childProcess.d.mts +2 -0
  27. package/dist/childProcess.mjs +2 -0
  28. package/dist/childSession.cjs +9 -0
  29. package/dist/childSession.d.mts +3 -0
  30. package/dist/childSession.mjs +3 -0
  31. package/dist/cockpitContainer.cjs +4 -0
  32. package/dist/cockpitContainer.d.mts +2 -0
  33. package/dist/cockpitContainer.mjs +2 -0
  34. package/dist/config.cjs +13 -0
  35. package/dist/config.d.mts +3 -0
  36. package/dist/config.mjs +2 -0
  37. package/dist/contextApi.cjs +12 -0
  38. package/dist/contextApi.d.mts +4 -0
  39. package/dist/contextApi.mjs +3 -0
  40. package/dist/contextContributions.cjs +7 -0
  41. package/dist/contextContributions.d.mts +3 -0
  42. package/dist/contextContributions.mjs +3 -0
  43. package/dist/contextDetail.cjs +65 -0
  44. package/dist/contextDetail.cjs.map +1 -0
  45. package/dist/contextDetail.d.mts +19 -0
  46. package/dist/contextDetail.d.mts.map +1 -0
  47. package/dist/contextDetail.mjs +64 -0
  48. package/dist/contextDetail.mjs.map +1 -0
  49. package/dist/contextDetailStore.cjs +96 -0
  50. package/dist/contextDetailStore.cjs.map +1 -0
  51. package/dist/contextDetailStore.d.mts +21 -0
  52. package/dist/contextDetailStore.d.mts.map +1 -0
  53. package/dist/contextDetailStore.mjs +87 -0
  54. package/dist/contextDetailStore.mjs.map +1 -0
  55. package/dist/contextProjection.cjs +121 -0
  56. package/dist/contextProjection.cjs.map +1 -0
  57. package/dist/contextProjection.d.mts +130 -0
  58. package/dist/contextProjection.d.mts.map +1 -0
  59. package/dist/contextProjection.mjs +117 -0
  60. package/dist/contextProjection.mjs.map +1 -0
  61. package/dist/cordisHost.cjs +13 -0
  62. package/dist/cordisHost.d.mts +2 -0
  63. package/dist/cordisHost.mjs +2 -0
  64. package/dist/delegation.cjs +18 -0
  65. package/dist/delegation.d.mts +2 -0
  66. package/dist/delegation.mjs +2 -0
  67. package/dist/doomPackage.cjs +61 -0
  68. package/dist/doomPackage.cjs.map +1 -0
  69. package/dist/doomPackage.d.mts +17 -0
  70. package/dist/doomPackage.d.mts.map +1 -0
  71. package/dist/doomPackage.mjs +54 -0
  72. package/dist/doomPackage.mjs.map +1 -0
  73. package/dist/executionBudget.cjs +232 -0
  74. package/dist/executionBudget.cjs.map +1 -0
  75. package/dist/executionBudget.d.mts +11 -0
  76. package/dist/executionBudget.d.mts.map +1 -0
  77. package/dist/executionBudget.mjs +226 -0
  78. package/dist/executionBudget.mjs.map +1 -0
  79. package/dist/extensionFile.cjs +19 -0
  80. package/dist/extensionFile.d.mts +3 -0
  81. package/dist/extensionFile.mjs +2 -0
  82. package/dist/footer.cjs +6 -0
  83. package/dist/footer.d.mts +2 -0
  84. package/dist/footer.mjs +2 -0
  85. package/dist/headless.cjs +16 -0
  86. package/dist/headless.d.mts +2 -0
  87. package/dist/headless.mjs +2 -0
  88. package/dist/headlessHub.cjs +1008 -0
  89. package/dist/headlessHub.cjs.map +1 -0
  90. package/dist/headlessHub.d.mts +176 -0
  91. package/dist/headlessHub.d.mts.map +1 -0
  92. package/dist/headlessHub.mjs +1005 -0
  93. package/dist/headlessHub.mjs.map +1 -0
  94. package/dist/headlessServer.cjs +956 -0
  95. package/dist/headlessServer.cjs.map +1 -0
  96. package/dist/headlessServer.d.mts +66 -0
  97. package/dist/headlessServer.d.mts.map +1 -0
  98. package/dist/headlessServer.mjs +949 -0
  99. package/dist/headlessServer.mjs.map +1 -0
  100. package/dist/headlessSessionHost.cjs +0 -0
  101. package/dist/headlessSessionHost.d.mts +89 -0
  102. package/dist/headlessSessionHost.d.mts.map +1 -0
  103. package/dist/headlessSessionHost.mjs +1 -0
  104. package/dist/headlessSessionManager.cjs +51 -0
  105. package/dist/headlessSessionManager.cjs.map +1 -0
  106. package/dist/headlessSessionManager.d.mts +6 -0
  107. package/dist/headlessSessionManager.d.mts.map +1 -0
  108. package/dist/headlessSessionManager.mjs +50 -0
  109. package/dist/headlessSessionManager.mjs.map +1 -0
  110. package/dist/help.cjs +24 -0
  111. package/dist/help.d.mts +3 -0
  112. package/dist/help.mjs +3 -0
  113. package/dist/history.cjs +25 -0
  114. package/dist/history.d.mts +10 -0
  115. package/dist/history.mjs +10 -0
  116. package/dist/historyOwnership.cjs +253 -0
  117. package/dist/historyOwnership.cjs.map +1 -0
  118. package/dist/historyOwnership.d.mts +23 -0
  119. package/dist/historyOwnership.d.mts.map +1 -0
  120. package/dist/historyOwnership.mjs +247 -0
  121. package/dist/historyOwnership.mjs.map +1 -0
  122. package/dist/hubChannel.cjs +4 -0
  123. package/dist/hubChannel.d.mts +2 -0
  124. package/dist/hubChannel.mjs +2 -0
  125. package/dist/index.cjs +44 -0
  126. package/dist/index.d.mts +6 -0
  127. package/dist/index.mjs +6 -0
  128. package/dist/json.cjs +6 -0
  129. package/dist/json.d.mts +2 -0
  130. package/dist/json.mjs +2 -0
  131. package/dist/jsonlSessionRepo.cjs +44 -0
  132. package/dist/jsonlSessionRepo.cjs.map +1 -0
  133. package/dist/jsonlSessionRepo.d.mts +7 -0
  134. package/dist/jsonlSessionRepo.d.mts.map +1 -0
  135. package/dist/jsonlSessionRepo.mjs +42 -0
  136. package/dist/jsonlSessionRepo.mjs.map +1 -0
  137. package/dist/kernel.cjs +3 -0
  138. package/dist/kernel.d.mts +3 -0
  139. package/dist/kernel.mjs +2 -0
  140. package/dist/leader.cjs +9 -0
  141. package/dist/leader.d.mts +2 -0
  142. package/dist/leader.mjs +2 -0
  143. package/dist/logSinkTelemetry.cjs +5 -0
  144. package/dist/logSinkTelemetry.d.mts +2 -0
  145. package/dist/logSinkTelemetry.mjs +2 -0
  146. package/dist/machineApi.cjs +92 -0
  147. package/dist/machineApi.cjs.map +1 -0
  148. package/dist/machineApi.d.mts +7 -0
  149. package/dist/machineApi.d.mts.map +1 -0
  150. package/dist/machineApi.mjs +88 -0
  151. package/dist/machineApi.mjs.map +1 -0
  152. package/dist/main.cjs +11 -0
  153. package/dist/main.d.mts +5 -0
  154. package/dist/main.mjs +4 -0
  155. package/dist/mcpFacet.cjs +9 -0
  156. package/dist/mcpFacet.d.mts +4 -0
  157. package/dist/mcpFacet.mjs +3 -0
  158. package/dist/mcpProjection.cjs +16 -0
  159. package/dist/mcpProjection.d.mts +2 -0
  160. package/dist/mcpProjection.mjs +2 -0
  161. package/dist/mcpSchemaCost.cjs +195 -0
  162. package/dist/mcpSchemaCost.cjs.map +1 -0
  163. package/dist/mcpSchemaCost.d.mts +35 -0
  164. package/dist/mcpSchemaCost.d.mts.map +1 -0
  165. package/dist/mcpSchemaCost.mjs +190 -0
  166. package/dist/mcpSchemaCost.mjs.map +1 -0
  167. package/dist/mcpSession.cjs +9 -0
  168. package/dist/mcpSession.d.mts +2 -0
  169. package/dist/mcpSession.mjs +2 -0
  170. package/dist/mcpStatus.cjs +7 -0
  171. package/dist/mcpStatus.d.mts +2 -0
  172. package/dist/mcpStatus.mjs +2 -0
  173. package/dist/mcpToolResolver.cjs +5 -0
  174. package/dist/mcpToolResolver.d.mts +2 -0
  175. package/dist/mcpToolResolver.mjs +2 -0
  176. package/dist/mcpWidget.cjs +0 -0
  177. package/dist/mcpWidget.d.mts +2 -0
  178. package/dist/mcpWidget.mjs +1 -0
  179. package/dist/moduleResolution.cjs +412 -0
  180. package/dist/moduleResolution.cjs.map +1 -0
  181. package/dist/moduleResolution.d.mts +72 -0
  182. package/dist/moduleResolution.d.mts.map +1 -0
  183. package/dist/moduleResolution.mjs +396 -0
  184. package/dist/moduleResolution.mjs.map +1 -0
  185. package/dist/narration.cjs +10 -0
  186. package/dist/narration.d.mts +2 -0
  187. package/dist/narration.mjs +2 -0
  188. package/dist/native.cjs +29 -0
  189. package/dist/native.d.mts +12 -0
  190. package/dist/native.mjs +8 -0
  191. package/dist/notification.cjs +17 -0
  192. package/dist/notification.d.mts +2 -0
  193. package/dist/notification.mjs +2 -0
  194. package/dist/packageApi.cjs +17 -0
  195. package/dist/packageApi.d.mts +3 -0
  196. package/dist/packageApi.mjs +3 -0
  197. package/dist/packageApiServer.cjs +196 -0
  198. package/dist/packageApiServer.cjs.map +1 -0
  199. package/dist/packageApiServer.d.mts +62 -0
  200. package/dist/packageApiServer.d.mts.map +1 -0
  201. package/dist/packageApiServer.mjs +194 -0
  202. package/dist/packageApiServer.mjs.map +1 -0
  203. package/dist/piSettings.cjs +20 -0
  204. package/dist/piSettings.d.mts +2 -0
  205. package/dist/piSettings.mjs +2 -0
  206. package/dist/pluginProtocol.cjs +10 -0
  207. package/dist/pluginProtocol.d.mts +2 -0
  208. package/dist/pluginProtocol.mjs +2 -0
  209. package/dist/profileIdentity.cjs +6 -0
  210. package/dist/profileIdentity.d.mts +2 -0
  211. package/dist/profileIdentity.mjs +2 -0
  212. package/dist/protocol.cjs +10 -0
  213. package/dist/protocol.d.mts +2 -0
  214. package/dist/protocol.mjs +2 -0
  215. package/dist/readiness.cjs +8 -0
  216. package/dist/readiness.d.mts +2 -0
  217. package/dist/readiness.mjs +2 -0
  218. package/dist/remoteApi.cjs +45 -0
  219. package/dist/remoteApi.cjs.map +1 -0
  220. package/dist/remoteApi.d.mts +7 -0
  221. package/dist/remoteApi.d.mts.map +1 -0
  222. package/dist/remoteApi.mjs +44 -0
  223. package/dist/remoteApi.mjs.map +1 -0
  224. package/dist/remoteRuntime.cjs +498 -0
  225. package/dist/remoteRuntime.cjs.map +1 -0
  226. package/dist/remoteRuntime.d.mts +36 -0
  227. package/dist/remoteRuntime.d.mts.map +1 -0
  228. package/dist/remoteRuntime.mjs +494 -0
  229. package/dist/remoteRuntime.mjs.map +1 -0
  230. package/dist/runtimeConfig.cjs +232 -0
  231. package/dist/runtimeConfig.cjs.map +1 -0
  232. package/dist/runtimeConfig.d.mts +313 -0
  233. package/dist/runtimeConfig.d.mts.map +1 -0
  234. package/dist/runtimeConfig.mjs +221 -0
  235. package/dist/runtimeConfig.mjs.map +1 -0
  236. package/dist/runtimeContextApi.cjs +64 -0
  237. package/dist/runtimeContextApi.cjs.map +1 -0
  238. package/dist/runtimeContextApi.d.mts +16 -0
  239. package/dist/runtimeContextApi.d.mts.map +1 -0
  240. package/dist/runtimeContextApi.mjs +62 -0
  241. package/dist/runtimeContextApi.mjs.map +1 -0
  242. package/dist/runtimeCordisHost.cjs +223 -0
  243. package/dist/runtimeCordisHost.cjs.map +1 -0
  244. package/dist/runtimeCordisHost.d.mts +78 -0
  245. package/dist/runtimeCordisHost.d.mts.map +1 -0
  246. package/dist/runtimeCordisHost.mjs +212 -0
  247. package/dist/runtimeCordisHost.mjs.map +1 -0
  248. package/dist/runtimeHeadlessSessionManager.cjs +0 -0
  249. package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
  250. package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
  251. package/dist/runtimeHeadlessSessionManager.mjs +1 -0
  252. package/dist/runtimeIdentity.cjs +26 -0
  253. package/dist/runtimeIdentity.cjs.map +1 -0
  254. package/dist/runtimeIdentity.d.mts +7 -0
  255. package/dist/runtimeIdentity.d.mts.map +1 -0
  256. package/dist/runtimeIdentity.mjs +21 -0
  257. package/dist/runtimeIdentity.mjs.map +1 -0
  258. package/dist/runtimeJson.cjs +46 -0
  259. package/dist/runtimeJson.cjs.map +1 -0
  260. package/dist/runtimeJson.d.mts +22 -0
  261. package/dist/runtimeJson.d.mts.map +1 -0
  262. package/dist/runtimeJson.mjs +39 -0
  263. package/dist/runtimeJson.mjs.map +1 -0
  264. package/dist/runtimeLogSinkTelemetry.cjs +102 -0
  265. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
  266. package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
  267. package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
  268. package/dist/runtimeLogSinkTelemetry.mjs +99 -0
  269. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
  270. package/dist/runtimePackages.cjs +120 -0
  271. package/dist/runtimePackages.cjs.map +1 -0
  272. package/dist/runtimePackages.d.mts +57 -0
  273. package/dist/runtimePackages.d.mts.map +1 -0
  274. package/dist/runtimePackages.mjs +110 -0
  275. package/dist/runtimePackages.mjs.map +1 -0
  276. package/dist/runtimePiSettings.cjs +257 -0
  277. package/dist/runtimePiSettings.cjs.map +1 -0
  278. package/dist/runtimePiSettings.d.mts +70 -0
  279. package/dist/runtimePiSettings.d.mts.map +1 -0
  280. package/dist/runtimePiSettings.mjs +235 -0
  281. package/dist/runtimePiSettings.mjs.map +1 -0
  282. package/dist/runtimeProtocol.cjs +228 -0
  283. package/dist/runtimeProtocol.cjs.map +1 -0
  284. package/dist/runtimeProtocol.d.mts +86 -0
  285. package/dist/runtimeProtocol.d.mts.map +1 -0
  286. package/dist/runtimeProtocol.mjs +219 -0
  287. package/dist/runtimeProtocol.mjs.map +1 -0
  288. package/dist/runtimeToolNames.cjs +51 -0
  289. package/dist/runtimeToolNames.cjs.map +1 -0
  290. package/dist/runtimeToolNames.d.mts +24 -0
  291. package/dist/runtimeToolNames.d.mts.map +1 -0
  292. package/dist/runtimeToolNames.mjs +49 -0
  293. package/dist/runtimeToolNames.mjs.map +1 -0
  294. package/dist/runtimeTransition.cjs +27 -0
  295. package/dist/runtimeTransition.cjs.map +1 -0
  296. package/dist/runtimeTransition.d.mts +114 -0
  297. package/dist/runtimeTransition.d.mts.map +1 -0
  298. package/dist/runtimeTransition.mjs +24 -0
  299. package/dist/runtimeTransition.mjs.map +1 -0
  300. package/dist/sandboxHarness.cjs +6 -0
  301. package/dist/sandboxHarness.d.mts +2 -0
  302. package/dist/sandboxHarness.mjs +2 -0
  303. package/dist/server.cjs +17 -0
  304. package/dist/server.d.mts +10 -0
  305. package/dist/server.mjs +7 -0
  306. package/dist/serverFacet.cjs +34 -0
  307. package/dist/serverFacet.d.mts +10 -0
  308. package/dist/serverFacet.mjs +9 -0
  309. package/dist/serverTelemetry.cjs +25 -0
  310. package/dist/serverTelemetry.cjs.map +1 -0
  311. package/dist/serverTelemetry.d.mts +12 -0
  312. package/dist/serverTelemetry.d.mts.map +1 -0
  313. package/dist/serverTelemetry.mjs +23 -0
  314. package/dist/serverTelemetry.mjs.map +1 -0
  315. package/dist/sessionFilesApi.cjs +96 -0
  316. package/dist/sessionFilesApi.cjs.map +1 -0
  317. package/dist/sessionFilesApi.d.mts +7 -0
  318. package/dist/sessionFilesApi.d.mts.map +1 -0
  319. package/dist/sessionFilesApi.mjs +91 -0
  320. package/dist/sessionFilesApi.mjs.map +1 -0
  321. package/dist/sessionMcp.cjs +6 -0
  322. package/dist/sessionMcp.d.mts +5 -0
  323. package/dist/sessionMcp.mjs +3 -0
  324. package/dist/sessionProtocol.cjs +8 -0
  325. package/dist/sessionProtocol.d.mts +3 -0
  326. package/dist/sessionProtocol.mjs +2 -0
  327. package/dist/skills.cjs +9 -0
  328. package/dist/skills.d.mts +2 -0
  329. package/dist/skills.mjs +2 -0
  330. package/dist/sqliteSessionStorage.cjs +168 -0
  331. package/dist/sqliteSessionStorage.cjs.map +1 -0
  332. package/dist/sqliteSessionStorage.d.mts +35 -0
  333. package/dist/sqliteSessionStorage.d.mts.map +1 -0
  334. package/dist/sqliteSessionStorage.mjs +158 -0
  335. package/dist/sqliteSessionStorage.mjs.map +1 -0
  336. package/dist/src/constants/authorTools.cjs +10 -0
  337. package/dist/src/constants/authorTools.cjs.map +1 -0
  338. package/dist/src/constants/authorTools.d.mts +6 -0
  339. package/dist/src/constants/authorTools.d.mts.map +1 -0
  340. package/dist/src/constants/authorTools.mjs +8 -0
  341. package/dist/src/constants/authorTools.mjs.map +1 -0
  342. package/dist/src/constants/contextApi.cjs +31 -0
  343. package/dist/src/constants/contextApi.cjs.map +1 -0
  344. package/dist/src/constants/contextApi.d.mts +23 -0
  345. package/dist/src/constants/contextApi.d.mts.map +1 -0
  346. package/dist/src/constants/contextApi.mjs +25 -0
  347. package/dist/src/constants/contextApi.mjs.map +1 -0
  348. package/dist/src/constants/nativeHost.cjs +56 -0
  349. package/dist/src/constants/nativeHost.cjs.map +1 -0
  350. package/dist/src/constants/nativeHost.d.mts +21 -0
  351. package/dist/src/constants/nativeHost.d.mts.map +1 -0
  352. package/dist/src/constants/nativeHost.mjs +53 -0
  353. package/dist/src/constants/nativeHost.mjs.map +1 -0
  354. package/dist/src/constants/remote.cjs +132 -0
  355. package/dist/src/constants/remote.cjs.map +1 -0
  356. package/dist/src/constants/remote.mjs +99 -0
  357. package/dist/src/constants/remote.mjs.map +1 -0
  358. package/dist/src/constants/sessionFiles.cjs +27 -0
  359. package/dist/src/constants/sessionFiles.cjs.map +1 -0
  360. package/dist/src/constants/sessionFiles.mjs +25 -0
  361. package/dist/src/constants/sessionFiles.mjs.map +1 -0
  362. package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
  363. package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
  364. package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
  365. package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
  366. package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
  367. package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
  368. package/dist/src/constants/voiceTools.cjs +96 -0
  369. package/dist/src/constants/voiceTools.cjs.map +1 -0
  370. package/dist/src/constants/voiceTools.d.mts +58 -0
  371. package/dist/src/constants/voiceTools.d.mts.map +1 -0
  372. package/dist/src/constants/voiceTools.mjs +60 -0
  373. package/dist/src/constants/voiceTools.mjs.map +1 -0
  374. package/dist/src/extensions/extensionFile.cjs +140 -0
  375. package/dist/src/extensions/extensionFile.cjs.map +1 -0
  376. package/dist/src/extensions/extensionFile.d.mts +69 -0
  377. package/dist/src/extensions/extensionFile.d.mts.map +1 -0
  378. package/dist/src/extensions/extensionFile.mjs +124 -0
  379. package/dist/src/extensions/extensionFile.mjs.map +1 -0
  380. package/dist/src/extensions/serverPlugin.cjs +107 -0
  381. package/dist/src/extensions/serverPlugin.cjs.map +1 -0
  382. package/dist/src/extensions/serverPlugin.d.mts +5 -0
  383. package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
  384. package/dist/src/extensions/serverPlugin.mjs +107 -0
  385. package/dist/src/extensions/serverPlugin.mjs.map +1 -0
  386. package/dist/src/extensions/webPlugin.cjs +136 -0
  387. package/dist/src/extensions/webPlugin.cjs.map +1 -0
  388. package/dist/src/extensions/webPlugin.d.mts +68 -0
  389. package/dist/src/extensions/webPlugin.d.mts.map +1 -0
  390. package/dist/src/extensions/webPlugin.mjs +114 -0
  391. package/dist/src/extensions/webPlugin.mjs.map +1 -0
  392. package/dist/src/pi/piSessionRuntime.cjs +625 -0
  393. package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
  394. package/dist/src/pi/piSessionRuntime.d.mts +43 -0
  395. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
  396. package/dist/src/pi/piSessionRuntime.mjs +624 -0
  397. package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
  398. package/dist/src/pi/piWebSocketListener.cjs +115 -0
  399. package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
  400. package/dist/src/pi/piWebSocketListener.mjs +115 -0
  401. package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
  402. package/dist/src/schemas/agentModel.cjs +33 -0
  403. package/dist/src/schemas/agentModel.cjs.map +1 -0
  404. package/dist/src/schemas/agentModel.d.mts +26 -0
  405. package/dist/src/schemas/agentModel.d.mts.map +1 -0
  406. package/dist/src/schemas/agentModel.mjs +32 -0
  407. package/dist/src/schemas/agentModel.mjs.map +1 -0
  408. package/dist/src/schemas/apiContracts.d.mts +58 -0
  409. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  410. package/dist/src/schemas/askUser.cjs +42 -0
  411. package/dist/src/schemas/askUser.cjs.map +1 -0
  412. package/dist/src/schemas/askUser.d.mts +47 -0
  413. package/dist/src/schemas/askUser.d.mts.map +1 -0
  414. package/dist/src/schemas/askUser.mjs +37 -0
  415. package/dist/src/schemas/askUser.mjs.map +1 -0
  416. package/dist/src/schemas/backgroundWork.cjs +44 -0
  417. package/dist/src/schemas/backgroundWork.cjs.map +1 -0
  418. package/dist/src/schemas/backgroundWork.d.mts +76 -0
  419. package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
  420. package/dist/src/schemas/backgroundWork.mjs +38 -0
  421. package/dist/src/schemas/backgroundWork.mjs.map +1 -0
  422. package/dist/src/schemas/childProcess.cjs +67 -0
  423. package/dist/src/schemas/childProcess.cjs.map +1 -0
  424. package/dist/src/schemas/childProcess.d.mts +30 -0
  425. package/dist/src/schemas/childProcess.d.mts.map +1 -0
  426. package/dist/src/schemas/childProcess.mjs +55 -0
  427. package/dist/src/schemas/childProcess.mjs.map +1 -0
  428. package/dist/src/schemas/cockpitContainer.cjs +31 -0
  429. package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
  430. package/dist/src/schemas/cockpitContainer.d.mts +80 -0
  431. package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
  432. package/dist/src/schemas/cockpitContainer.mjs +30 -0
  433. package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
  434. package/dist/src/schemas/contextContributions.cjs +17 -0
  435. package/dist/src/schemas/contextContributions.cjs.map +1 -0
  436. package/dist/src/schemas/contextContributions.d.mts +49 -0
  437. package/dist/src/schemas/contextContributions.d.mts.map +1 -0
  438. package/dist/src/schemas/contextContributions.mjs +15 -0
  439. package/dist/src/schemas/contextContributions.mjs.map +1 -0
  440. package/dist/src/schemas/delegation.cjs +91 -0
  441. package/dist/src/schemas/delegation.cjs.map +1 -0
  442. package/dist/src/schemas/delegation.d.mts +95 -0
  443. package/dist/src/schemas/delegation.d.mts.map +1 -0
  444. package/dist/src/schemas/delegation.mjs +76 -0
  445. package/dist/src/schemas/delegation.mjs.map +1 -0
  446. package/dist/src/schemas/extensionFile.d.mts +116 -0
  447. package/dist/src/schemas/extensionFile.d.mts.map +1 -0
  448. package/dist/src/schemas/footer.cjs +48 -0
  449. package/dist/src/schemas/footer.cjs.map +1 -0
  450. package/dist/src/schemas/footer.d.mts +48 -0
  451. package/dist/src/schemas/footer.d.mts.map +1 -0
  452. package/dist/src/schemas/footer.mjs +45 -0
  453. package/dist/src/schemas/footer.mjs.map +1 -0
  454. package/dist/src/schemas/headless.cjs +97 -0
  455. package/dist/src/schemas/headless.cjs.map +1 -0
  456. package/dist/src/schemas/headless.d.mts +472 -0
  457. package/dist/src/schemas/headless.d.mts.map +1 -0
  458. package/dist/src/schemas/headless.mjs +84 -0
  459. package/dist/src/schemas/headless.mjs.map +1 -0
  460. package/dist/src/schemas/help.cjs +281 -0
  461. package/dist/src/schemas/help.cjs.map +1 -0
  462. package/dist/src/schemas/help.d.mts +119 -0
  463. package/dist/src/schemas/help.d.mts.map +1 -0
  464. package/dist/src/schemas/help.mjs +262 -0
  465. package/dist/src/schemas/help.mjs.map +1 -0
  466. package/dist/src/schemas/hubChannel.cjs +20 -0
  467. package/dist/src/schemas/hubChannel.cjs.map +1 -0
  468. package/dist/src/schemas/hubChannel.d.mts +271 -0
  469. package/dist/src/schemas/hubChannel.d.mts.map +1 -0
  470. package/dist/src/schemas/hubChannel.mjs +19 -0
  471. package/dist/src/schemas/hubChannel.mjs.map +1 -0
  472. package/dist/src/schemas/leader.cjs +57 -0
  473. package/dist/src/schemas/leader.cjs.map +1 -0
  474. package/dist/src/schemas/leader.d.mts +107 -0
  475. package/dist/src/schemas/leader.d.mts.map +1 -0
  476. package/dist/src/schemas/leader.mjs +51 -0
  477. package/dist/src/schemas/leader.mjs.map +1 -0
  478. package/dist/src/schemas/mcpBundle.d.mts +13 -0
  479. package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
  480. package/dist/src/schemas/mcpFacet.cjs +24 -0
  481. package/dist/src/schemas/mcpFacet.cjs.map +1 -0
  482. package/dist/src/schemas/mcpFacet.d.mts +91 -0
  483. package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
  484. package/dist/src/schemas/mcpFacet.mjs +21 -0
  485. package/dist/src/schemas/mcpFacet.mjs.map +1 -0
  486. package/dist/src/schemas/mcpProjection.cjs +117 -0
  487. package/dist/src/schemas/mcpProjection.cjs.map +1 -0
  488. package/dist/src/schemas/mcpProjection.d.mts +124 -0
  489. package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
  490. package/dist/src/schemas/mcpProjection.mjs +104 -0
  491. package/dist/src/schemas/mcpProjection.mjs.map +1 -0
  492. package/dist/src/schemas/mcpSession.cjs +57 -0
  493. package/dist/src/schemas/mcpSession.cjs.map +1 -0
  494. package/dist/src/schemas/mcpSession.d.mts +57 -0
  495. package/dist/src/schemas/mcpSession.d.mts.map +1 -0
  496. package/dist/src/schemas/mcpSession.mjs +51 -0
  497. package/dist/src/schemas/mcpSession.mjs.map +1 -0
  498. package/dist/src/schemas/mcpStatus.cjs +52 -0
  499. package/dist/src/schemas/mcpStatus.cjs.map +1 -0
  500. package/dist/src/schemas/mcpStatus.d.mts +73 -0
  501. package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
  502. package/dist/src/schemas/mcpStatus.mjs +48 -0
  503. package/dist/src/schemas/mcpStatus.mjs.map +1 -0
  504. package/dist/src/schemas/mcpToolResolver.cjs +17 -0
  505. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
  506. package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
  507. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
  508. package/dist/src/schemas/mcpToolResolver.mjs +15 -0
  509. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
  510. package/dist/src/schemas/narration.cjs +54 -0
  511. package/dist/src/schemas/narration.cjs.map +1 -0
  512. package/dist/src/schemas/narration.d.mts +29 -0
  513. package/dist/src/schemas/narration.d.mts.map +1 -0
  514. package/dist/src/schemas/narration.mjs +47 -0
  515. package/dist/src/schemas/narration.mjs.map +1 -0
  516. package/dist/src/schemas/notification.cjs +122 -0
  517. package/dist/src/schemas/notification.cjs.map +1 -0
  518. package/dist/src/schemas/notification.d.mts +48 -0
  519. package/dist/src/schemas/notification.d.mts.map +1 -0
  520. package/dist/src/schemas/notification.mjs +108 -0
  521. package/dist/src/schemas/notification.mjs.map +1 -0
  522. package/dist/src/schemas/packageApi.cjs +76 -0
  523. package/dist/src/schemas/packageApi.cjs.map +1 -0
  524. package/dist/src/schemas/packageApi.d.mts +302 -0
  525. package/dist/src/schemas/packageApi.d.mts.map +1 -0
  526. package/dist/src/schemas/packageApi.mjs +66 -0
  527. package/dist/src/schemas/packageApi.mjs.map +1 -0
  528. package/dist/src/schemas/pluginContributions.cjs +19 -0
  529. package/dist/src/schemas/pluginContributions.cjs.map +1 -0
  530. package/dist/src/schemas/pluginContributions.d.mts +56 -0
  531. package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
  532. package/dist/src/schemas/pluginContributions.mjs +18 -0
  533. package/dist/src/schemas/pluginContributions.mjs.map +1 -0
  534. package/dist/src/schemas/pluginProtocol.cjs +103 -0
  535. package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
  536. package/dist/src/schemas/pluginProtocol.d.mts +70 -0
  537. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
  538. package/dist/src/schemas/pluginProtocol.mjs +96 -0
  539. package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
  540. package/dist/src/schemas/profileIdentity.cjs +67 -0
  541. package/dist/src/schemas/profileIdentity.cjs.map +1 -0
  542. package/dist/src/schemas/profileIdentity.d.mts +50 -0
  543. package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
  544. package/dist/src/schemas/profileIdentity.mjs +64 -0
  545. package/dist/src/schemas/profileIdentity.mjs.map +1 -0
  546. package/dist/src/schemas/readiness.cjs +251 -0
  547. package/dist/src/schemas/readiness.cjs.map +1 -0
  548. package/dist/src/schemas/readiness.d.mts +84 -0
  549. package/dist/src/schemas/readiness.d.mts.map +1 -0
  550. package/dist/src/schemas/readiness.mjs +246 -0
  551. package/dist/src/schemas/readiness.mjs.map +1 -0
  552. package/dist/src/schemas/sandboxHarness.cjs +29 -0
  553. package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
  554. package/dist/src/schemas/sandboxHarness.d.mts +39 -0
  555. package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
  556. package/dist/src/schemas/sandboxHarness.mjs +26 -0
  557. package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
  558. package/dist/src/schemas/serverBundle.d.mts +19 -0
  559. package/dist/src/schemas/serverBundle.d.mts.map +1 -0
  560. package/dist/src/schemas/serverFacet.cjs +111 -0
  561. package/dist/src/schemas/serverFacet.cjs.map +1 -0
  562. package/dist/src/schemas/serverFacet.d.mts +152 -0
  563. package/dist/src/schemas/serverFacet.d.mts.map +1 -0
  564. package/dist/src/schemas/serverFacet.mjs +101 -0
  565. package/dist/src/schemas/serverFacet.mjs.map +1 -0
  566. package/dist/src/schemas/sessionMcpActivity.d.mts +47 -0
  567. package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
  568. package/dist/src/schemas/sessionProtocol.cjs +17 -0
  569. package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
  570. package/dist/src/schemas/sessionProtocol.d.mts +313 -0
  571. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
  572. package/dist/src/schemas/sessionProtocol.mjs +12 -0
  573. package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
  574. package/dist/src/schemas/sessionUpdates.d.mts +34 -0
  575. package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
  576. package/dist/src/schemas/skills.cjs +115 -0
  577. package/dist/src/schemas/skills.cjs.map +1 -0
  578. package/dist/src/schemas/skills.d.mts +65 -0
  579. package/dist/src/schemas/skills.d.mts.map +1 -0
  580. package/dist/src/schemas/skills.mjs +109 -0
  581. package/dist/src/schemas/skills.mjs.map +1 -0
  582. package/dist/src/schemas/toolOverrides.cjs +17 -0
  583. package/dist/src/schemas/toolOverrides.cjs.map +1 -0
  584. package/dist/src/schemas/toolOverrides.d.mts +29 -0
  585. package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
  586. package/dist/src/schemas/toolOverrides.mjs +15 -0
  587. package/dist/src/schemas/toolOverrides.mjs.map +1 -0
  588. package/dist/src/schemas/toolSurface.cjs +17 -0
  589. package/dist/src/schemas/toolSurface.cjs.map +1 -0
  590. package/dist/src/schemas/toolSurface.d.mts +70 -0
  591. package/dist/src/schemas/toolSurface.d.mts.map +1 -0
  592. package/dist/src/schemas/toolSurface.mjs +15 -0
  593. package/dist/src/schemas/toolSurface.mjs.map +1 -0
  594. package/dist/src/schemas/uiHub.cjs +17 -0
  595. package/dist/src/schemas/uiHub.cjs.map +1 -0
  596. package/dist/src/schemas/uiHub.d.mts +23 -0
  597. package/dist/src/schemas/uiHub.d.mts.map +1 -0
  598. package/dist/src/schemas/uiHub.mjs +15 -0
  599. package/dist/src/schemas/uiHub.mjs.map +1 -0
  600. package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
  601. package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
  602. package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
  603. package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
  604. package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
  605. package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
  606. package/dist/src/schemas/voiceTools.cjs +205 -0
  607. package/dist/src/schemas/voiceTools.cjs.map +1 -0
  608. package/dist/src/schemas/voiceTools.d.mts +120 -0
  609. package/dist/src/schemas/voiceTools.d.mts.map +1 -0
  610. package/dist/src/schemas/voiceTools.mjs +194 -0
  611. package/dist/src/schemas/voiceTools.mjs.map +1 -0
  612. package/dist/src/server/devProxyForward.cjs +141 -0
  613. package/dist/src/server/devProxyForward.cjs.map +1 -0
  614. package/dist/src/server/devProxyForward.mjs +139 -0
  615. package/dist/src/server/devProxyForward.mjs.map +1 -0
  616. package/dist/src/server/devProxyRoutes.cjs +97 -0
  617. package/dist/src/server/devProxyRoutes.cjs.map +1 -0
  618. package/dist/src/server/devProxyRoutes.mjs +97 -0
  619. package/dist/src/server/devProxyRoutes.mjs.map +1 -0
  620. package/dist/src/server/devProxySocket.cjs +93 -0
  621. package/dist/src/server/devProxySocket.cjs.map +1 -0
  622. package/dist/src/server/devProxySocket.d.mts +25 -0
  623. package/dist/src/server/devProxySocket.d.mts.map +1 -0
  624. package/dist/src/server/devProxySocket.mjs +93 -0
  625. package/dist/src/server/devProxySocket.mjs.map +1 -0
  626. package/dist/src/server/directHarnessRuntime.cjs +2387 -0
  627. package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
  628. package/dist/src/server/directHarnessRuntime.d.mts +4 -0
  629. package/dist/src/server/directHarnessRuntime.mjs +2384 -0
  630. package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
  631. package/dist/src/server/harnessErrorMessage.cjs +13 -0
  632. package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
  633. package/dist/src/server/harnessErrorMessage.mjs +13 -0
  634. package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
  635. package/dist/src/server/headlessProtocol.cjs +382 -0
  636. package/dist/src/server/headlessProtocol.cjs.map +1 -0
  637. package/dist/src/server/headlessProtocol.mjs +382 -0
  638. package/dist/src/server/headlessProtocol.mjs.map +1 -0
  639. package/dist/src/server/liveImport.cjs +37 -0
  640. package/dist/src/server/liveImport.cjs.map +1 -0
  641. package/dist/src/server/liveImport.d.mts +27 -0
  642. package/dist/src/server/liveImport.d.mts.map +1 -0
  643. package/dist/src/server/liveImport.mjs +34 -0
  644. package/dist/src/server/liveImport.mjs.map +1 -0
  645. package/dist/src/server/mcpBundleLoader.cjs +108 -0
  646. package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
  647. package/dist/src/server/mcpBundleLoader.d.mts +46 -0
  648. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
  649. package/dist/src/server/mcpBundleLoader.mjs +107 -0
  650. package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
  651. package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
  652. package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
  653. package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
  654. package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
  655. package/dist/src/server/remoteRoutes.cjs +463 -0
  656. package/dist/src/server/remoteRoutes.cjs.map +1 -0
  657. package/dist/src/server/remoteRoutes.mjs +463 -0
  658. package/dist/src/server/remoteRoutes.mjs.map +1 -0
  659. package/dist/src/server/serverFacetLoader.cjs +214 -0
  660. package/dist/src/server/serverFacetLoader.cjs.map +1 -0
  661. package/dist/src/server/serverFacetLoader.d.mts +72 -0
  662. package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
  663. package/dist/src/server/serverFacetLoader.mjs +212 -0
  664. package/dist/src/server/serverFacetLoader.mjs.map +1 -0
  665. package/dist/src/server/sessionMcpHandler.cjs +585 -0
  666. package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
  667. package/dist/src/server/sessionMcpHandler.d.mts +50 -0
  668. package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
  669. package/dist/src/server/sessionMcpHandler.mjs +582 -0
  670. package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
  671. package/dist/src/server/sessionMcpRoutes.cjs +809 -0
  672. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
  673. package/dist/src/server/sessionMcpRoutes.mjs +804 -0
  674. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
  675. package/dist/src/server/threadJournals.cjs +172 -0
  676. package/dist/src/server/threadJournals.cjs.map +1 -0
  677. package/dist/src/server/threadJournals.mjs +169 -0
  678. package/dist/src/server/threadJournals.mjs.map +1 -0
  679. package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
  680. package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
  681. package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
  682. package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
  683. package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
  684. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
  685. package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
  686. package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
  687. package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
  688. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
  689. package/dist/src/services/bundlePublication/index.cjs +89 -0
  690. package/dist/src/services/bundlePublication/index.cjs.map +1 -0
  691. package/dist/src/services/bundlePublication/index.mjs +86 -0
  692. package/dist/src/services/bundlePublication/index.mjs.map +1 -0
  693. package/dist/src/services/contextApiUrls/index.cjs +53 -0
  694. package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
  695. package/dist/src/services/contextApiUrls/index.d.mts +8 -0
  696. package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
  697. package/dist/src/services/contextApiUrls/index.mjs +52 -0
  698. package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
  699. package/dist/src/services/contextContributions/index.cjs +79 -0
  700. package/dist/src/services/contextContributions/index.cjs.map +1 -0
  701. package/dist/src/services/contextContributions/index.d.mts +6 -0
  702. package/dist/src/services/contextContributions/index.d.mts.map +1 -0
  703. package/dist/src/services/contextContributions/index.mjs +79 -0
  704. package/dist/src/services/contextContributions/index.mjs.map +1 -0
  705. package/dist/src/services/contextUsage/index.cjs +27 -0
  706. package/dist/src/services/contextUsage/index.cjs.map +1 -0
  707. package/dist/src/services/contextUsage/index.mjs +25 -0
  708. package/dist/src/services/contextUsage/index.mjs.map +1 -0
  709. package/dist/src/services/devProxyPolicy/index.cjs +168 -0
  710. package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
  711. package/dist/src/services/devProxyPolicy/index.mjs +165 -0
  712. package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
  713. package/dist/src/services/devProxyStore/index.cjs +107 -0
  714. package/dist/src/services/devProxyStore/index.cjs.map +1 -0
  715. package/dist/src/services/devProxyStore/index.mjs +104 -0
  716. package/dist/src/services/devProxyStore/index.mjs.map +1 -0
  717. package/dist/src/services/deviceAuth/index.cjs +146 -0
  718. package/dist/src/services/deviceAuth/index.cjs.map +1 -0
  719. package/dist/src/services/deviceAuth/index.d.mts +9 -0
  720. package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
  721. package/dist/src/services/deviceAuth/index.mjs +146 -0
  722. package/dist/src/services/deviceAuth/index.mjs.map +1 -0
  723. package/dist/src/services/deviceSessions/index.cjs +147 -0
  724. package/dist/src/services/deviceSessions/index.cjs.map +1 -0
  725. package/dist/src/services/deviceSessions/index.d.mts +18 -0
  726. package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
  727. package/dist/src/services/deviceSessions/index.mjs +141 -0
  728. package/dist/src/services/deviceSessions/index.mjs.map +1 -0
  729. package/dist/src/services/deviceTrust/index.cjs +294 -0
  730. package/dist/src/services/deviceTrust/index.cjs.map +1 -0
  731. package/dist/src/services/deviceTrust/index.mjs +282 -0
  732. package/dist/src/services/deviceTrust/index.mjs.map +1 -0
  733. package/dist/src/services/durableNavigation/index.cjs +46 -0
  734. package/dist/src/services/durableNavigation/index.cjs.map +1 -0
  735. package/dist/src/services/durableNavigation/index.mjs +45 -0
  736. package/dist/src/services/durableNavigation/index.mjs.map +1 -0
  737. package/dist/src/services/headlessClient/index.cjs +126 -0
  738. package/dist/src/services/headlessClient/index.cjs.map +1 -0
  739. package/dist/src/services/headlessClient/index.mjs +126 -0
  740. package/dist/src/services/headlessClient/index.mjs.map +1 -0
  741. package/dist/src/services/historyImport/index.cjs +8 -0
  742. package/dist/src/services/historyImport/index.cjs.map +1 -0
  743. package/dist/src/services/historyImport/index.d.mts +68 -0
  744. package/dist/src/services/historyImport/index.d.mts.map +1 -0
  745. package/dist/src/services/historyImport/index.mjs +8 -0
  746. package/dist/src/services/historyImport/index.mjs.map +1 -0
  747. package/dist/src/services/hubChannelHarness/index.cjs +50 -0
  748. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
  749. package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
  750. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
  751. package/dist/src/services/hubChannelHarness/index.mjs +50 -0
  752. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
  753. package/dist/src/services/kernel/index.cjs +147 -0
  754. package/dist/src/services/kernel/index.cjs.map +1 -0
  755. package/dist/src/services/kernel/index.d.mts +9 -0
  756. package/dist/src/services/kernel/index.d.mts.map +1 -0
  757. package/dist/src/services/kernel/index.mjs +147 -0
  758. package/dist/src/services/kernel/index.mjs.map +1 -0
  759. package/dist/src/services/loginFlow/index.cjs +131 -0
  760. package/dist/src/services/loginFlow/index.cjs.map +1 -0
  761. package/dist/src/services/loginFlow/index.mjs +131 -0
  762. package/dist/src/services/loginFlow/index.mjs.map +1 -0
  763. package/dist/src/services/loopbackAddress/index.cjs +58 -0
  764. package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
  765. package/dist/src/services/loopbackAddress/index.mjs +56 -0
  766. package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
  767. package/dist/src/services/openSessionRegistry/index.cjs +134 -0
  768. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
  769. package/dist/src/services/openSessionRegistry/index.d.mts +36 -0
  770. package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
  771. package/dist/src/services/openSessionRegistry/index.mjs +131 -0
  772. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
  773. package/dist/src/services/packageApiHarness/index.cjs +36 -0
  774. package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
  775. package/dist/src/services/packageApiHarness/index.d.mts +40 -0
  776. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
  777. package/dist/src/services/packageApiHarness/index.mjs +36 -0
  778. package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
  779. package/dist/src/services/packageResource/index.cjs +54 -0
  780. package/dist/src/services/packageResource/index.cjs.map +1 -0
  781. package/dist/src/services/packageResource/index.d.mts +26 -0
  782. package/dist/src/services/packageResource/index.d.mts.map +1 -0
  783. package/dist/src/services/packageResource/index.mjs +51 -0
  784. package/dist/src/services/packageResource/index.mjs.map +1 -0
  785. package/dist/src/services/pairingFlow/index.cjs +145 -0
  786. package/dist/src/services/pairingFlow/index.cjs.map +1 -0
  787. package/dist/src/services/pairingFlow/index.d.mts +44 -0
  788. package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
  789. package/dist/src/services/pairingFlow/index.mjs +145 -0
  790. package/dist/src/services/pairingFlow/index.mjs.map +1 -0
  791. package/dist/src/services/pairingPage/index.cjs +450 -0
  792. package/dist/src/services/pairingPage/index.cjs.map +1 -0
  793. package/dist/src/services/pairingPage/index.mjs +447 -0
  794. package/dist/src/services/pairingPage/index.mjs.map +1 -0
  795. package/dist/src/services/piExtensionHost/index.cjs +889 -0
  796. package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
  797. package/dist/src/services/piExtensionHost/index.mjs +885 -0
  798. package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
  799. package/dist/src/services/piHelpTools/index.cjs +68 -0
  800. package/dist/src/services/piHelpTools/index.cjs.map +1 -0
  801. package/dist/src/services/piHelpTools/index.d.mts +10 -0
  802. package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
  803. package/dist/src/services/piHelpTools/index.mjs +68 -0
  804. package/dist/src/services/piHelpTools/index.mjs.map +1 -0
  805. package/dist/src/services/piSessionEntries/index.cjs +121 -0
  806. package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
  807. package/dist/src/services/piSessionEntries/index.mjs +117 -0
  808. package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
  809. package/dist/src/services/pluginLifecycle/index.cjs +71 -0
  810. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
  811. package/dist/src/services/pluginLifecycle/index.d.mts +8 -0
  812. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
  813. package/dist/src/services/pluginLifecycle/index.mjs +71 -0
  814. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
  815. package/dist/src/services/providerAuth/index.cjs +156 -0
  816. package/dist/src/services/providerAuth/index.cjs.map +1 -0
  817. package/dist/src/services/providerAuth/index.mjs +154 -0
  818. package/dist/src/services/providerAuth/index.mjs.map +1 -0
  819. package/dist/src/services/publicFileShares/index.cjs +192 -0
  820. package/dist/src/services/publicFileShares/index.cjs.map +1 -0
  821. package/dist/src/services/publicFileShares/index.d.mts +16 -0
  822. package/dist/src/services/publicFileShares/index.d.mts.map +1 -0
  823. package/dist/src/services/publicFileShares/index.mjs +188 -0
  824. package/dist/src/services/publicFileShares/index.mjs.map +1 -0
  825. package/dist/src/services/remoteAccess/index.cjs +567 -0
  826. package/dist/src/services/remoteAccess/index.cjs.map +1 -0
  827. package/dist/src/services/remoteAccess/index.d.mts +121 -0
  828. package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
  829. package/dist/src/services/remoteAccess/index.mjs +567 -0
  830. package/dist/src/services/remoteAccess/index.mjs.map +1 -0
  831. package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
  832. package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
  833. package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
  834. package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
  835. package/dist/src/services/remoteAccessStore/index.cjs +197 -0
  836. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
  837. package/dist/src/services/remoteAccessStore/index.mjs +192 -0
  838. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
  839. package/dist/src/services/remoteGuardPolicy/index.cjs +200 -0
  840. package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
  841. package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
  842. package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
  843. package/dist/src/services/remoteGuardPolicy/index.mjs +196 -0
  844. package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
  845. package/dist/src/services/requestReceipts/index.cjs +167 -0
  846. package/dist/src/services/requestReceipts/index.cjs.map +1 -0
  847. package/dist/src/services/requestReceipts/index.d.mts +11 -0
  848. package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
  849. package/dist/src/services/requestReceipts/index.mjs +167 -0
  850. package/dist/src/services/requestReceipts/index.mjs.map +1 -0
  851. package/dist/src/services/rpcTranscript/index.cjs +633 -0
  852. package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
  853. package/dist/src/services/rpcTranscript/index.d.mts +50 -0
  854. package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
  855. package/dist/src/services/rpcTranscript/index.mjs +632 -0
  856. package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
  857. package/dist/src/services/serverFacet/index.cjs +197 -0
  858. package/dist/src/services/serverFacet/index.cjs.map +1 -0
  859. package/dist/src/services/serverFacet/index.d.mts +31 -0
  860. package/dist/src/services/serverFacet/index.d.mts.map +1 -0
  861. package/dist/src/services/serverFacet/index.mjs +197 -0
  862. package/dist/src/services/serverFacet/index.mjs.map +1 -0
  863. package/dist/src/services/sessionAttachments/index.cjs +111 -0
  864. package/dist/src/services/sessionAttachments/index.cjs.map +1 -0
  865. package/dist/src/services/sessionAttachments/index.d.mts +11 -0
  866. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -0
  867. package/dist/src/services/sessionAttachments/index.mjs +107 -0
  868. package/dist/src/services/sessionAttachments/index.mjs.map +1 -0
  869. package/dist/src/services/sessionGitStatus/index.cjs +46 -0
  870. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
  871. package/dist/src/services/sessionGitStatus/index.mjs +46 -0
  872. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
  873. package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
  874. package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
  875. package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
  876. package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
  877. package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
  878. package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
  879. package/dist/src/services/sessionMcpAuthorization/index.cjs +473 -0
  880. package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
  881. package/dist/src/services/sessionMcpAuthorization/index.d.mts +125 -0
  882. package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
  883. package/dist/src/services/sessionMcpAuthorization/index.mjs +469 -0
  884. package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
  885. package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
  886. package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
  887. package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
  888. package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
  889. package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
  890. package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
  891. package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
  892. package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
  893. package/dist/src/services/sessionPresentation/index.cjs +120 -0
  894. package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
  895. package/dist/src/services/sessionPresentation/index.mjs +120 -0
  896. package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
  897. package/dist/src/services/sqliteSessionHistory/index.cjs +97 -0
  898. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
  899. package/dist/src/services/sqliteSessionHistory/index.d.mts +28 -0
  900. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
  901. package/dist/src/services/sqliteSessionHistory/index.mjs +92 -0
  902. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
  903. package/dist/src/services/sqliteTranscriptReader/index.cjs +67 -0
  904. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
  905. package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
  906. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
  907. package/dist/src/services/sqliteTranscriptReader/index.mjs +65 -0
  908. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
  909. package/dist/src/services/toolCost/index.cjs +47 -0
  910. package/dist/src/services/toolCost/index.cjs.map +1 -0
  911. package/dist/src/services/toolCost/index.d.mts +38 -0
  912. package/dist/src/services/toolCost/index.d.mts.map +1 -0
  913. package/dist/src/services/toolCost/index.mjs +46 -0
  914. package/dist/src/services/toolCost/index.mjs.map +1 -0
  915. package/dist/src/services/toolOverrides/index.cjs +45 -0
  916. package/dist/src/services/toolOverrides/index.cjs.map +1 -0
  917. package/dist/src/services/toolOverrides/index.d.mts +6 -0
  918. package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
  919. package/dist/src/services/toolOverrides/index.mjs +45 -0
  920. package/dist/src/services/toolOverrides/index.mjs.map +1 -0
  921. package/dist/src/services/toolPrompt/index.cjs +13 -0
  922. package/dist/src/services/toolPrompt/index.cjs.map +1 -0
  923. package/dist/src/services/toolPrompt/index.mjs +13 -0
  924. package/dist/src/services/toolPrompt/index.mjs.map +1 -0
  925. package/dist/src/services/toolSurface/index.cjs +134 -0
  926. package/dist/src/services/toolSurface/index.cjs.map +1 -0
  927. package/dist/src/services/toolSurface/index.d.mts +19 -0
  928. package/dist/src/services/toolSurface/index.d.mts.map +1 -0
  929. package/dist/src/services/toolSurface/index.mjs +134 -0
  930. package/dist/src/services/toolSurface/index.mjs.map +1 -0
  931. package/dist/src/services/traceContext/index.cjs +13 -0
  932. package/dist/src/services/traceContext/index.cjs.map +1 -0
  933. package/dist/src/services/traceContext/index.mjs +13 -0
  934. package/dist/src/services/traceContext/index.mjs.map +1 -0
  935. package/dist/src/services/transcriptPages/index.cjs +117 -0
  936. package/dist/src/services/transcriptPages/index.cjs.map +1 -0
  937. package/dist/src/services/transcriptPages/index.mjs +115 -0
  938. package/dist/src/services/transcriptPages/index.mjs.map +1 -0
  939. package/dist/src/services/tunnelOutput/index.cjs +58 -0
  940. package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
  941. package/dist/src/services/tunnelOutput/index.mjs +54 -0
  942. package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
  943. package/dist/src/services/tunnelProcess/index.cjs +487 -0
  944. package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
  945. package/dist/src/services/tunnelProcess/index.mjs +481 -0
  946. package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
  947. package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
  948. package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
  949. package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
  950. package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
  951. package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
  952. package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
  953. package/dist/src/services/voiceToolsContract/index.cjs +26 -0
  954. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
  955. package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
  956. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
  957. package/dist/src/services/voiceToolsContract/index.mjs +24 -0
  958. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
  959. package/dist/src/services/webauthn/index.cjs +262 -0
  960. package/dist/src/services/webauthn/index.cjs.map +1 -0
  961. package/dist/src/services/webauthn/index.d.mts +39 -0
  962. package/dist/src/services/webauthn/index.d.mts.map +1 -0
  963. package/dist/src/services/webauthn/index.mjs +262 -0
  964. package/dist/src/services/webauthn/index.mjs.map +1 -0
  965. package/dist/src/services/webauthnPolicy/index.cjs +174 -0
  966. package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
  967. package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
  968. package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
  969. package/dist/src/services/webauthnPolicy/index.mjs +167 -0
  970. package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
  971. package/dist/src/services/workspaceRegistry/index.cjs +187 -0
  972. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
  973. package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
  974. package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
  975. package/dist/src/services/workspaceRegistry/index.mjs +179 -0
  976. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
  977. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +466 -0
  978. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
  979. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +36 -0
  980. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
  981. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +457 -0
  982. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
  983. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
  984. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
  985. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
  986. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
  987. package/dist/src/systems/child/services/childSession/index.cjs +219 -0
  988. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
  989. package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
  990. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
  991. package/dist/src/systems/child/services/childSession/index.mjs +219 -0
  992. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
  993. package/dist/src/systems/child/types/childSession.cjs +21 -0
  994. package/dist/src/systems/child/types/childSession.cjs.map +1 -0
  995. package/dist/src/systems/child/types/childSession.d.mts +182 -0
  996. package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
  997. package/dist/src/systems/child/types/childSession.mjs +17 -0
  998. package/dist/src/systems/child/types/childSession.mjs.map +1 -0
  999. package/dist/src/systems/main/adapters/headlessHost.cjs +597 -0
  1000. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
  1001. package/dist/src/systems/main/adapters/headlessHost.d.mts +116 -0
  1002. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
  1003. package/dist/src/systems/main/adapters/headlessHost.mjs +595 -0
  1004. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
  1005. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1668 -0
  1006. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
  1007. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +20 -0
  1008. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
  1009. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1663 -0
  1010. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
  1011. package/dist/src/systems/main/types/headlessHost.d.mts +37 -0
  1012. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
  1013. package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
  1014. package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
  1015. package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
  1016. package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
  1017. package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
  1018. package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
  1019. package/dist/src/testing/pi/testHost.cjs +399 -0
  1020. package/dist/src/testing/pi/testHost.cjs.map +1 -0
  1021. package/dist/src/testing/pi/testHost.d.mts +160 -0
  1022. package/dist/src/testing/pi/testHost.d.mts.map +1 -0
  1023. package/dist/src/testing/pi/testHost.mjs +399 -0
  1024. package/dist/src/testing/pi/testHost.mjs.map +1 -0
  1025. package/dist/src/types/config.d.mts +20 -0
  1026. package/dist/src/types/config.d.mts.map +1 -0
  1027. package/dist/src/types/kernel.d.mts +69 -0
  1028. package/dist/src/types/kernel.d.mts.map +1 -0
  1029. package/dist/src/types/remote.d.mts +152 -0
  1030. package/dist/src/types/remote.d.mts.map +1 -0
  1031. package/dist/src/types/server/directHarnessRuntime.d.mts +526 -0
  1032. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
  1033. package/dist/src/types/server/session.d.mts +5 -0
  1034. package/dist/src/types/server/session.d.mts.map +1 -0
  1035. package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
  1036. package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
  1037. package/dist/src/web/models/globalStore.cjs +23 -0
  1038. package/dist/src/web/models/globalStore.cjs.map +1 -0
  1039. package/dist/src/web/models/globalStore.d.mts +6 -0
  1040. package/dist/src/web/models/globalStore.d.mts.map +1 -0
  1041. package/dist/src/web/models/globalStore.mjs +23 -0
  1042. package/dist/src/web/models/globalStore.mjs.map +1 -0
  1043. package/dist/src/web/models/sessionStore.cjs +56 -0
  1044. package/dist/src/web/models/sessionStore.cjs.map +1 -0
  1045. package/dist/src/web/models/sessionStore.d.mts +14 -0
  1046. package/dist/src/web/models/sessionStore.d.mts.map +1 -0
  1047. package/dist/src/web/models/sessionStore.mjs +56 -0
  1048. package/dist/src/web/models/sessionStore.mjs.map +1 -0
  1049. package/dist/src/web/models/workspaceStore.cjs +50 -0
  1050. package/dist/src/web/models/workspaceStore.cjs.map +1 -0
  1051. package/dist/src/web/models/workspaceStore.d.mts +18 -0
  1052. package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
  1053. package/dist/src/web/models/workspaceStore.mjs +50 -0
  1054. package/dist/src/web/models/workspaceStore.mjs.map +1 -0
  1055. package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
  1056. package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
  1057. package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
  1058. package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
  1059. package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
  1060. package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
  1061. package/dist/src/web/schemas/template.cjs +35 -0
  1062. package/dist/src/web/schemas/template.cjs.map +1 -0
  1063. package/dist/src/web/schemas/template.d.mts +9 -0
  1064. package/dist/src/web/schemas/template.d.mts.map +1 -0
  1065. package/dist/src/web/schemas/template.mjs +34 -0
  1066. package/dist/src/web/schemas/template.mjs.map +1 -0
  1067. package/dist/src/web/services/apiClient/index.cjs +156 -0
  1068. package/dist/src/web/services/apiClient/index.cjs.map +1 -0
  1069. package/dist/src/web/services/apiClient/index.d.mts +152 -0
  1070. package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
  1071. package/dist/src/web/services/apiClient/index.mjs +154 -0
  1072. package/dist/src/web/services/apiClient/index.mjs.map +1 -0
  1073. package/dist/src/web/services/apiPaths/index.cjs +83 -0
  1074. package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
  1075. package/dist/src/web/services/apiPaths/index.d.mts +81 -0
  1076. package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
  1077. package/dist/src/web/services/apiPaths/index.mjs +78 -0
  1078. package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
  1079. package/dist/src/web/services/apiRoutes/index.cjs +47 -0
  1080. package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
  1081. package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
  1082. package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
  1083. package/dist/src/web/services/apiRoutes/index.mjs +43 -0
  1084. package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
  1085. package/dist/src/web/services/mcpWidget.cjs +9 -0
  1086. package/dist/src/web/services/mcpWidget.cjs.map +1 -0
  1087. package/dist/src/web/services/mcpWidget.d.mts +6 -0
  1088. package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
  1089. package/dist/src/web/services/mcpWidget.mjs +9 -0
  1090. package/dist/src/web/services/mcpWidget.mjs.map +1 -0
  1091. package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
  1092. package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
  1093. package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
  1094. package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
  1095. package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
  1096. package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
  1097. package/dist/src/web/services/testing/channels.cjs +11 -0
  1098. package/dist/src/web/services/testing/channels.cjs.map +1 -0
  1099. package/dist/src/web/services/testing/channels.d.mts +8 -0
  1100. package/dist/src/web/services/testing/channels.d.mts.map +1 -0
  1101. package/dist/src/web/services/testing/channels.mjs +11 -0
  1102. package/dist/src/web/services/testing/channels.mjs.map +1 -0
  1103. package/dist/src/web/services/testing/index.cjs +27 -0
  1104. package/dist/src/web/services/testing/index.cjs.map +1 -0
  1105. package/dist/src/web/services/testing/index.d.mts +31 -0
  1106. package/dist/src/web/services/testing/index.d.mts.map +1 -0
  1107. package/dist/src/web/services/testing/index.mjs +27 -0
  1108. package/dist/src/web/services/testing/index.mjs.map +1 -0
  1109. package/dist/src/web/services/testing/rpcStub.cjs +58 -0
  1110. package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
  1111. package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
  1112. package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
  1113. package/dist/src/web/services/testing/rpcStub.mjs +58 -0
  1114. package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
  1115. package/dist/src/web/services/testing/slotProps.cjs +97 -0
  1116. package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
  1117. package/dist/src/web/services/testing/slotProps.d.mts +69 -0
  1118. package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
  1119. package/dist/src/web/services/testing/slotProps.mjs +96 -0
  1120. package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
  1121. package/dist/src/web/services/testing/templateRail.cjs +156 -0
  1122. package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
  1123. package/dist/src/web/services/testing/templateRail.d.mts +32 -0
  1124. package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
  1125. package/dist/src/web/services/testing/templateRail.mjs +154 -0
  1126. package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
  1127. package/dist/src/web/services/toolResult/index.cjs +30 -0
  1128. package/dist/src/web/services/toolResult/index.cjs.map +1 -0
  1129. package/dist/src/web/services/toolResult/index.d.mts +14 -0
  1130. package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
  1131. package/dist/src/web/services/toolResult/index.mjs +29 -0
  1132. package/dist/src/web/services/toolResult/index.mjs.map +1 -0
  1133. package/dist/src/web/types/extensionFile.d.mts +62 -0
  1134. package/dist/src/web/types/extensionFile.d.mts.map +1 -0
  1135. package/dist/src/web/types/mcpWidget.d.mts +14 -0
  1136. package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
  1137. package/dist/src/web/types/modelContext.d.mts +43 -0
  1138. package/dist/src/web/types/modelContext.d.mts.map +1 -0
  1139. package/dist/src/web/types/nativeTemplate.d.mts +29 -0
  1140. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -0
  1141. package/dist/src/web/types/sessionRegistry.d.mts +46 -0
  1142. package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
  1143. package/dist/src/web/types/template.d.mts +135 -0
  1144. package/dist/src/web/types/template.d.mts.map +1 -0
  1145. package/dist/src/web/types/webPlugin.d.mts +915 -0
  1146. package/dist/src/web/types/webPlugin.d.mts.map +1 -0
  1147. package/dist/terminalPiChildSessionService.cjs +324 -0
  1148. package/dist/terminalPiChildSessionService.cjs.map +1 -0
  1149. package/dist/terminalPiChildSessionService.d.mts +46 -0
  1150. package/dist/terminalPiChildSessionService.d.mts.map +1 -0
  1151. package/dist/terminalPiChildSessionService.mjs +318 -0
  1152. package/dist/terminalPiChildSessionService.mjs.map +1 -0
  1153. package/dist/testing.cjs +11 -0
  1154. package/dist/testing.d.mts +6 -0
  1155. package/dist/testing.mjs +6 -0
  1156. package/dist/toolInventory.cjs +136 -0
  1157. package/dist/toolInventory.cjs.map +1 -0
  1158. package/dist/toolInventory.d.mts +66 -0
  1159. package/dist/toolInventory.d.mts.map +1 -0
  1160. package/dist/toolInventory.mjs +133 -0
  1161. package/dist/toolInventory.mjs.map +1 -0
  1162. package/dist/toolNames.cjs +4 -0
  1163. package/dist/toolNames.d.mts +2 -0
  1164. package/dist/toolNames.mjs +2 -0
  1165. package/dist/toolOverrides.cjs +7 -0
  1166. package/dist/toolOverrides.d.mts +3 -0
  1167. package/dist/toolOverrides.mjs +3 -0
  1168. package/dist/toolSurface.cjs +7 -0
  1169. package/dist/toolSurface.d.mts +3 -0
  1170. package/dist/toolSurface.mjs +3 -0
  1171. package/dist/transition.cjs +5 -0
  1172. package/dist/transition.d.cjs +5 -0
  1173. package/dist/transition.d.mts +2 -0
  1174. package/dist/transition.mjs +2 -0
  1175. package/dist/transitionClassifier.cjs +112 -0
  1176. package/dist/transitionClassifier.cjs.map +1 -0
  1177. package/dist/transitionClassifier.d.mts +18 -0
  1178. package/dist/transitionClassifier.d.mts.map +1 -0
  1179. package/dist/transitionClassifier.mjs +111 -0
  1180. package/dist/transitionClassifier.mjs.map +1 -0
  1181. package/dist/transitionCoordinator.cjs +131 -0
  1182. package/dist/transitionCoordinator.cjs.map +1 -0
  1183. package/dist/transitionCoordinator.d.mts +16 -0
  1184. package/dist/transitionCoordinator.d.mts.map +1 -0
  1185. package/dist/transitionCoordinator.mjs +130 -0
  1186. package/dist/transitionCoordinator.mjs.map +1 -0
  1187. package/dist/typesContextApi.cjs +0 -0
  1188. package/dist/typesContextApi.d.mts +79 -0
  1189. package/dist/typesContextApi.d.mts.map +1 -0
  1190. package/dist/typesContextApi.mjs +1 -0
  1191. package/dist/uiHub.cjs +5 -0
  1192. package/dist/uiHub.d.mts +2 -0
  1193. package/dist/uiHub.mjs +2 -0
  1194. package/dist/v3Export.cjs +10 -0
  1195. package/dist/v3Export.cjs.map +1 -0
  1196. package/dist/v3Export.d.mts +35 -0
  1197. package/dist/v3Export.d.mts.map +1 -0
  1198. package/dist/v3Export.mjs +9 -0
  1199. package/dist/v3Export.mjs.map +1 -0
  1200. package/dist/voiceReloadHandoff.cjs +14 -0
  1201. package/dist/voiceReloadHandoff.d.mts +4 -0
  1202. package/dist/voiceReloadHandoff.mjs +4 -0
  1203. package/dist/voiceTools.cjs +56 -0
  1204. package/dist/voiceTools.d.mts +4 -0
  1205. package/dist/voiceTools.mjs +4 -0
  1206. package/dist/web.cjs +65 -0
  1207. package/dist/web.d.mts +20 -0
  1208. package/dist/web.mjs +13 -0
  1209. package/dist/webCompositions.cjs +181 -0
  1210. package/dist/webCompositions.cjs.map +1 -0
  1211. package/dist/webCompositions.d.mts +79 -0
  1212. package/dist/webCompositions.d.mts.map +1 -0
  1213. package/dist/webCompositions.mjs +174 -0
  1214. package/dist/webCompositions.mjs.map +1 -0
  1215. package/dist/webTesting.cjs +14 -0
  1216. package/dist/webTesting.d.mts +6 -0
  1217. package/dist/webTesting.mjs +6 -0
  1218. package/package.json +586 -0
@@ -0,0 +1,70 @@
1
+ import { JsonObject } from "./runtimeJson.mjs";
2
+ //#region src/services/piSettings/index.d.ts
3
+ /** Moves Po's whole home, agent directory included, away from `~/.po`. */
4
+ export declare const PO_HOME_ENV = "PO_HOME";
5
+ /** The stable package entry Pi loads for every synced repository. */
6
+ export declare const DOOM_EXTENSION = "@agimon-ai/po";
7
+ /** Suppresses Pi's ambient extension-directory scan while leaving explicit sources intact. */
8
+ export declare const AMBIENT_EXTENSION_FILTER = "!extensions/**";
9
+ /**
10
+ * Pi built-in extensions kept off under Po. po-mcp owns `/mcp` and MCP servers. Codemode and
11
+ * tool search are opt-in in plain Pi, but Po activates every registered tool, so leaving them
12
+ * loaded would declare both to the model in every session.
13
+ */
14
+ export declare const DISABLED_PI_BUILTINS: readonly string[];
15
+ /** Ownership marker `po init` wrote into the dispatcher package manifest. */
16
+ export declare const PO_DISPATCHER_MARKER = 1;
17
+ export interface PiSettingsUpdate {
18
+ /** Absolute path to the synchronized user theme file. */
19
+ themePath: string;
20
+ themeName: string;
21
+ }
22
+ /**
23
+ * Po's home: config, workspaces, runtime registry and its Pi agent directory.
24
+ * Defaults to `~/.po`; `PO_HOME` moves all of it.
25
+ */
26
+ export declare function poHomeDirectory(homeDirectory?: string, environment?: Readonly<Record<string, string | undefined>>): string;
27
+ /**
28
+ * The single install root for runtime packages every Po root shares: its
29
+ * `package.json` declares them and its `node_modules` holds them.
30
+ */
31
+ export declare function poRuntimeDirectory(homeDirectory?: string, environment?: Readonly<Record<string, string | undefined>>): string;
32
+ /**
33
+ * True when a directory's `.po` folder exists and is a repository's own configuration.
34
+ *
35
+ * Po's home is `~/.po`, so the home directory carries a `.po` folder too. That folder is
36
+ * the global layer, not a repository marker: walking up from any path under home must not
37
+ * stop at home and treat the global configuration as repository configuration.
38
+ */
39
+ export declare function hasRepositoryDoomDirectory(directory: string, homeDirectory?: string, environment?: Readonly<Record<string, string | undefined>>): boolean;
40
+ /**
41
+ * The Pi agent directory Po runs with. Honors Pi's documented override; every Po
42
+ * entry point sets that override, so the default only applies to library callers.
43
+ */
44
+ export declare function piAgentDirectory(environment?: Readonly<Record<string, string | undefined>>, homeDirectory?: string): string;
45
+ /**
46
+ * Where Po reads auth.json, models.json and the default model from. Po's own agent
47
+ * directory when it names a model; otherwise plain Pi's `~/.pi/agent`, so a user who
48
+ * already set Pi up can start a session before configuring Po.
49
+ */
50
+ export declare function modelConfigDirectory(agentDirectory: string, homeDirectory?: string): string;
51
+ export declare function piSettingsPath(agentDirectory: string): string;
52
+ export declare function piThemeDirectory(agentDirectory: string): string;
53
+ /** Produces the user settings content for an update, without writing it. */
54
+ export declare function mergePiSettings(current: JsonObject, agentDirectory: string, update: PiSettingsUpdate): JsonObject;
55
+ export declare function readPiSettings(agentDirectory: string): JsonObject;
56
+ export declare function serializePiSettings(settings: JsonObject): string;
57
+ /** Merges the Doom-owned keys into Pi's user settings file. */
58
+ export declare function writePiSettings(agentDirectory: string, update: PiSettingsUpdate): string;
59
+ /** Whether a directory is the dispatcher package `po init` generated, by its manifest ownership marker. */
60
+ export declare function isPoDispatcherPackage(directory: string): boolean;
61
+ /**
62
+ * Removes the entries `po init` and older `po sync` runs added to Pi's user agent directory.
63
+ *
64
+ * The shared ambient and built-in filters stay while another `@agimon-ai/*` distribution (doompi)
65
+ * is still registered, because it relies on the same filters. Unrelated settings are preserved,
66
+ * and nothing is written when no Po entry is present. Returns the paths and entries it removed.
67
+ */
68
+ export declare function removePoPiSettings(agentDirectory: string): string[];
69
+ //#endregion
70
+ //# sourceMappingURL=runtimePiSettings.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimePiSettings.d.mts","names":[],"sources":["../src/services/piSettings/index.ts"],"mappings":";;;qBAmBa;;qBAsBA;;qBAEA;;;;;;qBAMA;;qBAEA;iBACI;;EAEf;EACA;;;;;;wBAmBc,gBACd,wBACA,cAAa,SAAS;;;;;wBAYR,mBACd,wBACA,cAAa,SAAS;;;;;;;;wBAYR,2BACd,mBACA,wBACA,cAAa,SAAS;;;;;wBAgBR,iBACd,cAAa,SAAS,qCACtB;;;;;;wBA0Bc,qBAAqB,wBAAwB;wBAK7C,eAAe;wBAIf,iBAAiB;;wBA6BjB,gBAAgB,SAAS,YAAY,wBAAwB,QAAQ,mBAAmB;wBA4BxF,eAAe,yBAAyB;wBAKxC,oBAAoB,UAAU;;wBAK9B,gBAAgB,wBAAwB,QAAQ;;wBAUhD,sBAAsB;;;;;;;;wBAkCtB,mBAAmB"}
@@ -0,0 +1,235 @@
1
+ import { DOOM_PACKAGE_NAME } from "./doomPackage.mjs";
2
+ import { isRecord, readJson, writeFileAtomic } from "./runtimeJson.mjs";
3
+ import fs from "node:fs";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ //#region src/services/piSettings/index.ts
7
+ /**
8
+ * Pi's user settings, as `po sync` maintains them.
9
+ *
10
+ * The Doom package is registered globally so a plain `pi` process can find the
11
+ * lightweight package bootstrap before project resources are trusted. Sync owns
12
+ * the extension registration, ambient-discovery filter, theme resource, selected default theme, and quiet-startup keys
13
+ * while preserving every unrelated user setting.
14
+ */
15
+ const PI_CODING_AGENT_DIR_ENV = "PI_CODING_AGENT_DIR";
16
+ /** Moves Po's whole home, agent directory included, away from `~/.po`. */
17
+ const PO_HOME_ENV = "PO_HOME";
18
+ const PO_HOME_DIRECTORY = ".po";
19
+ /** Plain Pi's home, whose agent directory Po falls back to for model config. */
20
+ const PI_HOME_DIRECTORY = ".pi";
21
+ const AGENT_DIRECTORY = "agent";
22
+ const RUNTIME_DIRECTORY = "runtime";
23
+ const SETTINGS_FILE = "settings.json";
24
+ const AUTH_FILE = "auth.json";
25
+ const MODELS_FILE = "models.json";
26
+ const THEMES_DIRECTORY = "themes";
27
+ const EXTENSIONS_KEY = "extensions";
28
+ const THEMES_KEY = "themes";
29
+ const THEME_KEY = "theme";
30
+ const QUIET_STARTUP_KEY = "quietStartup";
31
+ const PO_THEME_NAME = "po-dark";
32
+ const PO_THEME_FILE = `${PO_THEME_NAME}.json`;
33
+ const PACKAGE_MANIFEST = "package.json";
34
+ const AGIMON_SCOPE_PREFIX = "@agimon-ai/";
35
+ const NPM_SOURCE_PREFIX = "npm:";
36
+ const HOME_ALIAS = "~";
37
+ const HOME_ALIAS_PREFIX = "~/";
38
+ /** The stable package entry Pi loads for every synced repository. */
39
+ const DOOM_EXTENSION = DOOM_PACKAGE_NAME;
40
+ /** Suppresses Pi's ambient extension-directory scan while leaving explicit sources intact. */
41
+ const AMBIENT_EXTENSION_FILTER = "!extensions/**";
42
+ /**
43
+ * Pi built-in extensions kept off under Po. po-mcp owns `/mcp` and MCP servers. Codemode and
44
+ * tool search are opt-in in plain Pi, but Po activates every registered tool, so leaving them
45
+ * loaded would declare both to the model in every session.
46
+ */
47
+ const DISABLED_PI_BUILTINS = [
48
+ "-builtin:mcp",
49
+ "-builtin:codemode",
50
+ "-builtin:tool-search"
51
+ ];
52
+ /** Ownership marker `po init` wrote into the dispatcher package manifest. */
53
+ const PO_DISPATCHER_MARKER = 1;
54
+ /**
55
+ * Expands `~` and resolves a relative path against home, never the cwd, so every
56
+ * Po process lands on the same directory wherever it was started.
57
+ */
58
+ function resolveConfiguredDirectory(configured, homeDirectory) {
59
+ if (configured === HOME_ALIAS) return homeDirectory;
60
+ if (configured.startsWith(HOME_ALIAS_PREFIX)) return path.join(homeDirectory, configured.slice(2));
61
+ return path.resolve(homeDirectory, configured);
62
+ }
63
+ /**
64
+ * Po's home: config, workspaces, runtime registry and its Pi agent directory.
65
+ * Defaults to `~/.po`; `PO_HOME` moves all of it.
66
+ */
67
+ function poHomeDirectory(homeDirectory = os.homedir(), environment = process.env) {
68
+ const configured = environment[PO_HOME_ENV]?.trim();
69
+ return configured ? resolveConfiguredDirectory(configured, homeDirectory) : path.join(homeDirectory, PO_HOME_DIRECTORY);
70
+ }
71
+ /**
72
+ * The single install root for runtime packages every Po root shares: its
73
+ * `package.json` declares them and its `node_modules` holds them.
74
+ */
75
+ function poRuntimeDirectory(homeDirectory = os.homedir(), environment = process.env) {
76
+ return path.join(poHomeDirectory(homeDirectory, environment), RUNTIME_DIRECTORY);
77
+ }
78
+ /**
79
+ * True when a directory's `.po` folder exists and is a repository's own configuration.
80
+ *
81
+ * Po's home is `~/.po`, so the home directory carries a `.po` folder too. That folder is
82
+ * the global layer, not a repository marker: walking up from any path under home must not
83
+ * stop at home and treat the global configuration as repository configuration.
84
+ */
85
+ function hasRepositoryDoomDirectory(directory, homeDirectory = os.homedir(), environment = process.env) {
86
+ const marker = path.resolve(directory, PO_HOME_DIRECTORY);
87
+ if (marker === path.resolve(poHomeDirectory(homeDirectory, environment))) return false;
88
+ try {
89
+ return fs.statSync(marker).isDirectory();
90
+ } catch {
91
+ return false;
92
+ }
93
+ }
94
+ /**
95
+ * The Pi agent directory Po runs with. Honors Pi's documented override; every Po
96
+ * entry point sets that override, so the default only applies to library callers.
97
+ */
98
+ function piAgentDirectory(environment = process.env, homeDirectory = os.homedir()) {
99
+ const configured = environment[PI_CODING_AGENT_DIR_ENV]?.trim();
100
+ if (!configured) return path.join(poHomeDirectory(homeDirectory, environment), AGENT_DIRECTORY);
101
+ return resolveConfiguredDirectory(configured, homeDirectory);
102
+ }
103
+ /** True when the directory names a model: credentials, a custom provider, or a default. */
104
+ function hasModelConfig(agentDirectory) {
105
+ try {
106
+ return fs.existsSync(path.join(agentDirectory, MODELS_FILE)) || Object.keys(readJson(path.join(agentDirectory, AUTH_FILE))).length > 0 || typeof readJson(piSettingsPath(agentDirectory)).defaultProvider === "string";
107
+ } catch {
108
+ return true;
109
+ }
110
+ }
111
+ /**
112
+ * Where Po reads auth.json, models.json and the default model from. Po's own agent
113
+ * directory when it names a model; otherwise plain Pi's `~/.pi/agent`, so a user who
114
+ * already set Pi up can start a session before configuring Po.
115
+ */
116
+ function modelConfigDirectory(agentDirectory, homeDirectory = os.homedir()) {
117
+ if (hasModelConfig(agentDirectory)) return agentDirectory;
118
+ const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);
119
+ return pi !== agentDirectory && hasModelConfig(pi) ? pi : agentDirectory;
120
+ }
121
+ function piSettingsPath(agentDirectory) {
122
+ return path.join(agentDirectory, SETTINGS_FILE);
123
+ }
124
+ function piThemeDirectory(agentDirectory) {
125
+ return path.join(agentDirectory, THEMES_DIRECTORY);
126
+ }
127
+ function stringList(value) {
128
+ return Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : [];
129
+ }
130
+ function settingsRelativePath(agentDirectory, target) {
131
+ const relative = path.relative(agentDirectory, target);
132
+ if (relative.startsWith("..") || path.isAbsolute(relative)) return target;
133
+ return relative.split(path.sep).join("/");
134
+ }
135
+ function isManagedExtension(value) {
136
+ const normalized = value.replaceAll("\\", "/");
137
+ return normalized === DOOM_EXTENSION || normalized === "!extensions/**" || DISABLED_PI_BUILTINS.includes(normalized);
138
+ }
139
+ function isLegacyDoomTheme(value, themeName) {
140
+ const normalized = value.replaceAll("\\", "/");
141
+ return normalized.endsWith(`/doom/${themeName}.json`) || normalized === `doom/${themeName}.json`;
142
+ }
143
+ /** Produces the user settings content for an update, without writing it. */
144
+ function mergePiSettings(current, agentDirectory, update) {
145
+ const theme = settingsRelativePath(agentDirectory, update.themePath);
146
+ const extensions = [
147
+ DOOM_EXTENSION,
148
+ AMBIENT_EXTENSION_FILTER,
149
+ ...DISABLED_PI_BUILTINS,
150
+ ...stringList(current[EXTENSIONS_KEY]).filter((value) => !isManagedExtension(value))
151
+ ];
152
+ const themes = [theme, ...stringList(current[THEMES_KEY]).filter((value) => value !== theme && !isLegacyDoomTheme(value, update.themeName))];
153
+ return {
154
+ ...current,
155
+ [QUIET_STARTUP_KEY]: true,
156
+ [EXTENSIONS_KEY]: extensions,
157
+ [THEMES_KEY]: themes,
158
+ [THEME_KEY]: typeof current[THEME_KEY] === "string" ? current[THEME_KEY] : update.themeName
159
+ };
160
+ }
161
+ function readPiSettings(agentDirectory) {
162
+ const settings = readJson(piSettingsPath(agentDirectory));
163
+ return isRecord(settings) ? settings : {};
164
+ }
165
+ function serializePiSettings(settings) {
166
+ return `${JSON.stringify(settings, null, 2)}\n`;
167
+ }
168
+ /** Merges the Doom-owned keys into Pi's user settings file. */
169
+ function writePiSettings(agentDirectory, update) {
170
+ const settingsPath = piSettingsPath(agentDirectory);
171
+ writeFileAtomic(settingsPath, serializePiSettings(mergePiSettings(readPiSettings(agentDirectory), agentDirectory, update)));
172
+ return settingsPath;
173
+ }
174
+ /** Whether a directory is the dispatcher package `po init` generated, by its manifest ownership marker. */
175
+ function isPoDispatcherPackage(directory) {
176
+ try {
177
+ const parsed = JSON.parse(fs.readFileSync(path.join(directory, PACKAGE_MANIFEST), "utf8"));
178
+ return parsed.name === "@agimon-ai/po" && parsed.poDispatcher === 1;
179
+ } catch {
180
+ return false;
181
+ }
182
+ }
183
+ function poDispatcherDirectory(agentDirectory) {
184
+ const directory = path.join(agentDirectory, ...DOOM_PACKAGE_NAME.split("/"));
185
+ return fs.lstatSync(directory, { throwIfNoEntry: false })?.isDirectory() && isPoDispatcherPackage(directory) ? directory : void 0;
186
+ }
187
+ function isOtherAgimonDistribution(value) {
188
+ const normalized = value.startsWith(NPM_SOURCE_PREFIX) ? value.slice(4) : value;
189
+ return normalized.startsWith(AGIMON_SCOPE_PREFIX) && normalized !== DOOM_EXTENSION;
190
+ }
191
+ function isSharedFilter(value) {
192
+ return value === "!extensions/**" || DISABLED_PI_BUILTINS.includes(value);
193
+ }
194
+ /**
195
+ * Removes the entries `po init` and older `po sync` runs added to Pi's user agent directory.
196
+ *
197
+ * The shared ambient and built-in filters stay while another `@agimon-ai/*` distribution (doompi)
198
+ * is still registered, because it relies on the same filters. Unrelated settings are preserved,
199
+ * and nothing is written when no Po entry is present. Returns the paths and entries it removed.
200
+ */
201
+ function removePoPiSettings(agentDirectory) {
202
+ const removed = [];
203
+ const settingsPath = piSettingsPath(agentDirectory);
204
+ const themePath = path.join(piThemeDirectory(agentDirectory), PO_THEME_FILE);
205
+ const current = readPiSettings(agentDirectory);
206
+ const extensions = stringList(current[EXTENSIONS_KEY]);
207
+ const themes = stringList(current[THEMES_KEY]);
208
+ const isPoTheme = (value) => path.resolve(agentDirectory, value) === themePath;
209
+ if (extensions.includes(DOOM_EXTENSION) || themes.some(isPoTheme) || current[THEME_KEY] === PO_THEME_NAME) {
210
+ const keepFilters = extensions.some(isOtherAgimonDistribution);
211
+ const next = { ...current };
212
+ if (Array.isArray(current[EXTENSIONS_KEY])) next[EXTENSIONS_KEY] = current[EXTENSIONS_KEY].filter((value) => value !== DOOM_EXTENSION && (keepFilters || typeof value !== "string" || !isSharedFilter(value)));
213
+ if (Array.isArray(current[THEMES_KEY])) next[THEMES_KEY] = current[THEMES_KEY].filter((value) => typeof value !== "string" || !isPoTheme(value));
214
+ if (current[THEME_KEY] === PO_THEME_NAME) delete next[THEME_KEY];
215
+ writeFileAtomic(settingsPath, serializePiSettings(next));
216
+ removed.push(settingsPath);
217
+ }
218
+ if (fs.lstatSync(themePath, { throwIfNoEntry: false })?.isFile()) {
219
+ fs.rmSync(themePath, { force: true });
220
+ removed.push(themePath);
221
+ }
222
+ const dispatcher = poDispatcherDirectory(agentDirectory);
223
+ if (dispatcher) {
224
+ fs.rmSync(dispatcher, {
225
+ recursive: true,
226
+ force: true
227
+ });
228
+ removed.push(dispatcher);
229
+ }
230
+ return removed;
231
+ }
232
+ //#endregion
233
+ export { AMBIENT_EXTENSION_FILTER, DISABLED_PI_BUILTINS, DOOM_EXTENSION, PO_DISPATCHER_MARKER, PO_HOME_ENV, hasRepositoryDoomDirectory, isPoDispatcherPackage, mergePiSettings, modelConfigDirectory, piAgentDirectory, piSettingsPath, piThemeDirectory, poHomeDirectory, poRuntimeDirectory, readPiSettings, removePoPiSettings, serializePiSettings, writePiSettings };
234
+
235
+ //# sourceMappingURL=runtimePiSettings.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimePiSettings.mjs","names":[],"sources":["../src/services/piSettings/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { DOOM_PACKAGE_NAME } from '../doomPackage';\nimport { isRecord, readJson, writeFileAtomic } from '../json';\nimport type { JsonObject } from '../json';\n\n/**\n * Pi's user settings, as `po sync` maintains them.\n *\n * The Doom package is registered globally so a plain `pi` process can find the\n * lightweight package bootstrap before project resources are trusted. Sync owns\n * the extension registration, ambient-discovery filter, theme resource, selected default theme, and quiet-startup keys\n * while preserving every unrelated user setting.\n */\n\nconst PI_CODING_AGENT_DIR_ENV = 'PI_CODING_AGENT_DIR';\n/** Moves Po's whole home, agent directory included, away from `~/.po`. */\nexport const PO_HOME_ENV = 'PO_HOME';\nconst PO_HOME_DIRECTORY = '.po';\n/** Plain Pi's home, whose agent directory Po falls back to for model config. */\nconst PI_HOME_DIRECTORY = '.pi';\nconst AGENT_DIRECTORY = 'agent';\nconst RUNTIME_DIRECTORY = 'runtime';\nconst SETTINGS_FILE = 'settings.json';\nconst AUTH_FILE = 'auth.json';\nconst MODELS_FILE = 'models.json';\nconst THEMES_DIRECTORY = 'themes';\nconst EXTENSIONS_KEY = 'extensions';\nconst THEMES_KEY = 'themes';\nconst THEME_KEY = 'theme';\nconst QUIET_STARTUP_KEY = 'quietStartup';\nconst PO_THEME_NAME = 'po-dark';\nconst PO_THEME_FILE = `${PO_THEME_NAME}.json`;\nconst PACKAGE_MANIFEST = 'package.json';\nconst AGIMON_SCOPE_PREFIX = '@agimon-ai/';\nconst NPM_SOURCE_PREFIX = 'npm:';\nconst HOME_ALIAS = '~';\nconst HOME_ALIAS_PREFIX = '~/';\n/** The stable package entry Pi loads for every synced repository. */\nexport const DOOM_EXTENSION = DOOM_PACKAGE_NAME;\n/** Suppresses Pi's ambient extension-directory scan while leaving explicit sources intact. */\nexport const AMBIENT_EXTENSION_FILTER = '!extensions/**';\n/**\n * Pi built-in extensions kept off under Po. po-mcp owns `/mcp` and MCP servers. Codemode and\n * tool search are opt-in in plain Pi, but Po activates every registered tool, so leaving them\n * loaded would declare both to the model in every session.\n */\nexport const DISABLED_PI_BUILTINS: readonly string[] = ['-builtin:mcp', '-builtin:codemode', '-builtin:tool-search'];\n/** Ownership marker `po init` wrote into the dispatcher package manifest. */\nexport const PO_DISPATCHER_MARKER = 1;\nexport interface PiSettingsUpdate {\n /** Absolute path to the synchronized user theme file. */\n themePath: string;\n themeName: string;\n}\n\n/**\n * Expands `~` and resolves a relative path against home, never the cwd, so every\n * Po process lands on the same directory wherever it was started.\n */\nfunction resolveConfiguredDirectory(configured: string, homeDirectory: string): string {\n if (configured === HOME_ALIAS) return homeDirectory;\n if (configured.startsWith(HOME_ALIAS_PREFIX)) {\n return path.join(homeDirectory, configured.slice(HOME_ALIAS_PREFIX.length));\n }\n return path.resolve(homeDirectory, configured);\n}\n\n/**\n * Po's home: config, workspaces, runtime registry and its Pi agent directory.\n * Defaults to `~/.po`; `PO_HOME` moves all of it.\n */\nexport function poHomeDirectory(\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): string {\n const configured = environment[PO_HOME_ENV]?.trim();\n return configured\n ? resolveConfiguredDirectory(configured, homeDirectory)\n : path.join(homeDirectory, PO_HOME_DIRECTORY);\n}\n\n/**\n * The single install root for runtime packages every Po root shares: its\n * `package.json` declares them and its `node_modules` holds them.\n */\nexport function poRuntimeDirectory(\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): string {\n return path.join(poHomeDirectory(homeDirectory, environment), RUNTIME_DIRECTORY);\n}\n\n/**\n * True when a directory's `.po` folder exists and is a repository's own configuration.\n *\n * Po's home is `~/.po`, so the home directory carries a `.po` folder too. That folder is\n * the global layer, not a repository marker: walking up from any path under home must not\n * stop at home and treat the global configuration as repository configuration.\n */\nexport function hasRepositoryDoomDirectory(\n directory: string,\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): boolean {\n const marker = path.resolve(directory, PO_HOME_DIRECTORY);\n if (marker === path.resolve(poHomeDirectory(homeDirectory, environment))) return false;\n try {\n return fs.statSync(marker).isDirectory();\n } catch {\n // No readable `.po` folder here, so this directory is not marked as a repository.\n return false;\n }\n}\n\n/**\n * The Pi agent directory Po runs with. Honors Pi's documented override; every Po\n * entry point sets that override, so the default only applies to library callers.\n */\nexport function piAgentDirectory(\n environment: Readonly<Record<string, string | undefined>> = process.env,\n homeDirectory: string = os.homedir(),\n): string {\n const configured = environment[PI_CODING_AGENT_DIR_ENV]?.trim();\n if (!configured) return path.join(poHomeDirectory(homeDirectory, environment), AGENT_DIRECTORY);\n return resolveConfiguredDirectory(configured, homeDirectory);\n}\n\n/** True when the directory names a model: credentials, a custom provider, or a default. */\nfunction hasModelConfig(agentDirectory: string): boolean {\n try {\n return (\n fs.existsSync(path.join(agentDirectory, MODELS_FILE)) ||\n Object.keys(readJson(path.join(agentDirectory, AUTH_FILE))).length > 0 ||\n typeof readJson(piSettingsPath(agentDirectory)).defaultProvider === 'string'\n );\n } catch {\n // A malformed file is still the user's config: surface its error rather than switch away.\n return true;\n }\n}\n\n/**\n * Where Po reads auth.json, models.json and the default model from. Po's own agent\n * directory when it names a model; otherwise plain Pi's `~/.pi/agent`, so a user who\n * already set Pi up can start a session before configuring Po.\n */\nexport function modelConfigDirectory(agentDirectory: string, homeDirectory: string = os.homedir()): string {\n if (hasModelConfig(agentDirectory)) return agentDirectory;\n const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);\n return pi !== agentDirectory && hasModelConfig(pi) ? pi : agentDirectory;\n}\nexport function piSettingsPath(agentDirectory: string): string {\n return path.join(agentDirectory, SETTINGS_FILE);\n}\n\nexport function piThemeDirectory(agentDirectory: string): string {\n return path.join(agentDirectory, THEMES_DIRECTORY);\n}\n\nfunction stringList(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n}\n\nfunction settingsRelativePath(agentDirectory: string, target: string): string {\n const relative = path.relative(agentDirectory, target);\n if (relative.startsWith('..') || path.isAbsolute(relative)) return target;\n return relative.split(path.sep).join('/');\n}\n\nfunction isManagedExtension(value: string): boolean {\n const normalized = value.replaceAll('\\\\', '/');\n return (\n normalized === DOOM_EXTENSION ||\n normalized === AMBIENT_EXTENSION_FILTER ||\n DISABLED_PI_BUILTINS.includes(normalized)\n );\n}\n\nfunction isLegacyDoomTheme(value: string, themeName: string): boolean {\n const normalized = value.replaceAll('\\\\', '/');\n return normalized.endsWith(`/doom/${themeName}.json`) || normalized === `doom/${themeName}.json`;\n}\n\n/** Produces the user settings content for an update, without writing it. */\nexport function mergePiSettings(current: JsonObject, agentDirectory: string, update: PiSettingsUpdate): JsonObject {\n const theme = settingsRelativePath(agentDirectory, update.themePath);\n // First in the list, so the harness environment is hydrated before any\n // extension a user added themselves runs. The filter affects only Pi's\n // automatic extensions/** scan; explicit settings and CLI entries still load.\n const extensions = [\n DOOM_EXTENSION,\n AMBIENT_EXTENSION_FILTER,\n ...DISABLED_PI_BUILTINS,\n ...stringList(current[EXTENSIONS_KEY]).filter((value) => !isManagedExtension(value)),\n ];\n const themes = [\n theme,\n ...stringList(current[THEMES_KEY]).filter(\n (value) => value !== theme && !isLegacyDoomTheme(value, update.themeName),\n ),\n ];\n return {\n ...current,\n [QUIET_STARTUP_KEY]: true,\n [EXTENSIONS_KEY]: extensions,\n [THEMES_KEY]: themes,\n // Only filled in when unset: a theme the user picked later is their choice,\n // and re-imposing the Doom theme on every sync would silently undo it.\n [THEME_KEY]: typeof current[THEME_KEY] === 'string' ? current[THEME_KEY] : update.themeName,\n };\n}\n\nexport function readPiSettings(agentDirectory: string): JsonObject {\n const settings = readJson(piSettingsPath(agentDirectory));\n return isRecord(settings) ? settings : {};\n}\n\nexport function serializePiSettings(settings: JsonObject): string {\n return `${JSON.stringify(settings, null, 2)}\\n`;\n}\n\n/** Merges the Doom-owned keys into Pi's user settings file. */\nexport function writePiSettings(agentDirectory: string, update: PiSettingsUpdate): string {\n const settingsPath = piSettingsPath(agentDirectory);\n writeFileAtomic(\n settingsPath,\n serializePiSettings(mergePiSettings(readPiSettings(agentDirectory), agentDirectory, update)),\n );\n return settingsPath;\n}\n\n/** Whether a directory is the dispatcher package `po init` generated, by its manifest ownership marker. */\nexport function isPoDispatcherPackage(directory: string): boolean {\n try {\n const parsed = JSON.parse(fs.readFileSync(path.join(directory, PACKAGE_MANIFEST), 'utf8')) as {\n name?: unknown;\n poDispatcher?: unknown;\n };\n return parsed.name === DOOM_PACKAGE_NAME && parsed.poDispatcher === PO_DISPATCHER_MARKER;\n } catch {\n return false;\n }\n}\n\nfunction poDispatcherDirectory(agentDirectory: string): string | undefined {\n const directory = path.join(agentDirectory, ...DOOM_PACKAGE_NAME.split('/'));\n const stat = fs.lstatSync(directory, { throwIfNoEntry: false });\n return stat?.isDirectory() && isPoDispatcherPackage(directory) ? directory : undefined;\n}\n\nfunction isOtherAgimonDistribution(value: string): boolean {\n const normalized = value.startsWith(NPM_SOURCE_PREFIX) ? value.slice(NPM_SOURCE_PREFIX.length) : value;\n return normalized.startsWith(AGIMON_SCOPE_PREFIX) && normalized !== DOOM_EXTENSION;\n}\n\nfunction isSharedFilter(value: string): boolean {\n return value === AMBIENT_EXTENSION_FILTER || DISABLED_PI_BUILTINS.includes(value);\n}\n\n/**\n * Removes the entries `po init` and older `po sync` runs added to Pi's user agent directory.\n *\n * The shared ambient and built-in filters stay while another `@agimon-ai/*` distribution (doompi)\n * is still registered, because it relies on the same filters. Unrelated settings are preserved,\n * and nothing is written when no Po entry is present. Returns the paths and entries it removed.\n */\nexport function removePoPiSettings(agentDirectory: string): string[] {\n const removed: string[] = [];\n const settingsPath = piSettingsPath(agentDirectory);\n const themePath = path.join(piThemeDirectory(agentDirectory), PO_THEME_FILE);\n const current = readPiSettings(agentDirectory);\n const extensions = stringList(current[EXTENSIONS_KEY]);\n const themes = stringList(current[THEMES_KEY]);\n const isPoTheme = (value: string) => path.resolve(agentDirectory, value) === themePath;\n const hasPoSettings =\n extensions.includes(DOOM_EXTENSION) || themes.some(isPoTheme) || current[THEME_KEY] === PO_THEME_NAME;\n\n if (hasPoSettings) {\n const keepFilters = extensions.some(isOtherAgimonDistribution);\n const next: JsonObject = { ...current };\n if (Array.isArray(current[EXTENSIONS_KEY])) {\n next[EXTENSIONS_KEY] = (current[EXTENSIONS_KEY] as unknown[]).filter(\n (value) => value !== DOOM_EXTENSION && (keepFilters || typeof value !== 'string' || !isSharedFilter(value)),\n );\n }\n if (Array.isArray(current[THEMES_KEY])) {\n next[THEMES_KEY] = (current[THEMES_KEY] as unknown[]).filter(\n (value) => typeof value !== 'string' || !isPoTheme(value),\n );\n }\n if (current[THEME_KEY] === PO_THEME_NAME) delete next[THEME_KEY];\n writeFileAtomic(settingsPath, serializePiSettings(next));\n removed.push(settingsPath);\n }\n if (fs.lstatSync(themePath, { throwIfNoEntry: false })?.isFile()) {\n fs.rmSync(themePath, { force: true });\n removed.push(themePath);\n }\n const dispatcher = poDispatcherDirectory(agentDirectory);\n if (dispatcher) {\n fs.rmSync(dispatcher, { recursive: true, force: true });\n removed.push(dispatcher);\n }\n return removed;\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,MAAM,0BAA0B;;AAEhC,MAAa,cAAc;AAC3B,MAAM,oBAAoB;;AAE1B,MAAM,oBAAoB;AAC1B,MAAM,kBAAkB;AACxB,MAAM,oBAAoB;AAC1B,MAAM,gBAAgB;AACtB,MAAM,YAAY;AAClB,MAAM,cAAc;AACpB,MAAM,mBAAmB;AACzB,MAAM,iBAAiB;AACvB,MAAM,aAAa;AACnB,MAAM,YAAY;AAClB,MAAM,oBAAoB;AAC1B,MAAM,gBAAgB;AACtB,MAAM,gBAAgB,GAAG,cAAc;AACvC,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB;AAC1B,MAAM,aAAa;AACnB,MAAM,oBAAoB;;AAE1B,MAAa,iBAAiB;;AAE9B,MAAa,2BAA2B;;;;;;AAMxC,MAAa,uBAA0C;CAAC;CAAgB;CAAqB;AAAsB;;AAEnH,MAAa,uBAAuB;;;;;AAWpC,SAAS,2BAA2B,YAAoB,eAA+B;CACrF,IAAI,eAAe,YAAY,OAAO;CACtC,IAAI,WAAW,WAAW,iBAAiB,GACzC,OAAO,KAAK,KAAK,eAAe,WAAW,MAAM,CAAwB,CAAC;CAE5E,OAAO,KAAK,QAAQ,eAAe,UAAU;AAC/C;;;;;AAMA,SAAgB,gBACd,gBAAwB,GAAG,QAAQ,GACnC,cAA4D,QAAQ,KAC5D;CACR,MAAM,aAAa,YAAY,YAAY,EAAE,KAAK;CAClD,OAAO,aACH,2BAA2B,YAAY,aAAa,IACpD,KAAK,KAAK,eAAe,iBAAiB;AAChD;;;;;AAMA,SAAgB,mBACd,gBAAwB,GAAG,QAAQ,GACnC,cAA4D,QAAQ,KAC5D;CACR,OAAO,KAAK,KAAK,gBAAgB,eAAe,WAAW,GAAG,iBAAiB;AACjF;;;;;;;;AASA,SAAgB,2BACd,WACA,gBAAwB,GAAG,QAAQ,GACnC,cAA4D,QAAQ,KAC3D;CACT,MAAM,SAAS,KAAK,QAAQ,WAAW,iBAAiB;CACxD,IAAI,WAAW,KAAK,QAAQ,gBAAgB,eAAe,WAAW,CAAC,GAAG,OAAO;CACjF,IAAI;EACF,OAAO,GAAG,SAAS,MAAM,CAAC,CAAC,YAAY;CACzC,QAAQ;EAEN,OAAO;CACT;AACF;;;;;AAMA,SAAgB,iBACd,cAA4D,QAAQ,KACpE,gBAAwB,GAAG,QAAQ,GAC3B;CACR,MAAM,aAAa,YAAY,wBAAwB,EAAE,KAAK;CAC9D,IAAI,CAAC,YAAY,OAAO,KAAK,KAAK,gBAAgB,eAAe,WAAW,GAAG,eAAe;CAC9F,OAAO,2BAA2B,YAAY,aAAa;AAC7D;;AAGA,SAAS,eAAe,gBAAiC;CACvD,IAAI;EACF,OACE,GAAG,WAAW,KAAK,KAAK,gBAAgB,WAAW,CAAC,KACpD,OAAO,KAAK,SAAS,KAAK,KAAK,gBAAgB,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,KACrE,OAAO,SAAS,eAAe,cAAc,CAAC,CAAC,CAAC,oBAAoB;CAExE,QAAQ;EAEN,OAAO;CACT;AACF;;;;;;AAOA,SAAgB,qBAAqB,gBAAwB,gBAAwB,GAAG,QAAQ,GAAW;CACzG,IAAI,eAAe,cAAc,GAAG,OAAO;CAC3C,MAAM,KAAK,KAAK,KAAK,eAAe,mBAAmB,eAAe;CACtE,OAAO,OAAO,kBAAkB,eAAe,EAAE,IAAI,KAAK;AAC5D;AACA,SAAgB,eAAe,gBAAgC;CAC7D,OAAO,KAAK,KAAK,gBAAgB,aAAa;AAChD;AAEA,SAAgB,iBAAiB,gBAAgC;CAC/D,OAAO,KAAK,KAAK,gBAAgB,gBAAgB;AACnD;AAEA,SAAS,WAAW,OAA0B;CAC5C,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,QAAQ,UAA2B,OAAO,UAAU,QAAQ,IAAI,CAAC;AACvG;AAEA,SAAS,qBAAqB,gBAAwB,QAAwB;CAC5E,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAM;CACrD,IAAI,SAAS,WAAW,IAAI,KAAK,KAAK,WAAW,QAAQ,GAAG,OAAO;CACnE,OAAO,SAAS,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AAC1C;AAEA,SAAS,mBAAmB,OAAwB;CAClD,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG;CAC7C,OACE,eAAe,kBACf,eAAA,oBACA,qBAAqB,SAAS,UAAU;AAE5C;AAEA,SAAS,kBAAkB,OAAe,WAA4B;CACpE,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG;CAC7C,OAAO,WAAW,SAAS,SAAS,UAAU,MAAM,KAAK,eAAe,QAAQ,UAAU;AAC5F;;AAGA,SAAgB,gBAAgB,SAAqB,gBAAwB,QAAsC;CACjH,MAAM,QAAQ,qBAAqB,gBAAgB,OAAO,SAAS;CAInE,MAAM,aAAa;EACjB;EACA;EACA,GAAG;EACH,GAAG,WAAW,QAAQ,eAAe,CAAC,CAAC,QAAQ,UAAU,CAAC,mBAAmB,KAAK,CAAC;CACrF;CACA,MAAM,SAAS,CACb,OACA,GAAG,WAAW,QAAQ,WAAW,CAAC,CAAC,QAChC,UAAU,UAAU,SAAS,CAAC,kBAAkB,OAAO,OAAO,SAAS,CAC1E,CACF;CACA,OAAO;EACL,GAAG;GACF,oBAAoB;GACpB,iBAAiB;GACjB,aAAa;GAGb,YAAY,OAAO,QAAQ,eAAe,WAAW,QAAQ,aAAa,OAAO;CACpF;AACF;AAEA,SAAgB,eAAe,gBAAoC;CACjE,MAAM,WAAW,SAAS,eAAe,cAAc,CAAC;CACxD,OAAO,SAAS,QAAQ,IAAI,WAAW,CAAC;AAC1C;AAEA,SAAgB,oBAAoB,UAA8B;CAChE,OAAO,GAAG,KAAK,UAAU,UAAU,MAAM,CAAC,EAAE;AAC9C;;AAGA,SAAgB,gBAAgB,gBAAwB,QAAkC;CACxF,MAAM,eAAe,eAAe,cAAc;CAClD,gBACE,cACA,oBAAoB,gBAAgB,eAAe,cAAc,GAAG,gBAAgB,MAAM,CAAC,CAC7F;CACA,OAAO;AACT;;AAGA,SAAgB,sBAAsB,WAA4B;CAChE,IAAI;EACF,MAAM,SAAS,KAAK,MAAM,GAAG,aAAa,KAAK,KAAK,WAAW,gBAAgB,GAAG,MAAM,CAAC;EAIzF,OAAO,OAAO,SAAA,mBAA8B,OAAO,iBAAA;CACrD,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,sBAAsB,gBAA4C;CACzE,MAAM,YAAY,KAAK,KAAK,gBAAgB,GAAG,kBAAkB,MAAM,GAAG,CAAC;CAE3E,OADa,GAAG,UAAU,WAAW,EAAE,gBAAgB,MAAM,CACnD,CAAC,EAAE,YAAY,KAAK,sBAAsB,SAAS,IAAI,YAAY,KAAA;AAC/E;AAEA,SAAS,0BAA0B,OAAwB;CACzD,MAAM,aAAa,MAAM,WAAW,iBAAiB,IAAI,MAAM,MAAM,CAAwB,IAAI;CACjG,OAAO,WAAW,WAAW,mBAAmB,KAAK,eAAe;AACtE;AAEA,SAAS,eAAe,OAAwB;CAC9C,OAAO,UAAA,oBAAsC,qBAAqB,SAAS,KAAK;AAClF;;;;;;;;AASA,SAAgB,mBAAmB,gBAAkC;CACnE,MAAM,UAAoB,CAAC;CAC3B,MAAM,eAAe,eAAe,cAAc;CAClD,MAAM,YAAY,KAAK,KAAK,iBAAiB,cAAc,GAAG,aAAa;CAC3E,MAAM,UAAU,eAAe,cAAc;CAC7C,MAAM,aAAa,WAAW,QAAQ,eAAe;CACrD,MAAM,SAAS,WAAW,QAAQ,WAAW;CAC7C,MAAM,aAAa,UAAkB,KAAK,QAAQ,gBAAgB,KAAK,MAAM;CAI7E,IAFE,WAAW,SAAS,cAAc,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ,eAAe,eAEvE;EACjB,MAAM,cAAc,WAAW,KAAK,yBAAyB;EAC7D,MAAM,OAAmB,EAAE,GAAG,QAAQ;EACtC,IAAI,MAAM,QAAQ,QAAQ,eAAe,GACvC,KAAK,kBAAmB,QAAQ,eAAe,CAAe,QAC3D,UAAU,UAAU,mBAAmB,eAAe,OAAO,UAAU,YAAY,CAAC,eAAe,KAAK,EAC3G;EAEF,IAAI,MAAM,QAAQ,QAAQ,WAAW,GACnC,KAAK,cAAe,QAAQ,WAAW,CAAe,QACnD,UAAU,OAAO,UAAU,YAAY,CAAC,UAAU,KAAK,CAC1D;EAEF,IAAI,QAAQ,eAAe,eAAe,OAAO,KAAK;EACtD,gBAAgB,cAAc,oBAAoB,IAAI,CAAC;EACvD,QAAQ,KAAK,YAAY;CAC3B;CACA,IAAI,GAAG,UAAU,WAAW,EAAE,gBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG;EAChE,GAAG,OAAO,WAAW,EAAE,OAAO,KAAK,CAAC;EACpC,QAAQ,KAAK,SAAS;CACxB;CACA,MAAM,aAAa,sBAAsB,cAAc;CACvD,IAAI,YAAY;EACd,GAAG,OAAO,YAAY;GAAE,WAAW;GAAM,OAAO;EAAK,CAAC;EACtD,QAAQ,KAAK,UAAU;CACzB;CACA,OAAO;AACT"}
@@ -0,0 +1,228 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let typebox = require("typebox");
3
+ let typebox_value = require("typebox/value");
4
+ //#region src/schemas/protocol.ts
5
+ const DOOM_PROTOCOL_ERROR_CODE = {
6
+ aborted: "ABORTED",
7
+ invalidMessage: "INVALID_MESSAGE",
8
+ providerError: "PROVIDER_ERROR",
9
+ timeout: "TIMEOUT"
10
+ };
11
+ const DEFAULT_PROTOCOL_TIMEOUT_MS = 5e3;
12
+ const DEFAULT_DUPLICATE_WINDOW = 256;
13
+ const ProtocolErrorSchema = typebox.Type.Object({
14
+ code: typebox.Type.String({ minLength: 1 }),
15
+ message: typebox.Type.String({ minLength: 1 }),
16
+ retryable: typebox.Type.Optional(typebox.Type.Boolean())
17
+ }, { additionalProperties: false });
18
+ var DoomProtocolError = class extends Error {
19
+ code;
20
+ retryable;
21
+ constructor(payload) {
22
+ super(payload.message);
23
+ this.name = "DoomProtocolError";
24
+ this.code = payload.code;
25
+ this.retryable = payload.retryable ?? false;
26
+ }
27
+ };
28
+ var DoomProtocolValidationError = class extends DoomProtocolError {
29
+ constructor(channel, details) {
30
+ super({
31
+ code: DOOM_PROTOCOL_ERROR_CODE.invalidMessage,
32
+ message: `Invalid message on ${channel}: ${details}`
33
+ });
34
+ this.name = "DoomProtocolValidationError";
35
+ }
36
+ };
37
+ const EnvelopeBaseSchema = typebox.Type.Object({
38
+ protocol: typebox.Type.String({ minLength: 1 }),
39
+ version: typebox.Type.Literal(1),
40
+ kind: typebox.Type.String({ minLength: 1 }),
41
+ messageId: typebox.Type.String({ minLength: 1 }),
42
+ correlationId: typebox.Type.Optional(typebox.Type.String({ minLength: 1 })),
43
+ source: typebox.Type.String({ minLength: 1 }),
44
+ sessionId: typebox.Type.String({ minLength: 1 })
45
+ }, { additionalProperties: false });
46
+ function envelopeSchema(payload) {
47
+ return typebox.Type.Object({
48
+ ...EnvelopeBaseSchema.properties,
49
+ payload
50
+ }, { additionalProperties: false });
51
+ }
52
+ function protocolName(channel) {
53
+ const match = /^(doom:[^:]+(?::[^:]+)*):v\d+:/.exec(channel);
54
+ if (!match) throw new Error(`Invalid Doom protocol channel: ${channel}`);
55
+ return match[1];
56
+ }
57
+ /** Up to three field-level problems, e.g. `/ must have required properties path`. */
58
+ function validationDetails(schema, value) {
59
+ return (0, typebox_value.Errors)(schema, value).filter((error) => !(error.keyword === "boolean" && error.schemaPath.endsWith("/additionalProperties"))).slice(0, 3).map((error) => {
60
+ const extra = error.keyword === "additionalProperties" ? `: ${(error.params.additionalProperties ?? []).join(", ")}` : "";
61
+ return `${error.instancePath || "/"} ${error.message}${extra}`;
62
+ }).join("; ");
63
+ }
64
+ function assertValid(channel, schema, value) {
65
+ if (!(0, typebox_value.Check)(schema, value)) throw new DoomProtocolValidationError(channel, validationDetails(schema, value));
66
+ }
67
+ function asProtocolError(error) {
68
+ if (error instanceof DoomProtocolError) return {
69
+ code: error.code,
70
+ message: error.message,
71
+ retryable: error.retryable
72
+ };
73
+ return {
74
+ code: DOOM_PROTOCOL_ERROR_CODE.providerError,
75
+ message: error instanceof Error ? error.message : String(error)
76
+ };
77
+ }
78
+ function defineNotification(definition) {
79
+ protocolName(definition.channel);
80
+ return definition;
81
+ }
82
+ function defineRequestReply(definition) {
83
+ const protocol = protocolName(definition.channels.request);
84
+ for (const channel of [definition.channels.response, definition.channels.error]) if (protocolName(channel) !== protocol) throw new Error("Request/reply channels must share one protocol");
85
+ return {
86
+ requestChannel: definition.channels.request,
87
+ responseChannel: definition.channels.response,
88
+ errorChannel: definition.channels.error,
89
+ requestKind: definition.kinds.request,
90
+ responseKind: definition.kinds.response,
91
+ request: definition.request,
92
+ response: definition.response
93
+ };
94
+ }
95
+ const defineJob = defineRequestReply;
96
+ function createProtocolRuntime(options) {
97
+ const timeoutDefault = options.defaultTimeoutMs ?? DEFAULT_PROTOCOL_TIMEOUT_MS;
98
+ const duplicateWindow = options.duplicateWindow ?? DEFAULT_DUPLICATE_WINDOW;
99
+ const createMessageId = options.createMessageId ?? (() => `${options.source}:${crypto.randomUUID()}`);
100
+ const rethrowAsync = (error) => {
101
+ queueMicrotask(() => {
102
+ throw error instanceof Error ? error : new Error(String(error));
103
+ });
104
+ };
105
+ function duplicateGuard() {
106
+ const handled = /* @__PURE__ */ new Set();
107
+ return (messageId) => {
108
+ if (handled.has(messageId)) return false;
109
+ handled.add(messageId);
110
+ if (handled.size > duplicateWindow) handled.delete(handled.values().next().value);
111
+ return true;
112
+ };
113
+ }
114
+ function base(channel, kind, messageId = createMessageId(), correlationId) {
115
+ return {
116
+ protocol: protocolName(channel),
117
+ version: 1,
118
+ kind,
119
+ messageId,
120
+ ...correlationId ? { correlationId } : {},
121
+ source: options.source,
122
+ sessionId: options.sessionId
123
+ };
124
+ }
125
+ return {
126
+ notify(definition, payload) {
127
+ assertValid(definition.channel, definition.payload, payload);
128
+ options.bus.emit(definition.channel, {
129
+ ...base(definition.channel, definition.kind),
130
+ payload
131
+ });
132
+ },
133
+ onNotification(definition, handler) {
134
+ const schema = envelopeSchema(definition.payload);
135
+ const remember = duplicateGuard();
136
+ return options.bus.on(definition.channel, (message) => {
137
+ assertValid(definition.channel, schema, message);
138
+ const envelope = message;
139
+ if (envelope.sessionId !== options.sessionId) return;
140
+ if (!remember(envelope.messageId)) return;
141
+ Promise.resolve(handler(envelope.payload, envelope)).catch(rethrowAsync);
142
+ });
143
+ },
144
+ request(definition, payload, requestOptions = {}) {
145
+ assertValid(definition.requestChannel, definition.request, payload);
146
+ const messageId = createMessageId();
147
+ const responseSchema = envelopeSchema(definition.response);
148
+ const errorSchema = envelopeSchema(ProtocolErrorSchema);
149
+ return new Promise((resolve, reject) => {
150
+ let settled = false;
151
+ const cleanups = [];
152
+ const finish = (action) => {
153
+ if (settled) return;
154
+ settled = true;
155
+ for (const cleanup of cleanups.splice(0)) cleanup();
156
+ action();
157
+ };
158
+ cleanups.push(options.bus.on(definition.responseChannel, (message) => {
159
+ assertValid(definition.responseChannel, responseSchema, message);
160
+ const envelope = message;
161
+ if (envelope.sessionId !== options.sessionId) return;
162
+ if (envelope.correlationId !== messageId) return;
163
+ if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;
164
+ finish(() => resolve(envelope.payload));
165
+ }), options.bus.on(definition.errorChannel, (message) => {
166
+ assertValid(definition.errorChannel, errorSchema, message);
167
+ const envelope = message;
168
+ if (envelope.sessionId !== options.sessionId) return;
169
+ if (envelope.correlationId !== messageId) return;
170
+ if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;
171
+ finish(() => reject(new DoomProtocolError(envelope.payload)));
172
+ }));
173
+ const timer = setTimeout(() => finish(() => reject(new DoomProtocolError({
174
+ code: DOOM_PROTOCOL_ERROR_CODE.timeout,
175
+ message: `Timed out waiting for ${definition.responseKind}`
176
+ }))), requestOptions.timeoutMs ?? timeoutDefault);
177
+ cleanups.push(() => clearTimeout(timer));
178
+ if (requestOptions.signal) {
179
+ const abort = () => finish(() => reject(new DoomProtocolError({
180
+ code: DOOM_PROTOCOL_ERROR_CODE.aborted,
181
+ message: "Request aborted"
182
+ })));
183
+ requestOptions.signal.addEventListener("abort", abort, { once: true });
184
+ cleanups.push(() => requestOptions.signal?.removeEventListener("abort", abort));
185
+ if (requestOptions.signal.aborted) return abort();
186
+ }
187
+ options.bus.emit(definition.requestChannel, {
188
+ ...base(definition.requestChannel, definition.requestKind, messageId),
189
+ payload
190
+ });
191
+ });
192
+ },
193
+ provide(definition, handler) {
194
+ const requestSchema = envelopeSchema(definition.request);
195
+ const remember = duplicateGuard();
196
+ return options.bus.on(definition.requestChannel, (message) => {
197
+ assertValid(definition.requestChannel, requestSchema, message);
198
+ const envelope = message;
199
+ if (envelope.sessionId !== options.sessionId) return;
200
+ if (!remember(envelope.messageId)) return;
201
+ Promise.resolve().then(() => handler(envelope.payload, envelope)).then((payload) => {
202
+ assertValid(definition.responseChannel, definition.response, payload);
203
+ options.bus.emit(definition.responseChannel, {
204
+ ...base(definition.responseChannel, definition.responseKind, createMessageId(), envelope.messageId),
205
+ payload
206
+ });
207
+ }, (error) => {
208
+ options.bus.emit(definition.errorChannel, {
209
+ ...base(definition.errorChannel, "error", createMessageId(), envelope.messageId),
210
+ payload: asProtocolError(error)
211
+ });
212
+ });
213
+ });
214
+ }
215
+ };
216
+ }
217
+ //#endregion
218
+ exports.DOOM_PROTOCOL_ERROR_CODE = DOOM_PROTOCOL_ERROR_CODE;
219
+ exports.DoomProtocolError = DoomProtocolError;
220
+ exports.DoomProtocolValidationError = DoomProtocolValidationError;
221
+ exports.ProtocolErrorSchema = ProtocolErrorSchema;
222
+ exports.createProtocolRuntime = createProtocolRuntime;
223
+ exports.defineJob = defineJob;
224
+ exports.defineNotification = defineNotification;
225
+ exports.defineRequestReply = defineRequestReply;
226
+ exports.validationDetails = validationDetails;
227
+
228
+ //# sourceMappingURL=runtimeProtocol.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeProtocol.cjs","names":["Type","Errors","Check"],"sources":["../src/schemas/protocol.ts"],"sourcesContent":["import { type Static, type TSchema, Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\nexport const DOOM_PROTOCOL_ERROR_CODE = {\n aborted: 'ABORTED',\n invalidMessage: 'INVALID_MESSAGE',\n providerError: 'PROVIDER_ERROR',\n timeout: 'TIMEOUT',\n} as const;\n\nconst DEFAULT_PROTOCOL_TIMEOUT_MS = 5_000;\nconst DEFAULT_DUPLICATE_WINDOW = 256;\n\nexport interface EventBusLike {\n emit(event: string, data: unknown): void;\n on(event: string, handler: (data: unknown) => void): () => void;\n}\n\nexport const ProtocolErrorSchema = Type.Object(\n {\n code: Type.String({ minLength: 1 }),\n message: Type.String({ minLength: 1 }),\n retryable: Type.Optional(Type.Boolean()),\n },\n { additionalProperties: false },\n);\n\nexport type ProtocolErrorPayload = Static<typeof ProtocolErrorSchema>;\n\nexport class DoomProtocolError extends Error {\n readonly code: string;\n readonly retryable: boolean;\n\n constructor(payload: ProtocolErrorPayload) {\n super(payload.message);\n this.name = 'DoomProtocolError';\n this.code = payload.code;\n this.retryable = payload.retryable ?? false;\n }\n}\n\nexport class DoomProtocolValidationError extends DoomProtocolError {\n constructor(channel: string, details: string) {\n super({ code: DOOM_PROTOCOL_ERROR_CODE.invalidMessage, message: `Invalid message on ${channel}: ${details}` });\n this.name = 'DoomProtocolValidationError';\n }\n}\n\nexport interface ProtocolIdentity {\n source: string;\n sessionId: string;\n}\n\ninterface ProtocolEnvelope<TPayload> extends ProtocolIdentity {\n protocol: string;\n version: 1;\n kind: string;\n messageId: string;\n correlationId?: string;\n payload: TPayload;\n}\n\nexport interface NotificationDefinition<TPayload extends TSchema> {\n channel: string;\n kind: string;\n payload: TPayload;\n}\n\nexport interface RequestReplyDefinition<TRequest extends TSchema, TResponse extends TSchema> {\n requestChannel: string;\n responseChannel: string;\n errorChannel: string;\n requestKind: string;\n responseKind: string;\n request: TRequest;\n response: TResponse;\n}\n\nexport interface RequestOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n /** Ignore correlated replies from any source except this exact provider. */\n expectedSource?: string;\n}\n\nexport interface ProtocolRuntimeOptions extends ProtocolIdentity {\n bus: EventBusLike;\n defaultTimeoutMs?: number;\n createMessageId?: () => string;\n duplicateWindow?: number;\n}\n\nexport interface ProtocolRuntime {\n notify<TPayload extends TSchema>(definition: NotificationDefinition<TPayload>, payload: Static<TPayload>): void;\n onNotification<TPayload extends TSchema>(\n definition: NotificationDefinition<TPayload>,\n handler: (payload: Static<TPayload>, identity: ProtocolIdentity) => void | Promise<void>,\n ): () => void;\n request<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n payload: Static<TRequest>,\n options?: RequestOptions,\n ): Promise<Static<TResponse>>;\n provide<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n handler: (payload: Static<TRequest>, identity: ProtocolIdentity) => Static<TResponse> | Promise<Static<TResponse>>,\n ): () => void;\n}\n\nconst EnvelopeBaseSchema = Type.Object(\n {\n protocol: Type.String({ minLength: 1 }),\n version: Type.Literal(1),\n kind: Type.String({ minLength: 1 }),\n messageId: Type.String({ minLength: 1 }),\n correlationId: Type.Optional(Type.String({ minLength: 1 })),\n source: Type.String({ minLength: 1 }),\n sessionId: Type.String({ minLength: 1 }),\n },\n { additionalProperties: false },\n);\n\nfunction envelopeSchema<TPayload extends TSchema>(payload: TPayload) {\n return Type.Object({ ...EnvelopeBaseSchema.properties, payload }, { additionalProperties: false });\n}\n\nfunction protocolName(channel: string): string {\n const match = /^(doom:[^:]+(?::[^:]+)*):v\\d+:/.exec(channel);\n if (!match) throw new Error(`Invalid Doom protocol channel: ${channel}`);\n return match[1];\n}\n\n/** Up to three field-level problems, e.g. `/ must have required properties path`. */\nexport function validationDetails(schema: TSchema, value: unknown): string {\n return (\n Errors(schema, value)\n // Each extra key also yields a bare `schema is false`; the additionalProperties entry names them instead.\n .filter((error) => !(error.keyword === 'boolean' && error.schemaPath.endsWith('/additionalProperties')))\n .slice(0, 3)\n .map((error) => {\n const extra =\n error.keyword === 'additionalProperties'\n ? `: ${((error.params as { additionalProperties?: string[] }).additionalProperties ?? []).join(', ')}`\n : '';\n return `${error.instancePath || '/'} ${error.message}${extra}`;\n })\n .join('; ')\n );\n}\n\nfunction assertValid<TSchemaValue extends TSchema>(\n channel: string,\n schema: TSchemaValue,\n value: unknown,\n): asserts value is Static<TSchemaValue> {\n if (!Check(schema, value)) throw new DoomProtocolValidationError(channel, validationDetails(schema, value));\n}\n\nfunction asProtocolError(error: unknown): ProtocolErrorPayload {\n if (error instanceof DoomProtocolError) {\n return { code: error.code, message: error.message, retryable: error.retryable };\n }\n return {\n code: DOOM_PROTOCOL_ERROR_CODE.providerError,\n message: error instanceof Error ? error.message : String(error),\n };\n}\n\nexport function defineNotification<TPayload extends TSchema>(definition: {\n channel: `doom:${string}:${string}:v1:${string}`;\n kind: string;\n payload: TPayload;\n}): NotificationDefinition<TPayload> {\n protocolName(definition.channel);\n return definition;\n}\n\nexport function defineRequestReply<TRequest extends TSchema, TResponse extends TSchema>(definition: {\n channels: {\n request: `doom:${string}:${string}:v1:${string}`;\n response: `doom:${string}:${string}:v1:${string}`;\n error: `doom:${string}:${string}:v1:${string}`;\n };\n kinds: { request: string; response: string };\n request: TRequest;\n response: TResponse;\n}): RequestReplyDefinition<TRequest, TResponse> {\n const protocol = protocolName(definition.channels.request);\n for (const channel of [definition.channels.response, definition.channels.error]) {\n if (protocolName(channel) !== protocol) throw new Error('Request/reply channels must share one protocol');\n }\n return {\n requestChannel: definition.channels.request,\n responseChannel: definition.channels.response,\n errorChannel: definition.channels.error,\n requestKind: definition.kinds.request,\n responseKind: definition.kinds.response,\n request: definition.request,\n response: definition.response,\n };\n}\n\nexport const defineJob = defineRequestReply;\n\nexport function createProtocolRuntime(options: ProtocolRuntimeOptions): ProtocolRuntime {\n const timeoutDefault = options.defaultTimeoutMs ?? DEFAULT_PROTOCOL_TIMEOUT_MS;\n const duplicateWindow = options.duplicateWindow ?? DEFAULT_DUPLICATE_WINDOW;\n const createMessageId = options.createMessageId ?? (() => `${options.source}:${crypto.randomUUID()}`);\n\n const rethrowAsync = (error: unknown): void => {\n queueMicrotask(() => {\n throw error instanceof Error ? error : new Error(String(error));\n });\n };\n\n function duplicateGuard(): (messageId: string) => boolean {\n const handled = new Set<string>();\n return (messageId) => {\n if (handled.has(messageId)) return false;\n handled.add(messageId);\n if (handled.size > duplicateWindow) handled.delete(handled.values().next().value as string);\n return true;\n };\n }\n\n function base(channel: string, kind: string, messageId = createMessageId(), correlationId?: string) {\n return {\n protocol: protocolName(channel),\n version: 1 as const,\n kind,\n messageId,\n ...(correlationId ? { correlationId } : {}),\n source: options.source,\n sessionId: options.sessionId,\n };\n }\n\n return {\n notify<TPayload extends TSchema>(definition: NotificationDefinition<TPayload>, payload: Static<TPayload>) {\n assertValid(definition.channel, definition.payload, payload);\n options.bus.emit(definition.channel, { ...base(definition.channel, definition.kind), payload });\n },\n\n onNotification<TPayload extends TSchema>(\n definition: NotificationDefinition<TPayload>,\n handler: (payload: Static<TPayload>, identity: ProtocolIdentity) => void | Promise<void>,\n ) {\n const schema = envelopeSchema(definition.payload);\n const remember = duplicateGuard();\n return options.bus.on(definition.channel, (message) => {\n assertValid(definition.channel, schema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TPayload>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (!remember(envelope.messageId)) return;\n void Promise.resolve(handler(envelope.payload, envelope)).catch(rethrowAsync);\n });\n },\n\n request<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n payload: Static<TRequest>,\n requestOptions: RequestOptions = {},\n ) {\n assertValid(definition.requestChannel, definition.request, payload);\n const messageId = createMessageId();\n const responseSchema = envelopeSchema(definition.response);\n const errorSchema = envelopeSchema(ProtocolErrorSchema);\n return new Promise<Static<typeof definition.response>>((resolve, reject) => {\n let settled = false;\n const cleanups: Array<() => void> = [];\n const finish = (action: () => void) => {\n if (settled) return;\n settled = true;\n for (const cleanup of cleanups.splice(0)) cleanup();\n action();\n };\n cleanups.push(\n options.bus.on(definition.responseChannel, (message) => {\n assertValid(definition.responseChannel, responseSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TResponse>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (envelope.correlationId !== messageId) return;\n if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;\n finish(() => resolve(envelope.payload));\n }),\n options.bus.on(definition.errorChannel, (message) => {\n assertValid(definition.errorChannel, errorSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<ProtocolErrorPayload>;\n if (envelope.sessionId !== options.sessionId) return;\n if (envelope.correlationId !== messageId) return;\n if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;\n finish(() => reject(new DoomProtocolError(envelope.payload)));\n }),\n );\n const timer = setTimeout(\n () =>\n finish(() =>\n reject(\n new DoomProtocolError({\n code: DOOM_PROTOCOL_ERROR_CODE.timeout,\n message: `Timed out waiting for ${definition.responseKind}`,\n }),\n ),\n ),\n requestOptions.timeoutMs ?? timeoutDefault,\n );\n cleanups.push(() => clearTimeout(timer));\n if (requestOptions.signal) {\n const abort = () =>\n finish(() =>\n reject(new DoomProtocolError({ code: DOOM_PROTOCOL_ERROR_CODE.aborted, message: 'Request aborted' })),\n );\n requestOptions.signal.addEventListener('abort', abort, { once: true });\n cleanups.push(() => requestOptions.signal?.removeEventListener('abort', abort));\n if (requestOptions.signal.aborted) return abort();\n }\n options.bus.emit(definition.requestChannel, {\n ...base(definition.requestChannel, definition.requestKind, messageId),\n payload,\n });\n });\n },\n\n provide<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n handler: (\n payload: Static<TRequest>,\n identity: ProtocolIdentity,\n ) => Static<TResponse> | Promise<Static<TResponse>>,\n ) {\n const requestSchema = envelopeSchema(definition.request);\n const remember = duplicateGuard();\n return options.bus.on(definition.requestChannel, (message) => {\n assertValid(definition.requestChannel, requestSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TRequest>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (!remember(envelope.messageId)) return;\n void Promise.resolve()\n .then(() => handler(envelope.payload, envelope))\n .then(\n (payload) => {\n assertValid(definition.responseChannel, definition.response, payload);\n options.bus.emit(definition.responseChannel, {\n ...base(definition.responseChannel, definition.responseKind, createMessageId(), envelope.messageId),\n payload,\n });\n },\n (error) => {\n options.bus.emit(definition.errorChannel, {\n ...base(definition.errorChannel, 'error', createMessageId(), envelope.messageId),\n payload: asProtocolError(error),\n });\n },\n );\n });\n },\n };\n}\n"],"mappings":"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"}