@agimon-ai/doompi-core 0.0.1-alpha.100

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 (1233) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -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 +2009 -0
  8. package/dist/apiContracts.cjs.map +1 -0
  9. package/dist/apiContracts.d.mts +1018 -0
  10. package/dist/apiContracts.d.mts.map +1 -0
  11. package/dist/apiContracts.mjs +1989 -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 +7 -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 +8 -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 +10 -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 +100 -0
  50. package/dist/contextDetailStore.cjs.map +1 -0
  51. package/dist/contextDetailStore.d.mts +19 -0
  52. package/dist/contextDetailStore.d.mts.map +1 -0
  53. package/dist/contextDetailStore.mjs +91 -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 +11 -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 +231 -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 +225 -0
  78. package/dist/executionBudget.mjs.map +1 -0
  79. package/dist/extensionFile.cjs +24 -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 +9 -0
  86. package/dist/headless.d.mts +2 -0
  87. package/dist/headless.mjs +2 -0
  88. package/dist/headlessHub.cjs +914 -0
  89. package/dist/headlessHub.cjs.map +1 -0
  90. package/dist/headlessHub.d.mts +157 -0
  91. package/dist/headlessHub.d.mts.map +1 -0
  92. package/dist/headlessHub.mjs +911 -0
  93. package/dist/headlessHub.mjs.map +1 -0
  94. package/dist/headlessServer.cjs +910 -0
  95. package/dist/headlessServer.cjs.map +1 -0
  96. package/dist/headlessServer.d.mts +64 -0
  97. package/dist/headlessServer.d.mts.map +1 -0
  98. package/dist/headlessServer.mjs +904 -0
  99. package/dist/headlessServer.mjs.map +1 -0
  100. package/dist/headlessSessionHost.cjs +0 -0
  101. package/dist/headlessSessionHost.d.mts +71 -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/historyImport.cjs +553 -0
  117. package/dist/historyImport.cjs.map +1 -0
  118. package/dist/historyImport.d.mts +76 -0
  119. package/dist/historyImport.d.mts.map +1 -0
  120. package/dist/historyImport.mjs +547 -0
  121. package/dist/historyImport.mjs.map +1 -0
  122. package/dist/historyOwnership.cjs +253 -0
  123. package/dist/historyOwnership.cjs.map +1 -0
  124. package/dist/historyOwnership.d.mts +23 -0
  125. package/dist/historyOwnership.d.mts.map +1 -0
  126. package/dist/historyOwnership.mjs +247 -0
  127. package/dist/historyOwnership.mjs.map +1 -0
  128. package/dist/hubChannel.cjs +4 -0
  129. package/dist/hubChannel.d.mts +2 -0
  130. package/dist/hubChannel.mjs +2 -0
  131. package/dist/index.cjs +44 -0
  132. package/dist/index.d.mts +6 -0
  133. package/dist/index.mjs +6 -0
  134. package/dist/json.cjs +6 -0
  135. package/dist/json.d.mts +2 -0
  136. package/dist/json.mjs +2 -0
  137. package/dist/jsonlSessionRepo.cjs +217 -0
  138. package/dist/jsonlSessionRepo.cjs.map +1 -0
  139. package/dist/jsonlSessionRepo.d.mts +7 -0
  140. package/dist/jsonlSessionRepo.d.mts.map +1 -0
  141. package/dist/jsonlSessionRepo.mjs +212 -0
  142. package/dist/jsonlSessionRepo.mjs.map +1 -0
  143. package/dist/kernel.cjs +3 -0
  144. package/dist/kernel.d.mts +3 -0
  145. package/dist/kernel.mjs +2 -0
  146. package/dist/leader.cjs +9 -0
  147. package/dist/leader.d.mts +2 -0
  148. package/dist/leader.mjs +2 -0
  149. package/dist/logSinkTelemetry.cjs +5 -0
  150. package/dist/logSinkTelemetry.d.mts +2 -0
  151. package/dist/logSinkTelemetry.mjs +2 -0
  152. package/dist/machineApi.cjs +92 -0
  153. package/dist/machineApi.cjs.map +1 -0
  154. package/dist/machineApi.d.mts +7 -0
  155. package/dist/machineApi.d.mts.map +1 -0
  156. package/dist/machineApi.mjs +88 -0
  157. package/dist/machineApi.mjs.map +1 -0
  158. package/dist/main.cjs +11 -0
  159. package/dist/main.d.mts +5 -0
  160. package/dist/main.mjs +4 -0
  161. package/dist/mcpFacet.cjs +12 -0
  162. package/dist/mcpFacet.d.mts +4 -0
  163. package/dist/mcpFacet.mjs +4 -0
  164. package/dist/mcpProjection.cjs +16 -0
  165. package/dist/mcpProjection.d.mts +2 -0
  166. package/dist/mcpProjection.mjs +2 -0
  167. package/dist/mcpSchemaCost.cjs +195 -0
  168. package/dist/mcpSchemaCost.cjs.map +1 -0
  169. package/dist/mcpSchemaCost.d.mts +35 -0
  170. package/dist/mcpSchemaCost.d.mts.map +1 -0
  171. package/dist/mcpSchemaCost.mjs +190 -0
  172. package/dist/mcpSchemaCost.mjs.map +1 -0
  173. package/dist/mcpSession.cjs +9 -0
  174. package/dist/mcpSession.d.mts +2 -0
  175. package/dist/mcpSession.mjs +2 -0
  176. package/dist/mcpStatus.cjs +7 -0
  177. package/dist/mcpStatus.d.mts +2 -0
  178. package/dist/mcpStatus.mjs +2 -0
  179. package/dist/mcpToolResolver.cjs +5 -0
  180. package/dist/mcpToolResolver.d.mts +2 -0
  181. package/dist/mcpToolResolver.mjs +2 -0
  182. package/dist/mcpWidget.cjs +0 -0
  183. package/dist/mcpWidget.d.mts +2 -0
  184. package/dist/mcpWidget.mjs +1 -0
  185. package/dist/moduleResolution.cjs +405 -0
  186. package/dist/moduleResolution.cjs.map +1 -0
  187. package/dist/moduleResolution.d.mts +67 -0
  188. package/dist/moduleResolution.d.mts.map +1 -0
  189. package/dist/moduleResolution.mjs +389 -0
  190. package/dist/moduleResolution.mjs.map +1 -0
  191. package/dist/narration.cjs +10 -0
  192. package/dist/narration.d.mts +2 -0
  193. package/dist/narration.mjs +2 -0
  194. package/dist/notification.cjs +17 -0
  195. package/dist/notification.d.mts +2 -0
  196. package/dist/notification.mjs +2 -0
  197. package/dist/packageApi.cjs +16 -0
  198. package/dist/packageApi.d.mts +3 -0
  199. package/dist/packageApi.mjs +3 -0
  200. package/dist/packageApiServer.cjs +191 -0
  201. package/dist/packageApiServer.cjs.map +1 -0
  202. package/dist/packageApiServer.d.mts +57 -0
  203. package/dist/packageApiServer.d.mts.map +1 -0
  204. package/dist/packageApiServer.mjs +189 -0
  205. package/dist/packageApiServer.mjs.map +1 -0
  206. package/dist/piExtension.cjs +13 -0
  207. package/dist/piExtension.d.mts +5 -0
  208. package/dist/piExtension.mjs +4 -0
  209. package/dist/piSettings.cjs +12 -0
  210. package/dist/piSettings.d.mts +2 -0
  211. package/dist/piSettings.mjs +2 -0
  212. package/dist/pluginProtocol.cjs +10 -0
  213. package/dist/pluginProtocol.d.mts +2 -0
  214. package/dist/pluginProtocol.mjs +2 -0
  215. package/dist/profileIdentity.cjs +6 -0
  216. package/dist/profileIdentity.d.mts +2 -0
  217. package/dist/profileIdentity.mjs +2 -0
  218. package/dist/protocol.cjs +10 -0
  219. package/dist/protocol.d.mts +2 -0
  220. package/dist/protocol.mjs +2 -0
  221. package/dist/readiness.cjs +8 -0
  222. package/dist/readiness.d.mts +2 -0
  223. package/dist/readiness.mjs +2 -0
  224. package/dist/relaunchHandoff.cjs +6 -0
  225. package/dist/relaunchHandoff.d.mts +2 -0
  226. package/dist/relaunchHandoff.mjs +2 -0
  227. package/dist/remoteApi.cjs +42 -0
  228. package/dist/remoteApi.cjs.map +1 -0
  229. package/dist/remoteApi.d.mts +7 -0
  230. package/dist/remoteApi.d.mts.map +1 -0
  231. package/dist/remoteApi.mjs +41 -0
  232. package/dist/remoteApi.mjs.map +1 -0
  233. package/dist/remoteRuntime.cjs +460 -0
  234. package/dist/remoteRuntime.cjs.map +1 -0
  235. package/dist/remoteRuntime.d.mts +28 -0
  236. package/dist/remoteRuntime.d.mts.map +1 -0
  237. package/dist/remoteRuntime.mjs +456 -0
  238. package/dist/remoteRuntime.mjs.map +1 -0
  239. package/dist/runtimeConfig.cjs +232 -0
  240. package/dist/runtimeConfig.cjs.map +1 -0
  241. package/dist/runtimeConfig.d.mts +313 -0
  242. package/dist/runtimeConfig.d.mts.map +1 -0
  243. package/dist/runtimeConfig.mjs +221 -0
  244. package/dist/runtimeConfig.mjs.map +1 -0
  245. package/dist/runtimeContextApi.cjs +64 -0
  246. package/dist/runtimeContextApi.cjs.map +1 -0
  247. package/dist/runtimeContextApi.d.mts +16 -0
  248. package/dist/runtimeContextApi.d.mts.map +1 -0
  249. package/dist/runtimeContextApi.mjs +62 -0
  250. package/dist/runtimeContextApi.mjs.map +1 -0
  251. package/dist/runtimeCordisHost.cjs +193 -0
  252. package/dist/runtimeCordisHost.cjs.map +1 -0
  253. package/dist/runtimeCordisHost.d.mts +63 -0
  254. package/dist/runtimeCordisHost.d.mts.map +1 -0
  255. package/dist/runtimeCordisHost.mjs +184 -0
  256. package/dist/runtimeCordisHost.mjs.map +1 -0
  257. package/dist/runtimeHeadlessSessionManager.cjs +0 -0
  258. package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
  259. package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
  260. package/dist/runtimeHeadlessSessionManager.mjs +1 -0
  261. package/dist/runtimeIdentity.cjs +26 -0
  262. package/dist/runtimeIdentity.cjs.map +1 -0
  263. package/dist/runtimeIdentity.d.mts +7 -0
  264. package/dist/runtimeIdentity.d.mts.map +1 -0
  265. package/dist/runtimeIdentity.mjs +21 -0
  266. package/dist/runtimeIdentity.mjs.map +1 -0
  267. package/dist/runtimeJson.cjs +46 -0
  268. package/dist/runtimeJson.cjs.map +1 -0
  269. package/dist/runtimeJson.d.mts +22 -0
  270. package/dist/runtimeJson.d.mts.map +1 -0
  271. package/dist/runtimeJson.mjs +39 -0
  272. package/dist/runtimeJson.mjs.map +1 -0
  273. package/dist/runtimeLogSinkTelemetry.cjs +102 -0
  274. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
  275. package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
  276. package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
  277. package/dist/runtimeLogSinkTelemetry.mjs +99 -0
  278. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
  279. package/dist/runtimePiExtension.cjs +339 -0
  280. package/dist/runtimePiExtension.cjs.map +1 -0
  281. package/dist/runtimePiExtension.d.mts +160 -0
  282. package/dist/runtimePiExtension.d.mts.map +1 -0
  283. package/dist/runtimePiExtension.mjs +333 -0
  284. package/dist/runtimePiExtension.mjs.map +1 -0
  285. package/dist/runtimePiSettings.cjs +116 -0
  286. package/dist/runtimePiSettings.cjs.map +1 -0
  287. package/dist/runtimePiSettings.d.mts +29 -0
  288. package/dist/runtimePiSettings.d.mts.map +1 -0
  289. package/dist/runtimePiSettings.mjs +103 -0
  290. package/dist/runtimePiSettings.mjs.map +1 -0
  291. package/dist/runtimeProtocol.cjs +223 -0
  292. package/dist/runtimeProtocol.cjs.map +1 -0
  293. package/dist/runtimeProtocol.d.mts +84 -0
  294. package/dist/runtimeProtocol.d.mts.map +1 -0
  295. package/dist/runtimeProtocol.mjs +215 -0
  296. package/dist/runtimeProtocol.mjs.map +1 -0
  297. package/dist/runtimeToolNames.cjs +51 -0
  298. package/dist/runtimeToolNames.cjs.map +1 -0
  299. package/dist/runtimeToolNames.d.mts +24 -0
  300. package/dist/runtimeToolNames.d.mts.map +1 -0
  301. package/dist/runtimeToolNames.mjs +49 -0
  302. package/dist/runtimeToolNames.mjs.map +1 -0
  303. package/dist/runtimeTransition.cjs +27 -0
  304. package/dist/runtimeTransition.cjs.map +1 -0
  305. package/dist/runtimeTransition.d.mts +114 -0
  306. package/dist/runtimeTransition.d.mts.map +1 -0
  307. package/dist/runtimeTransition.mjs +24 -0
  308. package/dist/runtimeTransition.mjs.map +1 -0
  309. package/dist/sandboxHarness.cjs +6 -0
  310. package/dist/sandboxHarness.d.mts +2 -0
  311. package/dist/sandboxHarness.mjs +2 -0
  312. package/dist/server.cjs +17 -0
  313. package/dist/server.d.mts +10 -0
  314. package/dist/server.mjs +7 -0
  315. package/dist/serverFacet.cjs +30 -0
  316. package/dist/serverFacet.d.mts +8 -0
  317. package/dist/serverFacet.mjs +8 -0
  318. package/dist/serverTelemetry.cjs +25 -0
  319. package/dist/serverTelemetry.cjs.map +1 -0
  320. package/dist/serverTelemetry.d.mts +12 -0
  321. package/dist/serverTelemetry.d.mts.map +1 -0
  322. package/dist/serverTelemetry.mjs +23 -0
  323. package/dist/serverTelemetry.mjs.map +1 -0
  324. package/dist/sessionFilesApi.cjs +96 -0
  325. package/dist/sessionFilesApi.cjs.map +1 -0
  326. package/dist/sessionFilesApi.d.mts +7 -0
  327. package/dist/sessionFilesApi.d.mts.map +1 -0
  328. package/dist/sessionFilesApi.mjs +91 -0
  329. package/dist/sessionFilesApi.mjs.map +1 -0
  330. package/dist/sessionMcp.cjs +6 -0
  331. package/dist/sessionMcp.d.mts +5 -0
  332. package/dist/sessionMcp.mjs +3 -0
  333. package/dist/sessionProtocol.cjs +8 -0
  334. package/dist/sessionProtocol.d.mts +3 -0
  335. package/dist/sessionProtocol.mjs +2 -0
  336. package/dist/skills.cjs +9 -0
  337. package/dist/skills.d.mts +2 -0
  338. package/dist/skills.mjs +2 -0
  339. package/dist/sqliteHistoryImport.cjs +151 -0
  340. package/dist/sqliteHistoryImport.cjs.map +1 -0
  341. package/dist/sqliteHistoryImport.d.mts +8 -0
  342. package/dist/sqliteHistoryImport.d.mts.map +1 -0
  343. package/dist/sqliteHistoryImport.mjs +146 -0
  344. package/dist/sqliteHistoryImport.mjs.map +1 -0
  345. package/dist/sqliteSessionStorage.cjs +53 -0
  346. package/dist/sqliteSessionStorage.cjs.map +1 -0
  347. package/dist/sqliteSessionStorage.d.mts +7 -0
  348. package/dist/sqliteSessionStorage.d.mts.map +1 -0
  349. package/dist/sqliteSessionStorage.mjs +49 -0
  350. package/dist/sqliteSessionStorage.mjs.map +1 -0
  351. package/dist/src/constants/authorTools.cjs +10 -0
  352. package/dist/src/constants/authorTools.cjs.map +1 -0
  353. package/dist/src/constants/authorTools.d.mts +6 -0
  354. package/dist/src/constants/authorTools.d.mts.map +1 -0
  355. package/dist/src/constants/authorTools.mjs +8 -0
  356. package/dist/src/constants/authorTools.mjs.map +1 -0
  357. package/dist/src/constants/contextApi.cjs +28 -0
  358. package/dist/src/constants/contextApi.cjs.map +1 -0
  359. package/dist/src/constants/contextApi.d.mts +21 -0
  360. package/dist/src/constants/contextApi.d.mts.map +1 -0
  361. package/dist/src/constants/contextApi.mjs +23 -0
  362. package/dist/src/constants/contextApi.mjs.map +1 -0
  363. package/dist/src/constants/remote.cjs +90 -0
  364. package/dist/src/constants/remote.cjs.map +1 -0
  365. package/dist/src/constants/remote.mjs +69 -0
  366. package/dist/src/constants/remote.mjs.map +1 -0
  367. package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
  368. package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
  369. package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
  370. package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
  371. package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
  372. package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
  373. package/dist/src/constants/voiceTools.cjs +96 -0
  374. package/dist/src/constants/voiceTools.cjs.map +1 -0
  375. package/dist/src/constants/voiceTools.d.mts +58 -0
  376. package/dist/src/constants/voiceTools.d.mts.map +1 -0
  377. package/dist/src/constants/voiceTools.mjs +60 -0
  378. package/dist/src/constants/voiceTools.mjs.map +1 -0
  379. package/dist/src/extensions/extensionFile.cjs +165 -0
  380. package/dist/src/extensions/extensionFile.cjs.map +1 -0
  381. package/dist/src/extensions/extensionFile.d.mts +79 -0
  382. package/dist/src/extensions/extensionFile.d.mts.map +1 -0
  383. package/dist/src/extensions/extensionFile.mjs +144 -0
  384. package/dist/src/extensions/extensionFile.mjs.map +1 -0
  385. package/dist/src/extensions/serverPlugin.cjs +106 -0
  386. package/dist/src/extensions/serverPlugin.cjs.map +1 -0
  387. package/dist/src/extensions/serverPlugin.d.mts +5 -0
  388. package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
  389. package/dist/src/extensions/serverPlugin.mjs +106 -0
  390. package/dist/src/extensions/serverPlugin.mjs.map +1 -0
  391. package/dist/src/extensions/webPlugin.cjs +131 -0
  392. package/dist/src/extensions/webPlugin.cjs.map +1 -0
  393. package/dist/src/extensions/webPlugin.d.mts +66 -0
  394. package/dist/src/extensions/webPlugin.d.mts.map +1 -0
  395. package/dist/src/extensions/webPlugin.mjs +110 -0
  396. package/dist/src/extensions/webPlugin.mjs.map +1 -0
  397. package/dist/src/pi/piSessionRuntime.cjs +572 -0
  398. package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
  399. package/dist/src/pi/piSessionRuntime.d.mts +43 -0
  400. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
  401. package/dist/src/pi/piSessionRuntime.mjs +571 -0
  402. package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
  403. package/dist/src/pi/piWebSocketListener.cjs +115 -0
  404. package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
  405. package/dist/src/pi/piWebSocketListener.mjs +115 -0
  406. package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
  407. package/dist/src/schemas/agentModel.cjs +33 -0
  408. package/dist/src/schemas/agentModel.cjs.map +1 -0
  409. package/dist/src/schemas/agentModel.d.mts +26 -0
  410. package/dist/src/schemas/agentModel.d.mts.map +1 -0
  411. package/dist/src/schemas/agentModel.mjs +32 -0
  412. package/dist/src/schemas/agentModel.mjs.map +1 -0
  413. package/dist/src/schemas/apiContracts.d.mts +58 -0
  414. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  415. package/dist/src/schemas/askUser.cjs +42 -0
  416. package/dist/src/schemas/askUser.cjs.map +1 -0
  417. package/dist/src/schemas/askUser.d.mts +47 -0
  418. package/dist/src/schemas/askUser.d.mts.map +1 -0
  419. package/dist/src/schemas/askUser.mjs +37 -0
  420. package/dist/src/schemas/askUser.mjs.map +1 -0
  421. package/dist/src/schemas/backgroundWork.cjs +31 -0
  422. package/dist/src/schemas/backgroundWork.cjs.map +1 -0
  423. package/dist/src/schemas/backgroundWork.d.mts +72 -0
  424. package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
  425. package/dist/src/schemas/backgroundWork.mjs +27 -0
  426. package/dist/src/schemas/backgroundWork.mjs.map +1 -0
  427. package/dist/src/schemas/childProcess.cjs +67 -0
  428. package/dist/src/schemas/childProcess.cjs.map +1 -0
  429. package/dist/src/schemas/childProcess.d.mts +30 -0
  430. package/dist/src/schemas/childProcess.d.mts.map +1 -0
  431. package/dist/src/schemas/childProcess.mjs +55 -0
  432. package/dist/src/schemas/childProcess.mjs.map +1 -0
  433. package/dist/src/schemas/cockpitContainer.cjs +31 -0
  434. package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
  435. package/dist/src/schemas/cockpitContainer.d.mts +80 -0
  436. package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
  437. package/dist/src/schemas/cockpitContainer.mjs +30 -0
  438. package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
  439. package/dist/src/schemas/contextContributions.cjs +17 -0
  440. package/dist/src/schemas/contextContributions.cjs.map +1 -0
  441. package/dist/src/schemas/contextContributions.d.mts +49 -0
  442. package/dist/src/schemas/contextContributions.d.mts.map +1 -0
  443. package/dist/src/schemas/contextContributions.mjs +15 -0
  444. package/dist/src/schemas/contextContributions.mjs.map +1 -0
  445. package/dist/src/schemas/delegation.cjs +91 -0
  446. package/dist/src/schemas/delegation.cjs.map +1 -0
  447. package/dist/src/schemas/delegation.d.mts +95 -0
  448. package/dist/src/schemas/delegation.d.mts.map +1 -0
  449. package/dist/src/schemas/delegation.mjs +76 -0
  450. package/dist/src/schemas/delegation.mjs.map +1 -0
  451. package/dist/src/schemas/extensionFile.d.mts +136 -0
  452. package/dist/src/schemas/extensionFile.d.mts.map +1 -0
  453. package/dist/src/schemas/footer.cjs +48 -0
  454. package/dist/src/schemas/footer.cjs.map +1 -0
  455. package/dist/src/schemas/footer.d.mts +48 -0
  456. package/dist/src/schemas/footer.d.mts.map +1 -0
  457. package/dist/src/schemas/footer.mjs +45 -0
  458. package/dist/src/schemas/footer.mjs.map +1 -0
  459. package/dist/src/schemas/headless.cjs +44 -0
  460. package/dist/src/schemas/headless.cjs.map +1 -0
  461. package/dist/src/schemas/headless.d.mts +370 -0
  462. package/dist/src/schemas/headless.d.mts.map +1 -0
  463. package/dist/src/schemas/headless.mjs +38 -0
  464. package/dist/src/schemas/headless.mjs.map +1 -0
  465. package/dist/src/schemas/help.cjs +281 -0
  466. package/dist/src/schemas/help.cjs.map +1 -0
  467. package/dist/src/schemas/help.d.mts +119 -0
  468. package/dist/src/schemas/help.d.mts.map +1 -0
  469. package/dist/src/schemas/help.mjs +262 -0
  470. package/dist/src/schemas/help.mjs.map +1 -0
  471. package/dist/src/schemas/hubChannel.cjs +20 -0
  472. package/dist/src/schemas/hubChannel.cjs.map +1 -0
  473. package/dist/src/schemas/hubChannel.d.mts +236 -0
  474. package/dist/src/schemas/hubChannel.d.mts.map +1 -0
  475. package/dist/src/schemas/hubChannel.mjs +19 -0
  476. package/dist/src/schemas/hubChannel.mjs.map +1 -0
  477. package/dist/src/schemas/leader.cjs +57 -0
  478. package/dist/src/schemas/leader.cjs.map +1 -0
  479. package/dist/src/schemas/leader.d.mts +107 -0
  480. package/dist/src/schemas/leader.d.mts.map +1 -0
  481. package/dist/src/schemas/leader.mjs +51 -0
  482. package/dist/src/schemas/leader.mjs.map +1 -0
  483. package/dist/src/schemas/mcpBundle.cjs +92 -0
  484. package/dist/src/schemas/mcpBundle.cjs.map +1 -0
  485. package/dist/src/schemas/mcpBundle.d.mts +33 -0
  486. package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
  487. package/dist/src/schemas/mcpBundle.mjs +90 -0
  488. package/dist/src/schemas/mcpBundle.mjs.map +1 -0
  489. package/dist/src/schemas/mcpFacet.cjs +24 -0
  490. package/dist/src/schemas/mcpFacet.cjs.map +1 -0
  491. package/dist/src/schemas/mcpFacet.d.mts +91 -0
  492. package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
  493. package/dist/src/schemas/mcpFacet.mjs +21 -0
  494. package/dist/src/schemas/mcpFacet.mjs.map +1 -0
  495. package/dist/src/schemas/mcpProjection.cjs +117 -0
  496. package/dist/src/schemas/mcpProjection.cjs.map +1 -0
  497. package/dist/src/schemas/mcpProjection.d.mts +124 -0
  498. package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
  499. package/dist/src/schemas/mcpProjection.mjs +104 -0
  500. package/dist/src/schemas/mcpProjection.mjs.map +1 -0
  501. package/dist/src/schemas/mcpSession.cjs +57 -0
  502. package/dist/src/schemas/mcpSession.cjs.map +1 -0
  503. package/dist/src/schemas/mcpSession.d.mts +57 -0
  504. package/dist/src/schemas/mcpSession.d.mts.map +1 -0
  505. package/dist/src/schemas/mcpSession.mjs +51 -0
  506. package/dist/src/schemas/mcpSession.mjs.map +1 -0
  507. package/dist/src/schemas/mcpStatus.cjs +52 -0
  508. package/dist/src/schemas/mcpStatus.cjs.map +1 -0
  509. package/dist/src/schemas/mcpStatus.d.mts +73 -0
  510. package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
  511. package/dist/src/schemas/mcpStatus.mjs +48 -0
  512. package/dist/src/schemas/mcpStatus.mjs.map +1 -0
  513. package/dist/src/schemas/mcpToolResolver.cjs +17 -0
  514. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
  515. package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
  516. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
  517. package/dist/src/schemas/mcpToolResolver.mjs +15 -0
  518. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
  519. package/dist/src/schemas/narration.cjs +54 -0
  520. package/dist/src/schemas/narration.cjs.map +1 -0
  521. package/dist/src/schemas/narration.d.mts +29 -0
  522. package/dist/src/schemas/narration.d.mts.map +1 -0
  523. package/dist/src/schemas/narration.mjs +47 -0
  524. package/dist/src/schemas/narration.mjs.map +1 -0
  525. package/dist/src/schemas/notification.cjs +122 -0
  526. package/dist/src/schemas/notification.cjs.map +1 -0
  527. package/dist/src/schemas/notification.d.mts +48 -0
  528. package/dist/src/schemas/notification.d.mts.map +1 -0
  529. package/dist/src/schemas/notification.mjs +108 -0
  530. package/dist/src/schemas/notification.mjs.map +1 -0
  531. package/dist/src/schemas/packageApi.cjs +73 -0
  532. package/dist/src/schemas/packageApi.cjs.map +1 -0
  533. package/dist/src/schemas/packageApi.d.mts +249 -0
  534. package/dist/src/schemas/packageApi.d.mts.map +1 -0
  535. package/dist/src/schemas/packageApi.mjs +64 -0
  536. package/dist/src/schemas/packageApi.mjs.map +1 -0
  537. package/dist/src/schemas/piTool.cjs +26 -0
  538. package/dist/src/schemas/piTool.cjs.map +1 -0
  539. package/dist/src/schemas/piTool.d.mts +25 -0
  540. package/dist/src/schemas/piTool.d.mts.map +1 -0
  541. package/dist/src/schemas/piTool.mjs +26 -0
  542. package/dist/src/schemas/piTool.mjs.map +1 -0
  543. package/dist/src/schemas/pluginContributions.cjs +19 -0
  544. package/dist/src/schemas/pluginContributions.cjs.map +1 -0
  545. package/dist/src/schemas/pluginContributions.d.mts +56 -0
  546. package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
  547. package/dist/src/schemas/pluginContributions.mjs +18 -0
  548. package/dist/src/schemas/pluginContributions.mjs.map +1 -0
  549. package/dist/src/schemas/pluginProtocol.cjs +103 -0
  550. package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
  551. package/dist/src/schemas/pluginProtocol.d.mts +68 -0
  552. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
  553. package/dist/src/schemas/pluginProtocol.mjs +96 -0
  554. package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
  555. package/dist/src/schemas/profileIdentity.cjs +67 -0
  556. package/dist/src/schemas/profileIdentity.cjs.map +1 -0
  557. package/dist/src/schemas/profileIdentity.d.mts +50 -0
  558. package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
  559. package/dist/src/schemas/profileIdentity.mjs +64 -0
  560. package/dist/src/schemas/profileIdentity.mjs.map +1 -0
  561. package/dist/src/schemas/readiness.cjs +251 -0
  562. package/dist/src/schemas/readiness.cjs.map +1 -0
  563. package/dist/src/schemas/readiness.d.mts +84 -0
  564. package/dist/src/schemas/readiness.d.mts.map +1 -0
  565. package/dist/src/schemas/readiness.mjs +246 -0
  566. package/dist/src/schemas/readiness.mjs.map +1 -0
  567. package/dist/src/schemas/relaunchHandoff.cjs +47 -0
  568. package/dist/src/schemas/relaunchHandoff.cjs.map +1 -0
  569. package/dist/src/schemas/relaunchHandoff.d.mts +25 -0
  570. package/dist/src/schemas/relaunchHandoff.d.mts.map +1 -0
  571. package/dist/src/schemas/relaunchHandoff.mjs +44 -0
  572. package/dist/src/schemas/relaunchHandoff.mjs.map +1 -0
  573. package/dist/src/schemas/sandboxHarness.cjs +29 -0
  574. package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
  575. package/dist/src/schemas/sandboxHarness.d.mts +39 -0
  576. package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
  577. package/dist/src/schemas/sandboxHarness.mjs +26 -0
  578. package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
  579. package/dist/src/schemas/serverBundle.cjs +79 -0
  580. package/dist/src/schemas/serverBundle.cjs.map +1 -0
  581. package/dist/src/schemas/serverBundle.d.mts +34 -0
  582. package/dist/src/schemas/serverBundle.d.mts.map +1 -0
  583. package/dist/src/schemas/serverBundle.mjs +77 -0
  584. package/dist/src/schemas/serverBundle.mjs.map +1 -0
  585. package/dist/src/schemas/serverFacet.cjs +102 -0
  586. package/dist/src/schemas/serverFacet.cjs.map +1 -0
  587. package/dist/src/schemas/serverFacet.d.mts +141 -0
  588. package/dist/src/schemas/serverFacet.d.mts.map +1 -0
  589. package/dist/src/schemas/serverFacet.mjs +93 -0
  590. package/dist/src/schemas/serverFacet.mjs.map +1 -0
  591. package/dist/src/schemas/sessionMcpActivity.d.mts +45 -0
  592. package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
  593. package/dist/src/schemas/sessionProtocol.cjs +17 -0
  594. package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
  595. package/dist/src/schemas/sessionProtocol.d.mts +308 -0
  596. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
  597. package/dist/src/schemas/sessionProtocol.mjs +12 -0
  598. package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
  599. package/dist/src/schemas/sessionUpdates.d.mts +34 -0
  600. package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
  601. package/dist/src/schemas/skills.cjs +115 -0
  602. package/dist/src/schemas/skills.cjs.map +1 -0
  603. package/dist/src/schemas/skills.d.mts +65 -0
  604. package/dist/src/schemas/skills.d.mts.map +1 -0
  605. package/dist/src/schemas/skills.mjs +109 -0
  606. package/dist/src/schemas/skills.mjs.map +1 -0
  607. package/dist/src/schemas/toolOverrides.cjs +17 -0
  608. package/dist/src/schemas/toolOverrides.cjs.map +1 -0
  609. package/dist/src/schemas/toolOverrides.d.mts +29 -0
  610. package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
  611. package/dist/src/schemas/toolOverrides.mjs +15 -0
  612. package/dist/src/schemas/toolOverrides.mjs.map +1 -0
  613. package/dist/src/schemas/toolSurface.cjs +17 -0
  614. package/dist/src/schemas/toolSurface.cjs.map +1 -0
  615. package/dist/src/schemas/toolSurface.d.mts +70 -0
  616. package/dist/src/schemas/toolSurface.d.mts.map +1 -0
  617. package/dist/src/schemas/toolSurface.mjs +15 -0
  618. package/dist/src/schemas/toolSurface.mjs.map +1 -0
  619. package/dist/src/schemas/uiHub.cjs +17 -0
  620. package/dist/src/schemas/uiHub.cjs.map +1 -0
  621. package/dist/src/schemas/uiHub.d.mts +23 -0
  622. package/dist/src/schemas/uiHub.d.mts.map +1 -0
  623. package/dist/src/schemas/uiHub.mjs +15 -0
  624. package/dist/src/schemas/uiHub.mjs.map +1 -0
  625. package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
  626. package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
  627. package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
  628. package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
  629. package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
  630. package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
  631. package/dist/src/schemas/voiceTools.cjs +205 -0
  632. package/dist/src/schemas/voiceTools.cjs.map +1 -0
  633. package/dist/src/schemas/voiceTools.d.mts +120 -0
  634. package/dist/src/schemas/voiceTools.d.mts.map +1 -0
  635. package/dist/src/schemas/voiceTools.mjs +194 -0
  636. package/dist/src/schemas/voiceTools.mjs.map +1 -0
  637. package/dist/src/server/devProxyForward.cjs +141 -0
  638. package/dist/src/server/devProxyForward.cjs.map +1 -0
  639. package/dist/src/server/devProxyForward.mjs +139 -0
  640. package/dist/src/server/devProxyForward.mjs.map +1 -0
  641. package/dist/src/server/devProxyRoutes.cjs +97 -0
  642. package/dist/src/server/devProxyRoutes.cjs.map +1 -0
  643. package/dist/src/server/devProxyRoutes.mjs +97 -0
  644. package/dist/src/server/devProxyRoutes.mjs.map +1 -0
  645. package/dist/src/server/devProxySocket.cjs +87 -0
  646. package/dist/src/server/devProxySocket.cjs.map +1 -0
  647. package/dist/src/server/devProxySocket.mjs +87 -0
  648. package/dist/src/server/devProxySocket.mjs.map +1 -0
  649. package/dist/src/server/directHarnessRuntime.cjs +1964 -0
  650. package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
  651. package/dist/src/server/directHarnessRuntime.d.mts +3 -0
  652. package/dist/src/server/directHarnessRuntime.mjs +1958 -0
  653. package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
  654. package/dist/src/server/harnessErrorMessage.cjs +13 -0
  655. package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
  656. package/dist/src/server/harnessErrorMessage.mjs +13 -0
  657. package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
  658. package/dist/src/server/headlessProtocol.cjs +366 -0
  659. package/dist/src/server/headlessProtocol.cjs.map +1 -0
  660. package/dist/src/server/headlessProtocol.mjs +366 -0
  661. package/dist/src/server/headlessProtocol.mjs.map +1 -0
  662. package/dist/src/server/jsonlTranscriptReader.cjs +85 -0
  663. package/dist/src/server/jsonlTranscriptReader.cjs.map +1 -0
  664. package/dist/src/server/jsonlTranscriptReader.mjs +83 -0
  665. package/dist/src/server/jsonlTranscriptReader.mjs.map +1 -0
  666. package/dist/src/server/mcpBundleLoader.cjs +115 -0
  667. package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
  668. package/dist/src/server/mcpBundleLoader.d.mts +27 -0
  669. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
  670. package/dist/src/server/mcpBundleLoader.mjs +111 -0
  671. package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
  672. package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
  673. package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
  674. package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
  675. package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
  676. package/dist/src/server/remoteRoutes.cjs +386 -0
  677. package/dist/src/server/remoteRoutes.cjs.map +1 -0
  678. package/dist/src/server/remoteRoutes.mjs +386 -0
  679. package/dist/src/server/remoteRoutes.mjs.map +1 -0
  680. package/dist/src/server/serverFacetLoader.cjs +220 -0
  681. package/dist/src/server/serverFacetLoader.cjs.map +1 -0
  682. package/dist/src/server/serverFacetLoader.d.mts +77 -0
  683. package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
  684. package/dist/src/server/serverFacetLoader.mjs +215 -0
  685. package/dist/src/server/serverFacetLoader.mjs.map +1 -0
  686. package/dist/src/server/sessionMcpHandler.cjs +494 -0
  687. package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
  688. package/dist/src/server/sessionMcpHandler.d.mts +47 -0
  689. package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
  690. package/dist/src/server/sessionMcpHandler.mjs +493 -0
  691. package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
  692. package/dist/src/server/sessionMcpRoutes.cjs +780 -0
  693. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
  694. package/dist/src/server/sessionMcpRoutes.mjs +775 -0
  695. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
  696. package/dist/src/server/threadJournals.cjs +172 -0
  697. package/dist/src/server/threadJournals.cjs.map +1 -0
  698. package/dist/src/server/threadJournals.mjs +169 -0
  699. package/dist/src/server/threadJournals.mjs.map +1 -0
  700. package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
  701. package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
  702. package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
  703. package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
  704. package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
  705. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
  706. package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
  707. package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
  708. package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
  709. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
  710. package/dist/src/services/bundlePublication/index.cjs +88 -0
  711. package/dist/src/services/bundlePublication/index.cjs.map +1 -0
  712. package/dist/src/services/bundlePublication/index.mjs +85 -0
  713. package/dist/src/services/bundlePublication/index.mjs.map +1 -0
  714. package/dist/src/services/contextApiUrls/index.cjs +14 -0
  715. package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
  716. package/dist/src/services/contextApiUrls/index.d.mts +6 -0
  717. package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
  718. package/dist/src/services/contextApiUrls/index.mjs +14 -0
  719. package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
  720. package/dist/src/services/contextContributions/index.cjs +79 -0
  721. package/dist/src/services/contextContributions/index.cjs.map +1 -0
  722. package/dist/src/services/contextContributions/index.d.mts +6 -0
  723. package/dist/src/services/contextContributions/index.d.mts.map +1 -0
  724. package/dist/src/services/contextContributions/index.mjs +79 -0
  725. package/dist/src/services/contextContributions/index.mjs.map +1 -0
  726. package/dist/src/services/contextUsage/index.cjs +27 -0
  727. package/dist/src/services/contextUsage/index.cjs.map +1 -0
  728. package/dist/src/services/contextUsage/index.mjs +25 -0
  729. package/dist/src/services/contextUsage/index.mjs.map +1 -0
  730. package/dist/src/services/devProxyPolicy/index.cjs +168 -0
  731. package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
  732. package/dist/src/services/devProxyPolicy/index.mjs +165 -0
  733. package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
  734. package/dist/src/services/devProxyStore/index.cjs +107 -0
  735. package/dist/src/services/devProxyStore/index.cjs.map +1 -0
  736. package/dist/src/services/devProxyStore/index.mjs +104 -0
  737. package/dist/src/services/devProxyStore/index.mjs.map +1 -0
  738. package/dist/src/services/deviceAuth/index.cjs +125 -0
  739. package/dist/src/services/deviceAuth/index.cjs.map +1 -0
  740. package/dist/src/services/deviceAuth/index.d.mts +9 -0
  741. package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
  742. package/dist/src/services/deviceAuth/index.mjs +125 -0
  743. package/dist/src/services/deviceAuth/index.mjs.map +1 -0
  744. package/dist/src/services/deviceSessions/index.cjs +147 -0
  745. package/dist/src/services/deviceSessions/index.cjs.map +1 -0
  746. package/dist/src/services/deviceSessions/index.d.mts +15 -0
  747. package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
  748. package/dist/src/services/deviceSessions/index.mjs +141 -0
  749. package/dist/src/services/deviceSessions/index.mjs.map +1 -0
  750. package/dist/src/services/headlessClient/index.cjs +125 -0
  751. package/dist/src/services/headlessClient/index.cjs.map +1 -0
  752. package/dist/src/services/headlessClient/index.mjs +125 -0
  753. package/dist/src/services/headlessClient/index.mjs.map +1 -0
  754. package/dist/src/services/historyCreationFileSystem/index.cjs +115 -0
  755. package/dist/src/services/historyCreationFileSystem/index.cjs.map +1 -0
  756. package/dist/src/services/historyCreationFileSystem/index.mjs +115 -0
  757. package/dist/src/services/historyCreationFileSystem/index.mjs.map +1 -0
  758. package/dist/src/services/hubChannelHarness/index.cjs +50 -0
  759. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
  760. package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
  761. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
  762. package/dist/src/services/hubChannelHarness/index.mjs +50 -0
  763. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
  764. package/dist/src/services/kernel/index.cjs +147 -0
  765. package/dist/src/services/kernel/index.cjs.map +1 -0
  766. package/dist/src/services/kernel/index.d.mts +9 -0
  767. package/dist/src/services/kernel/index.d.mts.map +1 -0
  768. package/dist/src/services/kernel/index.mjs +147 -0
  769. package/dist/src/services/kernel/index.mjs.map +1 -0
  770. package/dist/src/services/loginFlow/index.cjs +131 -0
  771. package/dist/src/services/loginFlow/index.cjs.map +1 -0
  772. package/dist/src/services/loginFlow/index.mjs +131 -0
  773. package/dist/src/services/loginFlow/index.mjs.map +1 -0
  774. package/dist/src/services/loopbackAddress/index.cjs +58 -0
  775. package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
  776. package/dist/src/services/loopbackAddress/index.mjs +56 -0
  777. package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
  778. package/dist/src/services/openSessionRegistry/index.cjs +144 -0
  779. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
  780. package/dist/src/services/openSessionRegistry/index.d.mts +40 -0
  781. package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
  782. package/dist/src/services/openSessionRegistry/index.mjs +141 -0
  783. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
  784. package/dist/src/services/packageApiHarness/index.cjs +36 -0
  785. package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
  786. package/dist/src/services/packageApiHarness/index.d.mts +40 -0
  787. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
  788. package/dist/src/services/packageApiHarness/index.mjs +36 -0
  789. package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
  790. package/dist/src/services/packageResource/index.cjs +54 -0
  791. package/dist/src/services/packageResource/index.cjs.map +1 -0
  792. package/dist/src/services/packageResource/index.d.mts +26 -0
  793. package/dist/src/services/packageResource/index.d.mts.map +1 -0
  794. package/dist/src/services/packageResource/index.mjs +51 -0
  795. package/dist/src/services/packageResource/index.mjs.map +1 -0
  796. package/dist/src/services/pairingFlow/index.cjs +145 -0
  797. package/dist/src/services/pairingFlow/index.cjs.map +1 -0
  798. package/dist/src/services/pairingFlow/index.d.mts +44 -0
  799. package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
  800. package/dist/src/services/pairingFlow/index.mjs +145 -0
  801. package/dist/src/services/pairingFlow/index.mjs.map +1 -0
  802. package/dist/src/services/pairingPage/index.cjs +450 -0
  803. package/dist/src/services/pairingPage/index.cjs.map +1 -0
  804. package/dist/src/services/pairingPage/index.mjs +447 -0
  805. package/dist/src/services/pairingPage/index.mjs.map +1 -0
  806. package/dist/src/services/piExtensionHost/index.cjs +821 -0
  807. package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
  808. package/dist/src/services/piExtensionHost/index.mjs +817 -0
  809. package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
  810. package/dist/src/services/piHelpTools/index.cjs +68 -0
  811. package/dist/src/services/piHelpTools/index.cjs.map +1 -0
  812. package/dist/src/services/piHelpTools/index.d.mts +10 -0
  813. package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
  814. package/dist/src/services/piHelpTools/index.mjs +68 -0
  815. package/dist/src/services/piHelpTools/index.mjs.map +1 -0
  816. package/dist/src/services/piSessionEntries/index.cjs +112 -0
  817. package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
  818. package/dist/src/services/piSessionEntries/index.mjs +108 -0
  819. package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
  820. package/dist/src/services/pluginLifecycle/index.cjs +71 -0
  821. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
  822. package/dist/src/services/pluginLifecycle/index.d.mts +11 -0
  823. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
  824. package/dist/src/services/pluginLifecycle/index.mjs +71 -0
  825. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
  826. package/dist/src/services/providerAuth/index.cjs +156 -0
  827. package/dist/src/services/providerAuth/index.cjs.map +1 -0
  828. package/dist/src/services/providerAuth/index.mjs +154 -0
  829. package/dist/src/services/providerAuth/index.mjs.map +1 -0
  830. package/dist/src/services/remoteAccess/index.cjs +396 -0
  831. package/dist/src/services/remoteAccess/index.cjs.map +1 -0
  832. package/dist/src/services/remoteAccess/index.d.mts +81 -0
  833. package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
  834. package/dist/src/services/remoteAccess/index.mjs +396 -0
  835. package/dist/src/services/remoteAccess/index.mjs.map +1 -0
  836. package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
  837. package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
  839. package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/index.cjs +126 -0
  841. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/index.mjs +121 -0
  843. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
  844. package/dist/src/services/remoteGuardPolicy/index.cjs +190 -0
  845. package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
  846. package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
  847. package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
  848. package/dist/src/services/remoteGuardPolicy/index.mjs +186 -0
  849. package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
  850. package/dist/src/services/requestReceipts/index.cjs +161 -0
  851. package/dist/src/services/requestReceipts/index.cjs.map +1 -0
  852. package/dist/src/services/requestReceipts/index.d.mts +11 -0
  853. package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
  854. package/dist/src/services/requestReceipts/index.mjs +161 -0
  855. package/dist/src/services/requestReceipts/index.mjs.map +1 -0
  856. package/dist/src/services/rpcTranscript/index.cjs +590 -0
  857. package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
  858. package/dist/src/services/rpcTranscript/index.d.mts +50 -0
  859. package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
  860. package/dist/src/services/rpcTranscript/index.mjs +589 -0
  861. package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
  862. package/dist/src/services/serverFacet/index.cjs +197 -0
  863. package/dist/src/services/serverFacet/index.cjs.map +1 -0
  864. package/dist/src/services/serverFacet/index.d.mts +31 -0
  865. package/dist/src/services/serverFacet/index.d.mts.map +1 -0
  866. package/dist/src/services/serverFacet/index.mjs +197 -0
  867. package/dist/src/services/serverFacet/index.mjs.map +1 -0
  868. package/dist/src/services/sessionGitStatus/index.cjs +46 -0
  869. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
  870. package/dist/src/services/sessionGitStatus/index.mjs +46 -0
  871. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
  872. package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
  873. package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
  874. package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
  875. package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
  876. package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
  877. package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
  878. package/dist/src/services/sessionMcpAuthorization/index.cjs +432 -0
  879. package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
  880. package/dist/src/services/sessionMcpAuthorization/index.d.mts +123 -0
  881. package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
  882. package/dist/src/services/sessionMcpAuthorization/index.mjs +430 -0
  883. package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
  884. package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
  885. package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
  886. package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
  887. package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
  888. package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
  889. package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
  890. package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
  891. package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
  892. package/dist/src/services/sessionPresentation/index.cjs +119 -0
  893. package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
  894. package/dist/src/services/sessionPresentation/index.mjs +119 -0
  895. package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
  896. package/dist/src/services/sqliteSessionHistory/index.cjs +105 -0
  897. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
  898. package/dist/src/services/sqliteSessionHistory/index.d.mts +29 -0
  899. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
  900. package/dist/src/services/sqliteSessionHistory/index.mjs +100 -0
  901. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
  902. package/dist/src/services/sqliteTranscriptReader/index.cjs +70 -0
  903. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
  904. package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
  905. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
  906. package/dist/src/services/sqliteTranscriptReader/index.mjs +67 -0
  907. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
  908. package/dist/src/services/toolCost/index.cjs +47 -0
  909. package/dist/src/services/toolCost/index.cjs.map +1 -0
  910. package/dist/src/services/toolCost/index.d.mts +38 -0
  911. package/dist/src/services/toolCost/index.d.mts.map +1 -0
  912. package/dist/src/services/toolCost/index.mjs +46 -0
  913. package/dist/src/services/toolCost/index.mjs.map +1 -0
  914. package/dist/src/services/toolOverrides/index.cjs +45 -0
  915. package/dist/src/services/toolOverrides/index.cjs.map +1 -0
  916. package/dist/src/services/toolOverrides/index.d.mts +6 -0
  917. package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
  918. package/dist/src/services/toolOverrides/index.mjs +45 -0
  919. package/dist/src/services/toolOverrides/index.mjs.map +1 -0
  920. package/dist/src/services/toolPrompt/index.cjs +13 -0
  921. package/dist/src/services/toolPrompt/index.cjs.map +1 -0
  922. package/dist/src/services/toolPrompt/index.mjs +13 -0
  923. package/dist/src/services/toolPrompt/index.mjs.map +1 -0
  924. package/dist/src/services/toolSurface/index.cjs +134 -0
  925. package/dist/src/services/toolSurface/index.cjs.map +1 -0
  926. package/dist/src/services/toolSurface/index.d.mts +19 -0
  927. package/dist/src/services/toolSurface/index.d.mts.map +1 -0
  928. package/dist/src/services/toolSurface/index.mjs +134 -0
  929. package/dist/src/services/toolSurface/index.mjs.map +1 -0
  930. package/dist/src/services/traceContext/index.cjs +13 -0
  931. package/dist/src/services/traceContext/index.cjs.map +1 -0
  932. package/dist/src/services/traceContext/index.mjs +13 -0
  933. package/dist/src/services/traceContext/index.mjs.map +1 -0
  934. package/dist/src/services/transcriptPages/index.cjs +74 -0
  935. package/dist/src/services/transcriptPages/index.cjs.map +1 -0
  936. package/dist/src/services/transcriptPages/index.mjs +73 -0
  937. package/dist/src/services/transcriptPages/index.mjs.map +1 -0
  938. package/dist/src/services/tunnelOutput/index.cjs +58 -0
  939. package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
  940. package/dist/src/services/tunnelOutput/index.mjs +54 -0
  941. package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
  942. package/dist/src/services/tunnelProcess/index.cjs +487 -0
  943. package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
  944. package/dist/src/services/tunnelProcess/index.mjs +481 -0
  945. package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
  946. package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
  947. package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
  948. package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
  949. package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
  950. package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
  951. package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
  952. package/dist/src/services/voiceToolsContract/index.cjs +26 -0
  953. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
  954. package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
  955. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
  956. package/dist/src/services/voiceToolsContract/index.mjs +24 -0
  957. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
  958. package/dist/src/services/webauthn/index.cjs +262 -0
  959. package/dist/src/services/webauthn/index.cjs.map +1 -0
  960. package/dist/src/services/webauthn/index.d.mts +39 -0
  961. package/dist/src/services/webauthn/index.d.mts.map +1 -0
  962. package/dist/src/services/webauthn/index.mjs +262 -0
  963. package/dist/src/services/webauthn/index.mjs.map +1 -0
  964. package/dist/src/services/webauthnPolicy/index.cjs +163 -0
  965. package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
  966. package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
  967. package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
  968. package/dist/src/services/webauthnPolicy/index.mjs +156 -0
  969. package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
  970. package/dist/src/services/workspaceRegistry/index.cjs +151 -0
  971. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
  972. package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
  973. package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
  974. package/dist/src/services/workspaceRegistry/index.mjs +144 -0
  975. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
  976. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +261 -0
  977. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
  978. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +32 -0
  979. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
  980. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +254 -0
  981. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
  982. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
  983. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
  984. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
  985. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
  986. package/dist/src/systems/child/services/childSession/index.cjs +219 -0
  987. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
  988. package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
  989. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
  990. package/dist/src/systems/child/services/childSession/index.mjs +219 -0
  991. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
  992. package/dist/src/systems/child/types/childSession.cjs +19 -0
  993. package/dist/src/systems/child/types/childSession.cjs.map +1 -0
  994. package/dist/src/systems/child/types/childSession.d.mts +148 -0
  995. package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
  996. package/dist/src/systems/child/types/childSession.mjs +16 -0
  997. package/dist/src/systems/child/types/childSession.mjs.map +1 -0
  998. package/dist/src/systems/main/adapters/headlessHost.cjs +554 -0
  999. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
  1000. package/dist/src/systems/main/adapters/headlessHost.d.mts +111 -0
  1001. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
  1002. package/dist/src/systems/main/adapters/headlessHost.mjs +552 -0
  1003. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
  1004. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1293 -0
  1005. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
  1006. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +14 -0
  1007. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
  1008. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1288 -0
  1009. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
  1010. package/dist/src/systems/main/types/headlessHost.d.mts +36 -0
  1011. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
  1012. package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
  1013. package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
  1014. package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
  1015. package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
  1016. package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
  1017. package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
  1018. package/dist/src/testing/pi/testHost.cjs +398 -0
  1019. package/dist/src/testing/pi/testHost.cjs.map +1 -0
  1020. package/dist/src/testing/pi/testHost.d.mts +160 -0
  1021. package/dist/src/testing/pi/testHost.d.mts.map +1 -0
  1022. package/dist/src/testing/pi/testHost.mjs +398 -0
  1023. package/dist/src/testing/pi/testHost.mjs.map +1 -0
  1024. package/dist/src/types/config.d.mts +20 -0
  1025. package/dist/src/types/config.d.mts.map +1 -0
  1026. package/dist/src/types/kernel.d.mts +69 -0
  1027. package/dist/src/types/kernel.d.mts.map +1 -0
  1028. package/dist/src/types/remote.d.mts +124 -0
  1029. package/dist/src/types/remote.d.mts.map +1 -0
  1030. package/dist/src/types/server/directHarnessRuntime.d.mts +209 -0
  1031. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
  1032. package/dist/src/types/server/session.d.mts +5 -0
  1033. package/dist/src/types/server/session.d.mts.map +1 -0
  1034. package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
  1035. package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
  1036. package/dist/src/web/models/globalStore.cjs +23 -0
  1037. package/dist/src/web/models/globalStore.cjs.map +1 -0
  1038. package/dist/src/web/models/globalStore.d.mts +6 -0
  1039. package/dist/src/web/models/globalStore.d.mts.map +1 -0
  1040. package/dist/src/web/models/globalStore.mjs +23 -0
  1041. package/dist/src/web/models/globalStore.mjs.map +1 -0
  1042. package/dist/src/web/models/sessionStore.cjs +56 -0
  1043. package/dist/src/web/models/sessionStore.cjs.map +1 -0
  1044. package/dist/src/web/models/sessionStore.d.mts +14 -0
  1045. package/dist/src/web/models/sessionStore.d.mts.map +1 -0
  1046. package/dist/src/web/models/sessionStore.mjs +56 -0
  1047. package/dist/src/web/models/sessionStore.mjs.map +1 -0
  1048. package/dist/src/web/models/workspaceStore.cjs +50 -0
  1049. package/dist/src/web/models/workspaceStore.cjs.map +1 -0
  1050. package/dist/src/web/models/workspaceStore.d.mts +18 -0
  1051. package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
  1052. package/dist/src/web/models/workspaceStore.mjs +50 -0
  1053. package/dist/src/web/models/workspaceStore.mjs.map +1 -0
  1054. package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
  1055. package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
  1056. package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
  1057. package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
  1058. package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
  1059. package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
  1060. package/dist/src/web/schemas/template.cjs +15 -0
  1061. package/dist/src/web/schemas/template.cjs.map +1 -0
  1062. package/dist/src/web/schemas/template.d.mts +6 -0
  1063. package/dist/src/web/schemas/template.d.mts.map +1 -0
  1064. package/dist/src/web/schemas/template.mjs +15 -0
  1065. package/dist/src/web/schemas/template.mjs.map +1 -0
  1066. package/dist/src/web/services/apiClient/index.cjs +156 -0
  1067. package/dist/src/web/services/apiClient/index.cjs.map +1 -0
  1068. package/dist/src/web/services/apiClient/index.d.mts +152 -0
  1069. package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
  1070. package/dist/src/web/services/apiClient/index.mjs +154 -0
  1071. package/dist/src/web/services/apiClient/index.mjs.map +1 -0
  1072. package/dist/src/web/services/apiPaths/index.cjs +83 -0
  1073. package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
  1074. package/dist/src/web/services/apiPaths/index.d.mts +81 -0
  1075. package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
  1076. package/dist/src/web/services/apiPaths/index.mjs +78 -0
  1077. package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
  1078. package/dist/src/web/services/apiRoutes/index.cjs +47 -0
  1079. package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
  1080. package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
  1081. package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
  1082. package/dist/src/web/services/apiRoutes/index.mjs +43 -0
  1083. package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
  1084. package/dist/src/web/services/mcpWidget.cjs +9 -0
  1085. package/dist/src/web/services/mcpWidget.cjs.map +1 -0
  1086. package/dist/src/web/services/mcpWidget.d.mts +6 -0
  1087. package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
  1088. package/dist/src/web/services/mcpWidget.mjs +9 -0
  1089. package/dist/src/web/services/mcpWidget.mjs.map +1 -0
  1090. package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
  1091. package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
  1092. package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
  1093. package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
  1094. package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
  1095. package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
  1096. package/dist/src/web/services/testing/channels.cjs +11 -0
  1097. package/dist/src/web/services/testing/channels.cjs.map +1 -0
  1098. package/dist/src/web/services/testing/channels.d.mts +8 -0
  1099. package/dist/src/web/services/testing/channels.d.mts.map +1 -0
  1100. package/dist/src/web/services/testing/channels.mjs +11 -0
  1101. package/dist/src/web/services/testing/channels.mjs.map +1 -0
  1102. package/dist/src/web/services/testing/index.cjs +27 -0
  1103. package/dist/src/web/services/testing/index.cjs.map +1 -0
  1104. package/dist/src/web/services/testing/index.d.mts +31 -0
  1105. package/dist/src/web/services/testing/index.d.mts.map +1 -0
  1106. package/dist/src/web/services/testing/index.mjs +27 -0
  1107. package/dist/src/web/services/testing/index.mjs.map +1 -0
  1108. package/dist/src/web/services/testing/rpcStub.cjs +58 -0
  1109. package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
  1110. package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
  1111. package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
  1112. package/dist/src/web/services/testing/rpcStub.mjs +58 -0
  1113. package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
  1114. package/dist/src/web/services/testing/slotProps.cjs +91 -0
  1115. package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
  1116. package/dist/src/web/services/testing/slotProps.d.mts +69 -0
  1117. package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
  1118. package/dist/src/web/services/testing/slotProps.mjs +90 -0
  1119. package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
  1120. package/dist/src/web/services/testing/templateRail.cjs +128 -0
  1121. package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
  1122. package/dist/src/web/services/testing/templateRail.d.mts +31 -0
  1123. package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
  1124. package/dist/src/web/services/testing/templateRail.mjs +126 -0
  1125. package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
  1126. package/dist/src/web/services/toolResult/index.cjs +30 -0
  1127. package/dist/src/web/services/toolResult/index.cjs.map +1 -0
  1128. package/dist/src/web/services/toolResult/index.d.mts +14 -0
  1129. package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
  1130. package/dist/src/web/services/toolResult/index.mjs +29 -0
  1131. package/dist/src/web/services/toolResult/index.mjs.map +1 -0
  1132. package/dist/src/web/types/extensionFile.d.mts +59 -0
  1133. package/dist/src/web/types/extensionFile.d.mts.map +1 -0
  1134. package/dist/src/web/types/mcpWidget.d.mts +14 -0
  1135. package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
  1136. package/dist/src/web/types/modelContext.d.mts +43 -0
  1137. package/dist/src/web/types/modelContext.d.mts.map +1 -0
  1138. package/dist/src/web/types/sessionRegistry.d.mts +43 -0
  1139. package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
  1140. package/dist/src/web/types/template.d.mts +155 -0
  1141. package/dist/src/web/types/template.d.mts.map +1 -0
  1142. package/dist/src/web/types/webPlugin.d.mts +896 -0
  1143. package/dist/src/web/types/webPlugin.d.mts.map +1 -0
  1144. package/dist/syncLocation.cjs +244 -0
  1145. package/dist/syncLocation.cjs.map +1 -0
  1146. package/dist/syncLocation.d.mts +37 -0
  1147. package/dist/syncLocation.d.mts.map +1 -0
  1148. package/dist/syncLocation.mjs +231 -0
  1149. package/dist/syncLocation.mjs.map +1 -0
  1150. package/dist/syncRegistration.cjs +171 -0
  1151. package/dist/syncRegistration.cjs.map +1 -0
  1152. package/dist/syncRegistration.d.mts +48 -0
  1153. package/dist/syncRegistration.d.mts.map +1 -0
  1154. package/dist/syncRegistration.mjs +159 -0
  1155. package/dist/syncRegistration.mjs.map +1 -0
  1156. package/dist/syncStateContract.cjs +19 -0
  1157. package/dist/syncStateContract.cjs.map +1 -0
  1158. package/dist/syncStateContract.d.mts +14 -0
  1159. package/dist/syncStateContract.d.mts.map +1 -0
  1160. package/dist/syncStateContract.mjs +16 -0
  1161. package/dist/syncStateContract.mjs.map +1 -0
  1162. package/dist/terminalPiChildSessionService.cjs +267 -0
  1163. package/dist/terminalPiChildSessionService.cjs.map +1 -0
  1164. package/dist/terminalPiChildSessionService.d.mts +42 -0
  1165. package/dist/terminalPiChildSessionService.d.mts.map +1 -0
  1166. package/dist/terminalPiChildSessionService.mjs +260 -0
  1167. package/dist/terminalPiChildSessionService.mjs.map +1 -0
  1168. package/dist/testing.cjs +11 -0
  1169. package/dist/testing.d.mts +6 -0
  1170. package/dist/testing.mjs +6 -0
  1171. package/dist/toolInventory.cjs +136 -0
  1172. package/dist/toolInventory.cjs.map +1 -0
  1173. package/dist/toolInventory.d.mts +66 -0
  1174. package/dist/toolInventory.d.mts.map +1 -0
  1175. package/dist/toolInventory.mjs +133 -0
  1176. package/dist/toolInventory.mjs.map +1 -0
  1177. package/dist/toolNames.cjs +4 -0
  1178. package/dist/toolNames.d.mts +2 -0
  1179. package/dist/toolNames.mjs +2 -0
  1180. package/dist/toolOverrides.cjs +7 -0
  1181. package/dist/toolOverrides.d.mts +3 -0
  1182. package/dist/toolOverrides.mjs +3 -0
  1183. package/dist/toolSurface.cjs +7 -0
  1184. package/dist/toolSurface.d.mts +3 -0
  1185. package/dist/toolSurface.mjs +3 -0
  1186. package/dist/transition.cjs +5 -0
  1187. package/dist/transition.d.cjs +5 -0
  1188. package/dist/transition.d.mts +2 -0
  1189. package/dist/transition.mjs +2 -0
  1190. package/dist/transitionClassifier.cjs +112 -0
  1191. package/dist/transitionClassifier.cjs.map +1 -0
  1192. package/dist/transitionClassifier.d.mts +18 -0
  1193. package/dist/transitionClassifier.d.mts.map +1 -0
  1194. package/dist/transitionClassifier.mjs +111 -0
  1195. package/dist/transitionClassifier.mjs.map +1 -0
  1196. package/dist/transitionCoordinator.cjs +131 -0
  1197. package/dist/transitionCoordinator.cjs.map +1 -0
  1198. package/dist/transitionCoordinator.d.mts +16 -0
  1199. package/dist/transitionCoordinator.d.mts.map +1 -0
  1200. package/dist/transitionCoordinator.mjs +130 -0
  1201. package/dist/transitionCoordinator.mjs.map +1 -0
  1202. package/dist/typesContextApi.cjs +0 -0
  1203. package/dist/typesContextApi.d.mts +73 -0
  1204. package/dist/typesContextApi.d.mts.map +1 -0
  1205. package/dist/typesContextApi.mjs +1 -0
  1206. package/dist/uiHub.cjs +5 -0
  1207. package/dist/uiHub.d.mts +2 -0
  1208. package/dist/uiHub.mjs +2 -0
  1209. package/dist/v3Export.cjs +1004 -0
  1210. package/dist/v3Export.cjs.map +1 -0
  1211. package/dist/v3Export.d.mts +34 -0
  1212. package/dist/v3Export.d.mts.map +1 -0
  1213. package/dist/v3Export.mjs +1000 -0
  1214. package/dist/v3Export.mjs.map +1 -0
  1215. package/dist/voiceReloadHandoff.cjs +14 -0
  1216. package/dist/voiceReloadHandoff.d.mts +4 -0
  1217. package/dist/voiceReloadHandoff.mjs +4 -0
  1218. package/dist/voiceTools.cjs +56 -0
  1219. package/dist/voiceTools.d.mts +4 -0
  1220. package/dist/voiceTools.mjs +4 -0
  1221. package/dist/web.cjs +64 -0
  1222. package/dist/web.d.mts +19 -0
  1223. package/dist/web.mjs +13 -0
  1224. package/dist/webCompositions.cjs +100 -0
  1225. package/dist/webCompositions.cjs.map +1 -0
  1226. package/dist/webCompositions.d.mts +20 -0
  1227. package/dist/webCompositions.d.mts.map +1 -0
  1228. package/dist/webCompositions.mjs +95 -0
  1229. package/dist/webCompositions.mjs.map +1 -0
  1230. package/dist/webTesting.cjs +14 -0
  1231. package/dist/webTesting.d.mts +6 -0
  1232. package/dist/webTesting.mjs +6 -0
  1233. package/package.json +616 -0
@@ -0,0 +1,54 @@
1
+ //#region src/services/tunnelOutput/index.ts
2
+ /**
3
+ * A trycloudflare hostname, and nothing that merely ends near one.
4
+ *
5
+ * The trailing lookahead is the whole point. Without it,
6
+ * `https://evil.trycloudflare.com.attacker.tld` printed by a confused or
7
+ * hostile process would match, and the extracted value becomes the origin the
8
+ * guard then trusts for every subsequent request.
9
+ */
10
+ const QUICK_TUNNEL_URL = /https:\/\/[a-z0-9][a-z0-9-]*(?:\.[a-z0-9-]+)*\.trycloudflare\.com(?![a-z0-9.-])/iu;
11
+ /** Cloudflare reports a connection registered; readiness waits for this as well as a URL. */
12
+ const CONNECTION_READY = /registered tunnel connection|connection .* registered/iu;
13
+ function tunnelTarget(port) {
14
+ return `http://127.0.0.1:${String(port)}`;
15
+ }
16
+ /**
17
+ * The cloudflared argument vector.
18
+ *
19
+ * `--url` is a flag on the `tunnel` command rather than on `run`, so it comes
20
+ * before the subcommand in both shapes. `--token-file` belongs to `run`.
21
+ *
22
+ * Flag placement here follows cloudflared's documented usage and local help.
23
+ */
24
+ function tunnelArgs(config, port, tokenFile) {
25
+ const args = ["tunnel", "--no-autoupdate"];
26
+ if (config.kind === "named" && config.configFile !== void 0) args.push("--config", config.configFile);
27
+ args.push("--url", tunnelTarget(port));
28
+ if (config.kind === "quick") return args;
29
+ args.push("run");
30
+ if (tokenFile !== void 0 && tokenFile !== "") args.push("--token-file", tokenFile);
31
+ if (config.name !== void 0) args.push(config.name);
32
+ return args;
33
+ }
34
+ /** The public origin a quick tunnel announced, or undefined if this output does not carry one. */
35
+ function extractTunnelUrl(text) {
36
+ return QUICK_TUNNEL_URL.exec(text)?.[0].toLowerCase();
37
+ }
38
+ function mentionsRegisteredConnection(text) {
39
+ return CONNECTION_READY.test(text);
40
+ }
41
+ /** Operator-facing copy for a failure, with the cause appended by the caller. */
42
+ function describeTunnelFailure(failure) {
43
+ switch (failure) {
44
+ case "not_installed": return "cloudflared is not installed. Install it (brew install cloudflared) or set DOOMPI_CLOUDFLARED.";
45
+ case "spawn_failed": return "cloudflared could not be started.";
46
+ case "timeout": return "cloudflared did not report a public URL in time.";
47
+ case "self_test_failed": return "The tunnel came up unguarded and was closed immediately.";
48
+ case "exited": return "cloudflared stopped on its own.";
49
+ }
50
+ }
51
+ //#endregion
52
+ export { describeTunnelFailure, extractTunnelUrl, mentionsRegisteredConnection, tunnelArgs, tunnelTarget };
53
+
54
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/tunnelOutput/index.ts"],"sourcesContent":["/**\n * Turning a tunnel configuration into a command line, and cloudflared's output\n * back into a public origin.\n *\n * The parsing half only exists for quick tunnels. A named tunnel is configured\n * with its hostname, so nothing has to be scraped and the origin is known\n * before the process starts. That difference is the strongest practical\n * argument for named mode: the banner cloudflared prints is an undocumented\n * detail of its logging, and a release that reformats it breaks quick mode\n * until the readiness deadline fires.\n */\n\nimport type { TunnelConfig, TunnelFailure } from '../../types/remote';\n\n/**\n * A trycloudflare hostname, and nothing that merely ends near one.\n *\n * The trailing lookahead is the whole point. Without it,\n * `https://evil.trycloudflare.com.attacker.tld` printed by a confused or\n * hostile process would match, and the extracted value becomes the origin the\n * guard then trusts for every subsequent request.\n */\nconst QUICK_TUNNEL_URL = /https:\\/\\/[a-z0-9][a-z0-9-]*(?:\\.[a-z0-9-]+)*\\.trycloudflare\\.com(?![a-z0-9.-])/iu;\n\n/** Cloudflare reports a connection registered; readiness waits for this as well as a URL. */\nconst CONNECTION_READY = /registered tunnel connection|connection .* registered/iu;\n\nexport function tunnelTarget(port: number): string {\n return `http://127.0.0.1:${String(port)}`;\n}\n\n/**\n * The cloudflared argument vector.\n *\n * `--url` is a flag on the `tunnel` command rather than on `run`, so it comes\n * before the subcommand in both shapes. `--token-file` belongs to `run`.\n *\n * Flag placement here follows cloudflared's documented usage and local help.\n */\nexport function tunnelArgs(config: TunnelConfig, port: number, tokenFile?: string): string[] {\n const args = ['tunnel', '--no-autoupdate'];\n if (config.kind === 'named' && config.configFile !== undefined) args.push('--config', config.configFile);\n args.push('--url', tunnelTarget(port));\n if (config.kind === 'quick') return args;\n args.push('run');\n if (tokenFile !== undefined && tokenFile !== '') args.push('--token-file', tokenFile);\n if (config.name !== undefined) args.push(config.name);\n return args;\n}\n\n/** The public origin a quick tunnel announced, or undefined if this output does not carry one. */\nexport function extractTunnelUrl(text: string): string | undefined {\n return QUICK_TUNNEL_URL.exec(text)?.[0].toLowerCase();\n}\n\nexport function mentionsRegisteredConnection(text: string): boolean {\n return CONNECTION_READY.test(text);\n}\n\n/** Operator-facing copy for a failure, with the cause appended by the caller. */\nexport function describeTunnelFailure(failure: TunnelFailure): string {\n switch (failure) {\n case 'not_installed':\n return 'cloudflared is not installed. Install it (brew install cloudflared) or set DOOMPI_CLOUDFLARED.';\n case 'spawn_failed':\n return 'cloudflared could not be started.';\n case 'timeout':\n return 'cloudflared did not report a public URL in time.';\n case 'self_test_failed':\n return 'The tunnel came up unguarded and was closed immediately.';\n case 'exited':\n return 'cloudflared stopped on its own.';\n }\n}\n"],"mappings":";;;;;;;;;AAsBA,MAAM,mBAAmB;;AAGzB,MAAM,mBAAmB;AAEzB,SAAgB,aAAa,MAAsB;CACjD,OAAO,oBAAoB,OAAO,IAAI;AACxC;;;;;;;;;AAUA,SAAgB,WAAW,QAAsB,MAAc,WAA8B;CAC3F,MAAM,OAAO,CAAC,UAAU,iBAAiB;CACzC,IAAI,OAAO,SAAS,WAAW,OAAO,eAAe,KAAA,GAAW,KAAK,KAAK,YAAY,OAAO,UAAU;CACvG,KAAK,KAAK,SAAS,aAAa,IAAI,CAAC;CACrC,IAAI,OAAO,SAAS,SAAS,OAAO;CACpC,KAAK,KAAK,KAAK;CACf,IAAI,cAAc,KAAA,KAAa,cAAc,IAAI,KAAK,KAAK,gBAAgB,SAAS;CACpF,IAAI,OAAO,SAAS,KAAA,GAAW,KAAK,KAAK,OAAO,IAAI;CACpD,OAAO;AACT;;AAGA,SAAgB,iBAAiB,MAAkC;CACjE,OAAO,iBAAiB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY;AACtD;AAEA,SAAgB,6BAA6B,MAAuB;CAClE,OAAO,iBAAiB,KAAK,IAAI;AACnC;;AAGA,SAAgB,sBAAsB,SAAgC;CACpE,QAAQ,SAAR;EACE,KAAK,iBACH,OAAO;EACT,KAAK,gBACH,OAAO;EACT,KAAK,WACH,OAAO;EACT,KAAK,oBACH,OAAO;EACT,KAAK,UACH,OAAO;CACX;AACF"}
@@ -0,0 +1,487 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_remote = require("../../constants/remote.cjs");
3
+ require("../pairingPage/index.cjs");
4
+ const require_index$1 = require("../tunnelOutput/index.cjs");
5
+ let node_fs = require("node:fs");
6
+ node_fs = require_runtime.__toESM(node_fs, 1);
7
+ let node_path = require("node:path");
8
+ node_path = require_runtime.__toESM(node_path, 1);
9
+ let node_child_process = require("node:child_process");
10
+ //#region src/services/tunnelProcess/index.ts
11
+ /** Explicit binary path, ahead of a PATH scan. */
12
+ const CLOUDFLARED_ENV = "DOOMPI_CLOUDFLARED";
13
+ const START_TIMEOUT_MS = 45e3;
14
+ const TERMINATE_GRACE_MS = 2e3;
15
+ const SELF_TEST_ATTEMPTS = 10;
16
+ const SELF_TEST_RETRY_MS = 500;
17
+ const NAMED_RESTART_ATTEMPTS = 3;
18
+ const NAMED_RESTART_BASE_DELAY_MS = 500;
19
+ const NAMED_RESTART_MAX_DELAY_MS = 4e3;
20
+ const NAMED_RESTART_STABLE_MS = 6e4;
21
+ const UNAUTHORIZED = 401;
22
+ /** Cloudflare has the DNS route but no connector has registered yet. */
23
+ const EDGE_TUNNEL_UNAVAILABLE = 530;
24
+ const OK = 200;
25
+ const PID_FILE = "tunnel.pid";
26
+ const TOKEN_FILE = "tunnel.token";
27
+ const FILE_MODE = 384;
28
+ /** A pid file older than this is stale beyond usefulness and the pid has likely been recycled. */
29
+ const PID_FILE_MAX_AGE_MS = 6048e5;
30
+ /**
31
+ * Finds cloudflared without a shell.
32
+ *
33
+ * A manual scan rather than `which`: spawning a shell to locate a binary is a
34
+ * quoting hazard for no benefit, and this also works the same on every platform.
35
+ */
36
+ function findCloudflared(env = process.env) {
37
+ const names = process.platform === "win32" ? ["cloudflared.exe", "cloudflared"] : ["cloudflared"];
38
+ for (const directory of (env.PATH ?? "").split(node_path.default.delimiter)) {
39
+ if (directory === "") continue;
40
+ for (const name of names) {
41
+ const candidate = node_path.default.join(directory, name);
42
+ try {
43
+ node_fs.default.accessSync(candidate, node_fs.default.constants.X_OK);
44
+ return candidate;
45
+ } catch {}
46
+ }
47
+ }
48
+ }
49
+ async function defaultProbe(url, signal) {
50
+ const response = await fetch(url, {
51
+ redirect: "manual",
52
+ signal
53
+ });
54
+ return {
55
+ status: response.status,
56
+ body: await response.text()
57
+ };
58
+ }
59
+ function validPid(value) {
60
+ return typeof value === "number" && Number.isSafeInteger(value) && value > 0;
61
+ }
62
+ /** Only ESRCH proves the owner is gone; permission and platform errors fail safe. */
63
+ function ownerMayBeAlive(pid) {
64
+ try {
65
+ process.kill(pid, 0);
66
+ return true;
67
+ } catch (error) {
68
+ return error.code !== "ESRCH";
69
+ }
70
+ }
71
+ function reapStaleTunnel(stateDir, onNotice) {
72
+ const pidPath = node_path.default.join(stateDir, PID_FILE);
73
+ const tokenPath = node_path.default.join(stateDir, TOKEN_FILE);
74
+ let raw;
75
+ try {
76
+ raw = node_fs.default.readFileSync(pidPath, "utf8");
77
+ } catch (error) {
78
+ if (error.code === "ENOENT") node_fs.default.rmSync(tokenPath, { force: true });
79
+ return;
80
+ }
81
+ let parsed;
82
+ try {
83
+ parsed = JSON.parse(raw);
84
+ } catch {
85
+ return;
86
+ }
87
+ if (typeof parsed !== "object" || parsed === null) return;
88
+ const record = parsed;
89
+ if (Object.hasOwn(record, "ownerPid")) {
90
+ if (!validPid(record.ownerPid) || ownerMayBeAlive(record.ownerPid)) return;
91
+ }
92
+ node_fs.default.rmSync(tokenPath, { force: true });
93
+ node_fs.default.rmSync(pidPath, { force: true });
94
+ const pid = validPid(record.pid) ? record.pid : void 0;
95
+ const startedAt = typeof record.startedAt === "number" ? record.startedAt : 0;
96
+ if (pid === void 0 || Date.now() - startedAt > PID_FILE_MAX_AGE_MS) return;
97
+ if (process.platform === "linux") try {
98
+ if (!node_fs.default.readFileSync(`/proc/${String(pid)}/cmdline`, "utf8").includes("cloudflared")) return;
99
+ } catch {
100
+ return;
101
+ }
102
+ try {
103
+ process.kill(pid, "SIGTERM");
104
+ onNotice(`stopped a tunnel left running by a previous hub (pid ${String(pid)})`);
105
+ } catch {}
106
+ }
107
+ function tailOf(lines) {
108
+ return lines.slice(-20).join("").trim();
109
+ }
110
+ /** Copies a named tunnel token to a private runtime file understood by cloudflared. */
111
+ function writeTokenFile(config, stateDir) {
112
+ if (config.kind !== "named" || config.tokenFile === void 0) return void 0;
113
+ let token;
114
+ let sourcePath;
115
+ try {
116
+ sourcePath = node_fs.default.realpathSync(config.tokenFile);
117
+ token = node_fs.default.readFileSync(sourcePath, "utf8").trim();
118
+ } catch {
119
+ return;
120
+ }
121
+ if (token === "") return void 0;
122
+ node_fs.default.mkdirSync(stateDir, {
123
+ recursive: true,
124
+ mode: 448
125
+ });
126
+ const tokenPath = node_path.default.join(stateDir, TOKEN_FILE);
127
+ let existingTarget;
128
+ try {
129
+ existingTarget = node_fs.default.realpathSync(tokenPath);
130
+ } catch {}
131
+ if (sourcePath === node_path.default.resolve(tokenPath) || sourcePath === existingTarget) throw new Error("The configured tunnel token file cannot also be DoomPi runtime token storage.");
132
+ node_fs.default.rmSync(tokenPath, { force: true });
133
+ node_fs.default.writeFileSync(tokenPath, token, { mode: FILE_MODE });
134
+ node_fs.default.chmodSync(tokenPath, FILE_MODE);
135
+ return tokenPath;
136
+ }
137
+ function createTunnelLauncher(options) {
138
+ const notice = options.onNotice ?? (() => {});
139
+ const restartBaseDelayMs = options.restartBaseDelayMs ?? NAMED_RESTART_BASE_DELAY_MS;
140
+ const restartStableMs = options.restartStableMs ?? NAMED_RESTART_STABLE_MS;
141
+ return async function launch(input) {
142
+ let stopped = false;
143
+ let activeStop;
144
+ let stopPromise;
145
+ let recoveryPromise;
146
+ let pendingExit;
147
+ let restartCount = 0;
148
+ let lastReadyAt = 0;
149
+ const recoveryAbort = new AbortController();
150
+ const signal = input.signal === void 0 ? recoveryAbort.signal : AbortSignal.any([input.signal, recoveryAbort.signal]);
151
+ const supervisedInput = {
152
+ ...input,
153
+ signal
154
+ };
155
+ function queueUnexpectedExit(message) {
156
+ if (stopped) return;
157
+ if (input.config.kind === "quick") {
158
+ options.onExit?.(message);
159
+ return;
160
+ }
161
+ if (recoveryPromise !== void 0) {
162
+ pendingExit = message;
163
+ return;
164
+ }
165
+ beginRecovery(message);
166
+ }
167
+ const single = createSingleTunnelLauncher({
168
+ ...options,
169
+ onExit: queueUnexpectedExit
170
+ });
171
+ async function waitForRestart(attempt) {
172
+ if (recoveryAbort.signal.aborted) return;
173
+ const delayMs = Math.min(restartBaseDelayMs * 2 ** (attempt - 1), NAMED_RESTART_MAX_DELAY_MS);
174
+ await new Promise((resolve) => {
175
+ let timer;
176
+ const done = () => {
177
+ clearTimeout(timer);
178
+ recoveryAbort.signal.removeEventListener("abort", done);
179
+ resolve();
180
+ };
181
+ timer = setTimeout(done, delayMs);
182
+ recoveryAbort.signal.addEventListener("abort", done, { once: true });
183
+ if (recoveryAbort.signal.aborted) done();
184
+ });
185
+ }
186
+ async function recover(initialMessage) {
187
+ if (Date.now() - lastReadyAt >= restartStableMs) restartCount = 0;
188
+ let lastFailure = initialMessage;
189
+ while (!stopped && restartCount < NAMED_RESTART_ATTEMPTS) {
190
+ restartCount += 1;
191
+ notice(`cloudflared stopped; restarting named tunnel (attempt ${String(restartCount)} of ${String(NAMED_RESTART_ATTEMPTS)})`);
192
+ await waitForRestart(restartCount);
193
+ if (stopped) return;
194
+ const outcome = await single(supervisedInput);
195
+ if (stopped) {
196
+ if (outcome.ok) await outcome.stop().catch(() => void 0);
197
+ return;
198
+ }
199
+ if (!outcome.ok) {
200
+ lastFailure = outcome.message;
201
+ continue;
202
+ }
203
+ activeStop = outcome.stop;
204
+ lastReadyAt = Date.now();
205
+ notice(`named tunnel recovered at ${outcome.publicOrigin}`);
206
+ return;
207
+ }
208
+ if (!stopped) options.onExit?.(`${initialMessage}\nNamed tunnel recovery failed after ${String(NAMED_RESTART_ATTEMPTS)} attempts. Last failure: ${lastFailure}`);
209
+ }
210
+ function beginRecovery(message) {
211
+ recoveryPromise = recover(message).catch((error) => {
212
+ if (!stopped) {
213
+ const cause = error instanceof Error ? error.message : String(error);
214
+ options.onExit?.(`${message}\nNamed tunnel recovery failed: ${cause}`);
215
+ }
216
+ }).finally(() => {
217
+ recoveryPromise = void 0;
218
+ const queued = pendingExit;
219
+ pendingExit = void 0;
220
+ if (queued !== void 0 && !stopped) beginRecovery(queued);
221
+ });
222
+ }
223
+ const initial = await single(supervisedInput);
224
+ if (!initial.ok) {
225
+ stopped = true;
226
+ recoveryAbort.abort();
227
+ return initial;
228
+ }
229
+ activeStop = initial.stop;
230
+ lastReadyAt = Date.now();
231
+ const stop = async () => {
232
+ if (stopPromise !== void 0) return await stopPromise;
233
+ stopped = true;
234
+ recoveryAbort.abort();
235
+ const recovering = recoveryPromise;
236
+ stopPromise = (async () => {
237
+ await activeStop?.().catch(() => void 0);
238
+ await recovering?.catch(() => void 0);
239
+ node_fs.default.rmSync(node_path.default.join(options.stateDir, PID_FILE), { force: true });
240
+ node_fs.default.rmSync(node_path.default.join(options.stateDir, TOKEN_FILE), { force: true });
241
+ })();
242
+ return await stopPromise;
243
+ };
244
+ return {
245
+ ok: true,
246
+ publicOrigin: initial.publicOrigin,
247
+ stop
248
+ };
249
+ };
250
+ }
251
+ /** Starts one cloudflared child; the exported launcher supervises successive named-tunnel children. */
252
+ function createSingleTunnelLauncher(options) {
253
+ const notice = options.onNotice ?? (() => {});
254
+ const spawnProcess = options.spawnProcess ?? node_child_process.spawn;
255
+ const probe = options.probe ?? defaultProbe;
256
+ const selfTestRetryMs = options.selfTestRetryMs ?? SELF_TEST_RETRY_MS;
257
+ const startTimeoutMs = options.startTimeoutMs ?? START_TIMEOUT_MS;
258
+ const pidPath = node_path.default.join(options.stateDir, PID_FILE);
259
+ const runtimeTokenPath = node_path.default.join(options.stateDir, TOKEN_FILE);
260
+ return async function launch(input) {
261
+ if (input.signal?.aborted === true) return {
262
+ ok: false,
263
+ failure: "exited",
264
+ message: "Tunnel startup was cancelled."
265
+ };
266
+ const binary = options.cloudflaredPath ?? process.env["DOOMPI_CLOUDFLARED"] ?? findCloudflared();
267
+ if (binary === void 0 || binary === "") return {
268
+ ok: false,
269
+ failure: "not_installed",
270
+ message: require_index$1.describeTunnelFailure("not_installed")
271
+ };
272
+ let tokenPath;
273
+ try {
274
+ tokenPath = writeTokenFile(input.config, options.stateDir);
275
+ } catch (error) {
276
+ const cause = error instanceof Error ? error.message : String(error);
277
+ return {
278
+ ok: false,
279
+ failure: "spawn_failed",
280
+ message: `${require_index$1.describeTunnelFailure("spawn_failed")} ${cause}`
281
+ };
282
+ }
283
+ const args = require_index$1.tunnelArgs(input.config, input.port, tokenPath);
284
+ let child;
285
+ try {
286
+ child = spawnProcess(binary, args, {
287
+ detached: false,
288
+ stdio: [
289
+ "ignore",
290
+ "pipe",
291
+ "pipe"
292
+ ]
293
+ });
294
+ } catch (error) {
295
+ node_fs.default.rmSync(runtimeTokenPath, { force: true });
296
+ const cause = error instanceof Error ? error.message : String(error);
297
+ return {
298
+ ok: false,
299
+ failure: "spawn_failed",
300
+ message: `${require_index$1.describeTunnelFailure("spawn_failed")} ${cause}`
301
+ };
302
+ }
303
+ const lines = [];
304
+ let stopped = false;
305
+ let settle;
306
+ let selfTestStarted = false;
307
+ const selfTestAbort = new AbortController();
308
+ const killTree = () => {
309
+ try {
310
+ child.kill("SIGTERM");
311
+ } catch {}
312
+ };
313
+ const onProcessExit = () => {
314
+ node_fs.default.rmSync(runtimeTokenPath, { force: true });
315
+ try {
316
+ if (child.pid !== void 0) process.kill(child.pid, "SIGKILL");
317
+ } catch {}
318
+ };
319
+ process.once("exit", onProcessExit);
320
+ const stop = async () => {
321
+ if (stopped) return;
322
+ stopped = true;
323
+ if (child.exitCode !== null || child.signalCode !== null) {
324
+ process.off("exit", onProcessExit);
325
+ node_fs.default.rmSync(pidPath, { force: true });
326
+ node_fs.default.rmSync(runtimeTokenPath, { force: true });
327
+ return;
328
+ }
329
+ await new Promise((resolve) => {
330
+ const escalate = setTimeout(() => {
331
+ try {
332
+ child.kill("SIGKILL");
333
+ } catch {}
334
+ }, TERMINATE_GRACE_MS);
335
+ child.once("exit", () => {
336
+ clearTimeout(escalate);
337
+ resolve();
338
+ });
339
+ killTree();
340
+ });
341
+ process.off("exit", onProcessExit);
342
+ node_fs.default.rmSync(pidPath, { force: true });
343
+ node_fs.default.rmSync(runtimeTokenPath, { force: true });
344
+ };
345
+ try {
346
+ node_fs.default.mkdirSync(options.stateDir, {
347
+ recursive: true,
348
+ mode: 448
349
+ });
350
+ node_fs.default.writeFileSync(pidPath, JSON.stringify({
351
+ pid: child.pid,
352
+ ownerPid: process.pid,
353
+ startedAt: Date.now(),
354
+ command: binary
355
+ }), { mode: FILE_MODE });
356
+ } catch {}
357
+ let seenUrl = input.config.kind === "named" ? `https://${input.config.hostname}` : void 0;
358
+ let seenConnection = false;
359
+ const waitToRetry = async () => {
360
+ if (selfTestRetryMs <= 0) return;
361
+ await new Promise((resolve) => {
362
+ const done = () => {
363
+ clearTimeout(timer);
364
+ selfTestAbort.signal.removeEventListener("abort", done);
365
+ resolve();
366
+ };
367
+ const timer = setTimeout(done, selfTestRetryMs);
368
+ selfTestAbort.signal.addEventListener("abort", done, { once: true });
369
+ });
370
+ };
371
+ /** Proves end to end that pairing is reachable and that everything else is not. */
372
+ const runSelfTest = async (origin) => {
373
+ let pairResponse;
374
+ let healthResponse;
375
+ let cause = "fetch failed";
376
+ for (let attempt = 0; attempt < SELF_TEST_ATTEMPTS && !selfTestAbort.signal.aborted; attempt += 1) {
377
+ try {
378
+ pairResponse = await probe(`${origin}${require_remote.PAIRING_PAGE_ROUTE}`, selfTestAbort.signal);
379
+ healthResponse = await probe(`${origin}/api/health`, selfTestAbort.signal);
380
+ if (pairResponse.status !== EDGE_TUNNEL_UNAVAILABLE && healthResponse.status !== EDGE_TUNNEL_UNAVAILABLE) break;
381
+ cause = `Cloudflare edge answered ${String(healthResponse.status)} before the connector registered`;
382
+ } catch (error) {
383
+ cause = error instanceof Error ? error.message : String(error);
384
+ }
385
+ if (attempt + 1 < SELF_TEST_ATTEMPTS && !selfTestAbort.signal.aborted) await waitToRetry();
386
+ }
387
+ if (pairResponse === void 0 || healthResponse === void 0) return {
388
+ ok: false,
389
+ failure: "self_test_failed",
390
+ message: `The tunnel did not answer: ${cause}`
391
+ };
392
+ if (healthResponse.status !== UNAUTHORIZED) {
393
+ const message = `${require_index$1.describeTunnelFailure("self_test_failed")} /api/health answered ${String(healthResponse.status)} through the tunnel.`;
394
+ notice(message);
395
+ return {
396
+ ok: false,
397
+ failure: "self_test_failed",
398
+ message
399
+ };
400
+ }
401
+ if (pairResponse.status !== OK || !pairResponse.body.includes("doompi-pairing-page")) {
402
+ const message = `The pairing page answered ${String(pairResponse.status)} through the tunnel.`;
403
+ notice(message);
404
+ return {
405
+ ok: false,
406
+ failure: "self_test_failed",
407
+ message
408
+ };
409
+ }
410
+ notice(`tunnel ready at ${origin}`);
411
+ return {
412
+ ok: true,
413
+ publicOrigin: origin,
414
+ stop
415
+ };
416
+ };
417
+ const consider = (chunk) => {
418
+ lines.push(chunk);
419
+ if (settle === void 0 || selfTestStarted) return;
420
+ seenUrl ??= require_index$1.extractTunnelUrl(chunk);
421
+ seenConnection ||= require_index$1.mentionsRegisteredConnection(chunk);
422
+ if (seenUrl === void 0 || !seenConnection) return;
423
+ selfTestStarted = true;
424
+ input.acceptOrigin?.(seenUrl);
425
+ runSelfTest(seenUrl).then((result) => settle?.(result));
426
+ };
427
+ child.stdout?.on("data", (data) => consider(data.toString()));
428
+ child.stderr?.on("data", (data) => consider(data.toString()));
429
+ return await new Promise((resolve) => {
430
+ let deadline;
431
+ const finish = (result, stopProcess = !result.ok) => {
432
+ if (settle === void 0) return;
433
+ settle = void 0;
434
+ clearTimeout(deadline);
435
+ input.signal?.removeEventListener("abort", cancel);
436
+ selfTestAbort.abort();
437
+ if (stopProcess) stop().then(() => resolve(result));
438
+ else resolve(result);
439
+ };
440
+ const cancel = () => {
441
+ finish({
442
+ ok: false,
443
+ failure: "exited",
444
+ message: "Tunnel startup was cancelled."
445
+ });
446
+ };
447
+ settle = (result) => finish(result);
448
+ deadline = setTimeout(() => {
449
+ finish({
450
+ ok: false,
451
+ failure: "timeout",
452
+ message: `${require_index$1.describeTunnelFailure("timeout")}\n${tailOf(lines)}`
453
+ });
454
+ }, startTimeoutMs);
455
+ input.signal?.addEventListener("abort", cancel, { once: true });
456
+ child.once("error", (error) => {
457
+ finish({
458
+ ok: false,
459
+ failure: "spawn_failed",
460
+ message: `${require_index$1.describeTunnelFailure("spawn_failed")} ${error.message}`
461
+ });
462
+ });
463
+ child.once("exit", (code) => {
464
+ process.off("exit", onProcessExit);
465
+ node_fs.default.rmSync(runtimeTokenPath, { force: true });
466
+ const message = `${require_index$1.describeTunnelFailure("exited")} (code ${String(code)})\n${tailOf(lines)}`;
467
+ if (settle !== void 0) {
468
+ finish({
469
+ ok: false,
470
+ failure: "exited",
471
+ message
472
+ }, false);
473
+ return;
474
+ }
475
+ if (!stopped) options.onExit?.(message);
476
+ });
477
+ if (input.signal?.aborted === true) cancel();
478
+ });
479
+ };
480
+ }
481
+ //#endregion
482
+ exports.CLOUDFLARED_ENV = CLOUDFLARED_ENV;
483
+ exports.createTunnelLauncher = createTunnelLauncher;
484
+ exports.findCloudflared = findCloudflared;
485
+ exports.reapStaleTunnel = reapStaleTunnel;
486
+
487
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["path","fs","spawn","describeTunnelFailure","tunnelArgs","PAIRING_PAGE_ROUTE","extractTunnelUrl","mentionsRegisteredConnection"],"sources":["../../../../src/services/tunnelProcess/index.ts"],"sourcesContent":["import { type ChildProcess, spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { PAIRING_PAGE_ROUTE } from '../../constants/remote';\nimport {\n type TunnelConfig,\n type TunnelLauncher,\n type TunnelStartInput,\n type TunnelStartResult,\n} from '../../types/remote';\nimport { PAIRING_PAGE_MARKER } from '../pairingPage';\nimport { describeTunnelFailure, extractTunnelUrl, mentionsRegisteredConnection, tunnelArgs } from '../tunnelOutput';\n\n/** Explicit binary path, ahead of a PATH scan. */\nexport const CLOUDFLARED_ENV = 'DOOMPI_CLOUDFLARED';\nconst START_TIMEOUT_MS = 45_000;\nconst TERMINATE_GRACE_MS = 2000;\nconst SELF_TEST_ATTEMPTS = 10;\nconst SELF_TEST_RETRY_MS = 500;\nconst NAMED_RESTART_ATTEMPTS = 3;\nconst NAMED_RESTART_BASE_DELAY_MS = 500;\nconst NAMED_RESTART_MAX_DELAY_MS = 4000;\nconst NAMED_RESTART_STABLE_MS = 60_000;\n/** Lines of process output kept for a failure report. */\nconst LOG_TAIL = 20;\nconst UNAUTHORIZED = 401;\n/** Cloudflare has the DNS route but no connector has registered yet. */\nconst EDGE_TUNNEL_UNAVAILABLE = 530;\nconst OK = 200;\nconst PID_FILE = 'tunnel.pid';\nconst TOKEN_FILE = 'tunnel.token';\nconst FILE_MODE = 0o600;\n/** A pid file older than this is stale beyond usefulness and the pid has likely been recycled. */\nconst PID_FILE_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;\n\nexport interface ProbeResult {\n status: number;\n body: string;\n}\n\nexport interface TunnelProcessOptions {\n /** Explicit binary, ahead of the env var and the PATH scan. */\n cloudflaredPath?: string;\n stateDir: string;\n onNotice?: (message: string) => void;\n /** Test seam: stands in for node:child_process.spawn. */\n spawnProcess?: typeof spawn;\n /** Test seam: reaches the tunnel from outside, so the self-test needs no network. */\n probe?: (url: string, signal: AbortSignal) => Promise<ProbeResult>;\n /** Test seam: production waits briefly for a new public hostname to propagate. */\n selfTestRetryMs?: number;\n /** Test seam: production bounds the complete startup, including its self-test. */\n startTimeoutMs?: number;\n /** Test seam: production backs named-tunnel restarts off from 500 ms. */\n restartBaseDelayMs?: number;\n /** Test seam: production resets the rapid-crash budget after one stable minute. */\n restartStableMs?: number;\n /** Called after a quick tunnel exits, or after named-tunnel recovery is exhausted. */\n onExit?: (message: string) => void;\n}\n\n/**\n * Finds cloudflared without a shell.\n *\n * A manual scan rather than `which`: spawning a shell to locate a binary is a\n * quoting hazard for no benefit, and this also works the same on every platform.\n */\nexport function findCloudflared(env: NodeJS.ProcessEnv = process.env): string | undefined {\n const names = process.platform === 'win32' ? ['cloudflared.exe', 'cloudflared'] : ['cloudflared'];\n for (const directory of (env.PATH ?? '').split(path.delimiter)) {\n if (directory === '') continue;\n for (const name of names) {\n const candidate = path.join(directory, name);\n try {\n fs.accessSync(candidate, fs.constants.X_OK);\n return candidate;\n } catch {\n // Not here, or not executable; keep looking.\n }\n }\n }\n return undefined;\n}\n\nasync function defaultProbe(url: string, signal: AbortSignal): Promise<ProbeResult> {\n const response = await fetch(url, { redirect: 'manual', signal });\n return { status: response.status, body: await response.text() };\n}\n\n/**\n * Kills a tunnel left behind by a hub that could not clean up after itself.\n *\n * A SIGKILLed hub never runs its exit handler, and the child is not detached so\n * it is reparented rather than killed. It then holds the tunnel open against a\n * dead port. This is the sweep on the next start.\n *\n * The residual risk is pid reuse after a reboot. The age window narrows it and\n * on Linux the command line is checked; macOS has no equally cheap check, so\n * there the window stands.\n */\ninterface TunnelPidRecord {\n pid?: unknown;\n ownerPid?: unknown;\n startedAt?: unknown;\n}\n\nfunction validPid(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value > 0;\n}\n\n/** Only ESRCH proves the owner is gone; permission and platform errors fail safe. */\nfunction ownerMayBeAlive(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch (error) {\n return (error as NodeJS.ErrnoException).code !== 'ESRCH';\n }\n}\n\nexport function reapStaleTunnel(stateDir: string, onNotice: (message: string) => void): void {\n const pidPath = path.join(stateDir, PID_FILE);\n const tokenPath = path.join(stateDir, TOKEN_FILE);\n let raw: string;\n try {\n raw = fs.readFileSync(pidPath, 'utf8');\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') fs.rmSync(tokenPath, { force: true });\n return; // No pid file is the normal case; other read failures are unsafe to guess through.\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch {\n return; // A malformed record cannot prove that its owner is gone.\n }\n if (typeof parsed !== 'object' || parsed === null) return;\n const record = parsed as TunnelPidRecord;\n if (Object.hasOwn(record, 'ownerPid')) {\n if (!validPid(record.ownerPid) || ownerMayBeAlive(record.ownerPid)) return;\n }\n\n fs.rmSync(tokenPath, { force: true });\n fs.rmSync(pidPath, { force: true });\n const pid = validPid(record.pid) ? record.pid : undefined;\n const startedAt = typeof record.startedAt === 'number' ? record.startedAt : 0;\n if (pid === undefined || Date.now() - startedAt > PID_FILE_MAX_AGE_MS) return;\n if (process.platform === 'linux') {\n try {\n if (!fs.readFileSync(`/proc/${String(pid)}/cmdline`, 'utf8').includes('cloudflared')) return;\n } catch {\n return; // The process is gone.\n }\n }\n try {\n process.kill(pid, 'SIGTERM');\n onNotice(`stopped a tunnel left running by a previous hub (pid ${String(pid)})`);\n } catch {\n // Already gone, which is the outcome we wanted.\n }\n}\n\nfunction tailOf(lines: readonly string[]): string {\n return lines.slice(-LOG_TAIL).join('').trim();\n}\n\n/** Copies a named tunnel token to a private runtime file understood by cloudflared. */\nfunction writeTokenFile(config: TunnelConfig, stateDir: string): string | undefined {\n if (config.kind !== 'named' || config.tokenFile === undefined) return undefined;\n let token: string;\n let sourcePath: string;\n try {\n sourcePath = fs.realpathSync(config.tokenFile);\n token = fs.readFileSync(sourcePath, 'utf8').trim();\n } catch {\n return undefined;\n }\n if (token === '') return undefined;\n fs.mkdirSync(stateDir, { recursive: true, mode: 0o700 });\n const tokenPath = path.join(stateDir, TOKEN_FILE);\n let existingTarget: string | undefined;\n try {\n existingTarget = fs.realpathSync(tokenPath);\n } catch {\n // Missing is the normal state before launch.\n }\n if (sourcePath === path.resolve(tokenPath) || sourcePath === existingTarget) {\n throw new Error('The configured tunnel token file cannot also be DoomPi runtime token storage.');\n }\n fs.rmSync(tokenPath, { force: true });\n fs.writeFileSync(tokenPath, token, { mode: FILE_MODE });\n fs.chmodSync(tokenPath, FILE_MODE);\n return tokenPath;\n}\n\nexport function createTunnelLauncher(options: TunnelProcessOptions): TunnelLauncher {\n const notice = options.onNotice ?? ((): void => {});\n const restartBaseDelayMs = options.restartBaseDelayMs ?? NAMED_RESTART_BASE_DELAY_MS;\n const restartStableMs = options.restartStableMs ?? NAMED_RESTART_STABLE_MS;\n\n return async function launch(input: TunnelStartInput): Promise<TunnelStartResult> {\n let stopped = false;\n let activeStop: (() => Promise<void>) | undefined;\n let stopPromise: Promise<void> | undefined;\n let recoveryPromise: Promise<void> | undefined;\n let pendingExit: string | undefined;\n let restartCount = 0;\n let lastReadyAt = 0;\n const recoveryAbort = new AbortController();\n const signal =\n input.signal === undefined ? recoveryAbort.signal : AbortSignal.any([input.signal, recoveryAbort.signal]);\n const supervisedInput: TunnelStartInput = { ...input, signal };\n\n function queueUnexpectedExit(message: string): void {\n if (stopped) return;\n if (input.config.kind === 'quick') {\n options.onExit?.(message);\n return;\n }\n if (recoveryPromise !== undefined) {\n pendingExit = message;\n return;\n }\n beginRecovery(message);\n }\n\n const single = createSingleTunnelLauncher({ ...options, onExit: queueUnexpectedExit });\n\n async function waitForRestart(attempt: number): Promise<void> {\n if (recoveryAbort.signal.aborted) return;\n const delayMs = Math.min(restartBaseDelayMs * 2 ** (attempt - 1), NAMED_RESTART_MAX_DELAY_MS);\n await new Promise<void>((resolve) => {\n let timer: ReturnType<typeof setTimeout>;\n const done = (): void => {\n clearTimeout(timer);\n recoveryAbort.signal.removeEventListener('abort', done);\n resolve();\n };\n timer = setTimeout(done, delayMs);\n recoveryAbort.signal.addEventListener('abort', done, { once: true });\n if (recoveryAbort.signal.aborted) done();\n });\n }\n\n async function recover(initialMessage: string): Promise<void> {\n if (Date.now() - lastReadyAt >= restartStableMs) restartCount = 0;\n let lastFailure = initialMessage;\n while (!stopped && restartCount < NAMED_RESTART_ATTEMPTS) {\n restartCount += 1;\n notice(\n `cloudflared stopped; restarting named tunnel (attempt ${String(restartCount)} of ${String(NAMED_RESTART_ATTEMPTS)})`,\n );\n await waitForRestart(restartCount);\n if (stopped) return;\n\n const outcome = await single(supervisedInput);\n if (stopped) {\n if (outcome.ok) await outcome.stop().catch(() => undefined);\n return;\n }\n if (!outcome.ok) {\n lastFailure = outcome.message;\n continue;\n }\n activeStop = outcome.stop;\n lastReadyAt = Date.now();\n notice(`named tunnel recovered at ${outcome.publicOrigin}`);\n return;\n }\n\n if (!stopped) {\n options.onExit?.(\n `${initialMessage}\\nNamed tunnel recovery failed after ${String(NAMED_RESTART_ATTEMPTS)} attempts. Last failure: ${lastFailure}`,\n );\n }\n }\n\n function beginRecovery(message: string): void {\n recoveryPromise = recover(message)\n .catch((error: unknown) => {\n if (!stopped) {\n const cause = error instanceof Error ? error.message : String(error);\n options.onExit?.(`${message}\\nNamed tunnel recovery failed: ${cause}`);\n }\n })\n .finally(() => {\n recoveryPromise = undefined;\n const queued = pendingExit;\n pendingExit = undefined;\n if (queued !== undefined && !stopped) beginRecovery(queued);\n });\n }\n\n const initial = await single(supervisedInput);\n if (!initial.ok) {\n stopped = true;\n recoveryAbort.abort();\n return initial;\n }\n activeStop = initial.stop;\n lastReadyAt = Date.now();\n\n const stop = async (): Promise<void> => {\n if (stopPromise !== undefined) return await stopPromise;\n stopped = true;\n recoveryAbort.abort();\n const recovering = recoveryPromise;\n stopPromise = (async () => {\n await activeStop?.().catch(() => undefined);\n await recovering?.catch(() => undefined);\n fs.rmSync(path.join(options.stateDir, PID_FILE), { force: true });\n fs.rmSync(path.join(options.stateDir, TOKEN_FILE), { force: true });\n })();\n return await stopPromise;\n };\n\n return { ok: true, publicOrigin: initial.publicOrigin, stop };\n };\n}\n\n/** Starts one cloudflared child; the exported launcher supervises successive named-tunnel children. */\nfunction createSingleTunnelLauncher(options: TunnelProcessOptions): TunnelLauncher {\n const notice = options.onNotice ?? ((): void => {});\n const spawnProcess = options.spawnProcess ?? spawn;\n const probe = options.probe ?? defaultProbe;\n const selfTestRetryMs = options.selfTestRetryMs ?? SELF_TEST_RETRY_MS;\n const startTimeoutMs = options.startTimeoutMs ?? START_TIMEOUT_MS;\n const pidPath = path.join(options.stateDir, PID_FILE);\n const runtimeTokenPath = path.join(options.stateDir, TOKEN_FILE);\n\n return async function launch(input: TunnelStartInput): Promise<TunnelStartResult> {\n if (input.signal?.aborted === true) {\n return { ok: false, failure: 'exited', message: 'Tunnel startup was cancelled.' };\n }\n const binary = options.cloudflaredPath ?? process.env[CLOUDFLARED_ENV] ?? findCloudflared();\n if (binary === undefined || binary === '') {\n return { ok: false, failure: 'not_installed', message: describeTunnelFailure('not_installed') };\n }\n\n let tokenPath: string | undefined;\n try {\n tokenPath = writeTokenFile(input.config, options.stateDir);\n } catch (error) {\n const cause = error instanceof Error ? error.message : String(error);\n return { ok: false, failure: 'spawn_failed', message: `${describeTunnelFailure('spawn_failed')} ${cause}` };\n }\n const args = tunnelArgs(input.config, input.port, tokenPath);\n let child: ChildProcess;\n try {\n // Never detached and never unref'd. A detached child becomes a process\n // group leader that survives the terminal's SIGINT, which is exactly the\n // orphaned public tunnel this must avoid. Contrast serverSpawner.ts,\n // which detaches on purpose because sessions outlive the hub.\n child = spawnProcess(binary, args, { detached: false, stdio: ['ignore', 'pipe', 'pipe'] });\n } catch (error) {\n fs.rmSync(runtimeTokenPath, { force: true });\n const cause = error instanceof Error ? error.message : String(error);\n return { ok: false, failure: 'spawn_failed', message: `${describeTunnelFailure('spawn_failed')} ${cause}` };\n }\n\n const lines: string[] = [];\n let stopped = false;\n let settle: ((result: TunnelStartResult) => void) | undefined;\n let selfTestStarted = false;\n const selfTestAbort = new AbortController();\n\n const killTree = (): void => {\n try {\n child.kill('SIGTERM');\n } catch {\n // Already gone.\n }\n };\n const onProcessExit = (): void => {\n // Synchronous on purpose: async work in an 'exit' handler never runs.\n // This is the net under process.exit(), an uncaught exception, and an\n // unhandled rejection, none of which reach the graceful close path.\n fs.rmSync(runtimeTokenPath, { force: true });\n try {\n if (child.pid !== undefined) process.kill(child.pid, 'SIGKILL');\n } catch {\n // Already gone.\n }\n };\n process.once('exit', onProcessExit);\n\n const stop = async (): Promise<void> => {\n if (stopped) return;\n stopped = true;\n if (child.exitCode !== null || child.signalCode !== null) {\n process.off('exit', onProcessExit);\n fs.rmSync(pidPath, { force: true });\n fs.rmSync(runtimeTokenPath, { force: true });\n return;\n }\n await new Promise<void>((resolve) => {\n const escalate = setTimeout(() => {\n try {\n child.kill('SIGKILL');\n } catch {\n // Already gone.\n }\n }, TERMINATE_GRACE_MS);\n child.once('exit', () => {\n clearTimeout(escalate);\n resolve();\n });\n killTree();\n });\n process.off('exit', onProcessExit);\n fs.rmSync(pidPath, { force: true });\n fs.rmSync(runtimeTokenPath, { force: true });\n };\n\n try {\n fs.mkdirSync(options.stateDir, { recursive: true, mode: 0o700 });\n fs.writeFileSync(\n pidPath,\n JSON.stringify({ pid: child.pid, ownerPid: process.pid, startedAt: Date.now(), command: binary }),\n { mode: FILE_MODE },\n );\n } catch {\n // The reaper is a safety net, not a requirement; losing it does not stop\n // the tunnel from coming up.\n }\n\n const configuredOrigin = input.config.kind === 'named' ? `https://${input.config.hostname}` : undefined;\n let seenUrl = configuredOrigin;\n let seenConnection = false;\n\n const waitToRetry = async (): Promise<void> => {\n if (selfTestRetryMs <= 0) return;\n await new Promise<void>((resolve) => {\n const done = (): void => {\n clearTimeout(timer);\n selfTestAbort.signal.removeEventListener('abort', done);\n resolve();\n };\n const timer = setTimeout(done, selfTestRetryMs);\n selfTestAbort.signal.addEventListener('abort', done, { once: true });\n });\n };\n\n /** Proves end to end that pairing is reachable and that everything else is not. */\n const runSelfTest = async (origin: string): Promise<TunnelStartResult> => {\n let pairResponse: ProbeResult | undefined;\n let healthResponse: ProbeResult | undefined;\n let cause = 'fetch failed';\n for (let attempt = 0; attempt < SELF_TEST_ATTEMPTS && !selfTestAbort.signal.aborted; attempt += 1) {\n try {\n pairResponse = await probe(`${origin}${PAIRING_PAGE_ROUTE}`, selfTestAbort.signal);\n healthResponse = await probe(`${origin}/api/health`, selfTestAbort.signal);\n if (pairResponse.status !== EDGE_TUNNEL_UNAVAILABLE && healthResponse.status !== EDGE_TUNNEL_UNAVAILABLE)\n break;\n cause = `Cloudflare edge answered ${String(healthResponse.status)} before the connector registered`;\n } catch (error) {\n cause = error instanceof Error ? error.message : String(error);\n }\n if (attempt + 1 < SELF_TEST_ATTEMPTS && !selfTestAbort.signal.aborted) await waitToRetry();\n }\n if (pairResponse === undefined || healthResponse === undefined) {\n return { ok: false, failure: 'self_test_failed', message: `The tunnel did not answer: ${cause}` };\n }\n if (healthResponse.status !== UNAUTHORIZED) {\n // The agent would be on the public internet unauthenticated. This is\n // the one failure worth an automatic abort rather than a warning.\n const message = `${describeTunnelFailure('self_test_failed')} /api/health answered ${String(healthResponse.status)} through the tunnel.`;\n notice(message);\n return { ok: false, failure: 'self_test_failed', message };\n }\n if (pairResponse.status !== OK || !pairResponse.body.includes(PAIRING_PAGE_MARKER)) {\n const message = `The pairing page answered ${String(pairResponse.status)} through the tunnel.`;\n notice(message);\n return { ok: false, failure: 'self_test_failed', message };\n }\n notice(`tunnel ready at ${origin}`);\n return { ok: true, publicOrigin: origin, stop };\n };\n\n const consider = (chunk: string): void => {\n lines.push(chunk);\n if (settle === undefined || selfTestStarted) return;\n seenUrl ??= extractTunnelUrl(chunk);\n seenConnection ||= mentionsRegisteredConnection(chunk);\n if (seenUrl === undefined || !seenConnection) return;\n selfTestStarted = true;\n input.acceptOrigin?.(seenUrl);\n void runSelfTest(seenUrl).then((result) => settle?.(result));\n };\n\n child.stdout?.on('data', (data: Buffer) => consider(data.toString()));\n child.stderr?.on('data', (data: Buffer) => consider(data.toString()));\n\n return await new Promise<TunnelStartResult>((resolve) => {\n let deadline: ReturnType<typeof setTimeout>;\n const finish = (result: TunnelStartResult, stopProcess = !result.ok): void => {\n if (settle === undefined) return;\n settle = undefined;\n clearTimeout(deadline);\n input.signal?.removeEventListener('abort', cancel);\n selfTestAbort.abort();\n if (stopProcess) {\n void stop().then(() => resolve(result));\n } else {\n resolve(result);\n }\n };\n const cancel = (): void => {\n finish({ ok: false, failure: 'exited', message: 'Tunnel startup was cancelled.' });\n };\n settle = (result) => finish(result);\n deadline = setTimeout(() => {\n finish({\n ok: false,\n failure: 'timeout',\n message: `${describeTunnelFailure('timeout')}\\n${tailOf(lines)}`,\n });\n }, startTimeoutMs);\n input.signal?.addEventListener('abort', cancel, { once: true });\n\n child.once('error', (error) => {\n finish({\n ok: false,\n failure: 'spawn_failed',\n message: `${describeTunnelFailure('spawn_failed')} ${error.message}`,\n });\n });\n\n child.once('exit', (code) => {\n process.off('exit', onProcessExit);\n fs.rmSync(runtimeTokenPath, { force: true });\n const message = `${describeTunnelFailure('exited')} (code ${String(code)})\\n${tailOf(lines)}`;\n if (settle !== undefined) {\n finish({ ok: false, failure: 'exited', message }, false);\n return;\n }\n // It came up and then died: network loss, an edge rejection, or a\n // self-update. The supervisor either replaces a named connector or tells\n // the host to fail closed rather than leave an unreachable cockpit enabled.\n if (!stopped) options.onExit?.(message);\n });\n\n // A named tunnel already knows its hostname, but it still waits for\n // cloudflared to register an edge connection before probing the public URL.\n if (input.signal?.aborted === true) cancel();\n });\n };\n}\n"],"mappings":";;;;;;;;;;;AAeA,MAAa,kBAAkB;AAC/B,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAC3B,MAAM,qBAAqB;AAC3B,MAAM,qBAAqB;AAC3B,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;AACpC,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAGhC,MAAM,eAAe;;AAErB,MAAM,0BAA0B;AAChC,MAAM,KAAK;AACX,MAAM,WAAW;AACjB,MAAM,aAAa;AACnB,MAAM,YAAY;;AAElB,MAAM,sBAAsB;;;;;;;AAkC5B,SAAgB,gBAAgB,MAAyB,QAAQ,KAAyB;CACxF,MAAM,QAAQ,QAAQ,aAAa,UAAU,CAAC,mBAAmB,aAAa,IAAI,CAAC,aAAa;CAChG,KAAK,MAAM,cAAc,IAAI,QAAQ,GAAA,CAAI,MAAMA,UAAAA,QAAK,SAAS,GAAG;EAC9D,IAAI,cAAc,IAAI;EACtB,KAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,YAAYA,UAAAA,QAAK,KAAK,WAAW,IAAI;GAC3C,IAAI;IACF,QAAA,QAAG,WAAW,WAAWC,QAAAA,QAAG,UAAU,IAAI;IAC1C,OAAO;GACT,QAAQ,CAER;EACF;CACF;AAEF;AAEA,eAAe,aAAa,KAAa,QAA2C;CAClF,MAAM,WAAW,MAAM,MAAM,KAAK;EAAE,UAAU;EAAU;CAAO,CAAC;CAChE,OAAO;EAAE,QAAQ,SAAS;EAAQ,MAAM,MAAM,SAAS,KAAK;CAAE;AAChE;AAmBA,SAAS,SAAS,OAAiC;CACjD,OAAO,OAAO,UAAU,YAAY,OAAO,cAAc,KAAK,KAAK,QAAQ;AAC7E;;AAGA,SAAS,gBAAgB,KAAsB;CAC7C,IAAI;EACF,QAAQ,KAAK,KAAK,CAAC;EACnB,OAAO;CACT,SAAS,OAAO;EACd,OAAQ,MAAgC,SAAS;CACnD;AACF;AAEA,SAAgB,gBAAgB,UAAkB,UAA2C;CAC3F,MAAM,UAAUD,UAAAA,QAAK,KAAK,UAAU,QAAQ;CAC5C,MAAM,YAAYA,UAAAA,QAAK,KAAK,UAAU,UAAU;CAChD,IAAI;CACJ,IAAI;EACF,MAAMC,QAAAA,QAAG,aAAa,SAAS,MAAM;CACvC,SAAS,OAAO;EACd,IAAK,MAAgC,SAAS,UAAU,QAAA,QAAG,OAAO,WAAW,EAAE,OAAO,KAAK,CAAC;EAC5F;CACF;CACA,IAAI;CACJ,IAAI;EACF,SAAS,KAAK,MAAM,GAAG;CACzB,QAAQ;EACN;CACF;CACA,IAAI,OAAO,WAAW,YAAY,WAAW,MAAM;CACnD,MAAM,SAAS;CACf,IAAI,OAAO,OAAO,QAAQ,UAAU,GAC9B;MAAA,CAAC,SAAS,OAAO,QAAQ,KAAK,gBAAgB,OAAO,QAAQ,GAAG;CAAA;CAGtE,QAAA,QAAG,OAAO,WAAW,EAAE,OAAO,KAAK,CAAC;CACpC,QAAA,QAAG,OAAO,SAAS,EAAE,OAAO,KAAK,CAAC;CAClC,MAAM,MAAM,SAAS,OAAO,GAAG,IAAI,OAAO,MAAM,KAAA;CAChD,MAAM,YAAY,OAAO,OAAO,cAAc,WAAW,OAAO,YAAY;CAC5E,IAAI,QAAQ,KAAA,KAAa,KAAK,IAAI,IAAI,YAAY,qBAAqB;CACvE,IAAI,QAAQ,aAAa,SACvB,IAAI;EACF,IAAI,CAACA,QAAAA,QAAG,aAAa,SAAS,OAAO,GAAG,EAAE,WAAW,MAAM,CAAC,CAAC,SAAS,aAAa,GAAG;CACxF,QAAQ;EACN;CACF;CAEF,IAAI;EACF,QAAQ,KAAK,KAAK,SAAS;EAC3B,SAAS,wDAAwD,OAAO,GAAG,EAAE,EAAE;CACjF,QAAQ,CAER;AACF;AAEA,SAAS,OAAO,OAAkC;CAChD,OAAO,MAAM,MAAM,GAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;AAC9C;;AAGA,SAAS,eAAe,QAAsB,UAAsC;CAClF,IAAI,OAAO,SAAS,WAAW,OAAO,cAAc,KAAA,GAAW,OAAO,KAAA;CACtE,IAAI;CACJ,IAAI;CACJ,IAAI;EACF,aAAaA,QAAAA,QAAG,aAAa,OAAO,SAAS;EAC7C,QAAQA,QAAAA,QAAG,aAAa,YAAY,MAAM,CAAC,CAAC,KAAK;CACnD,QAAQ;EACN;CACF;CACA,IAAI,UAAU,IAAI,OAAO,KAAA;CACzB,QAAA,QAAG,UAAU,UAAU;EAAE,WAAW;EAAM,MAAM;CAAM,CAAC;CACvD,MAAM,YAAYD,UAAAA,QAAK,KAAK,UAAU,UAAU;CAChD,IAAI;CACJ,IAAI;EACF,iBAAiBC,QAAAA,QAAG,aAAa,SAAS;CAC5C,QAAQ,CAER;CACA,IAAI,eAAeD,UAAAA,QAAK,QAAQ,SAAS,KAAK,eAAe,gBAC3D,MAAM,IAAI,MAAM,+EAA+E;CAEjG,QAAA,QAAG,OAAO,WAAW,EAAE,OAAO,KAAK,CAAC;CACpC,QAAA,QAAG,cAAc,WAAW,OAAO,EAAE,MAAM,UAAU,CAAC;CACtD,QAAA,QAAG,UAAU,WAAW,SAAS;CACjC,OAAO;AACT;AAEA,SAAgB,qBAAqB,SAA+C;CAClF,MAAM,SAAS,QAAQ,mBAAyB,CAAC;CACjD,MAAM,qBAAqB,QAAQ,sBAAsB;CACzD,MAAM,kBAAkB,QAAQ,mBAAmB;CAEnD,OAAO,eAAe,OAAO,OAAqD;EAChF,IAAI,UAAU;EACd,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI,eAAe;EACnB,IAAI,cAAc;EAClB,MAAM,gBAAgB,IAAI,gBAAgB;EAC1C,MAAM,SACJ,MAAM,WAAW,KAAA,IAAY,cAAc,SAAS,YAAY,IAAI,CAAC,MAAM,QAAQ,cAAc,MAAM,CAAC;EAC1G,MAAM,kBAAoC;GAAE,GAAG;GAAO;EAAO;EAE7D,SAAS,oBAAoB,SAAuB;GAClD,IAAI,SAAS;GACb,IAAI,MAAM,OAAO,SAAS,SAAS;IACjC,QAAQ,SAAS,OAAO;IACxB;GACF;GACA,IAAI,oBAAoB,KAAA,GAAW;IACjC,cAAc;IACd;GACF;GACA,cAAc,OAAO;EACvB;EAEA,MAAM,SAAS,2BAA2B;GAAE,GAAG;GAAS,QAAQ;EAAoB,CAAC;EAErF,eAAe,eAAe,SAAgC;GAC5D,IAAI,cAAc,OAAO,SAAS;GAClC,MAAM,UAAU,KAAK,IAAI,qBAAqB,MAAM,UAAU,IAAI,0BAA0B;GAC5F,MAAM,IAAI,SAAe,YAAY;IACnC,IAAI;IACJ,MAAM,aAAmB;KACvB,aAAa,KAAK;KAClB,cAAc,OAAO,oBAAoB,SAAS,IAAI;KACtD,QAAQ;IACV;IACA,QAAQ,WAAW,MAAM,OAAO;IAChC,cAAc,OAAO,iBAAiB,SAAS,MAAM,EAAE,MAAM,KAAK,CAAC;IACnE,IAAI,cAAc,OAAO,SAAS,KAAK;GACzC,CAAC;EACH;EAEA,eAAe,QAAQ,gBAAuC;GAC5D,IAAI,KAAK,IAAI,IAAI,eAAe,iBAAiB,eAAe;GAChE,IAAI,cAAc;GAClB,OAAO,CAAC,WAAW,eAAe,wBAAwB;IACxD,gBAAgB;IAChB,OACE,yDAAyD,OAAO,YAAY,EAAE,MAAM,OAAO,sBAAsB,EAAE,EACrH;IACA,MAAM,eAAe,YAAY;IACjC,IAAI,SAAS;IAEb,MAAM,UAAU,MAAM,OAAO,eAAe;IAC5C,IAAI,SAAS;KACX,IAAI,QAAQ,IAAI,MAAM,QAAQ,KAAK,CAAC,CAAC,YAAY,KAAA,CAAS;KAC1D;IACF;IACA,IAAI,CAAC,QAAQ,IAAI;KACf,cAAc,QAAQ;KACtB;IACF;IACA,aAAa,QAAQ;IACrB,cAAc,KAAK,IAAI;IACvB,OAAO,6BAA6B,QAAQ,cAAc;IAC1D;GACF;GAEA,IAAI,CAAC,SACH,QAAQ,SACN,GAAG,eAAe,uCAAuC,OAAO,sBAAsB,EAAE,2BAA2B,aACrH;EAEJ;EAEA,SAAS,cAAc,SAAuB;GAC5C,kBAAkB,QAAQ,OAAO,CAAC,CAC/B,OAAO,UAAmB;IACzB,IAAI,CAAC,SAAS;KACZ,MAAM,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;KACnE,QAAQ,SAAS,GAAG,QAAQ,kCAAkC,OAAO;IACvE;GACF,CAAC,CAAC,CACD,cAAc;IACb,kBAAkB,KAAA;IAClB,MAAM,SAAS;IACf,cAAc,KAAA;IACd,IAAI,WAAW,KAAA,KAAa,CAAC,SAAS,cAAc,MAAM;GAC5D,CAAC;EACL;EAEA,MAAM,UAAU,MAAM,OAAO,eAAe;EAC5C,IAAI,CAAC,QAAQ,IAAI;GACf,UAAU;GACV,cAAc,MAAM;GACpB,OAAO;EACT;EACA,aAAa,QAAQ;EACrB,cAAc,KAAK,IAAI;EAEvB,MAAM,OAAO,YAA2B;GACtC,IAAI,gBAAgB,KAAA,GAAW,OAAO,MAAM;GAC5C,UAAU;GACV,cAAc,MAAM;GACpB,MAAM,aAAa;GACnB,eAAe,YAAY;IACzB,MAAM,aAAa,CAAC,CAAC,YAAY,KAAA,CAAS;IAC1C,MAAM,YAAY,YAAY,KAAA,CAAS;IACvC,QAAA,QAAG,OAAOA,UAAAA,QAAK,KAAK,QAAQ,UAAU,QAAQ,GAAG,EAAE,OAAO,KAAK,CAAC;IAChE,QAAA,QAAG,OAAOA,UAAAA,QAAK,KAAK,QAAQ,UAAU,UAAU,GAAG,EAAE,OAAO,KAAK,CAAC;GACpE,EAAA,CAAG;GACH,OAAO,MAAM;EACf;EAEA,OAAO;GAAE,IAAI;GAAM,cAAc,QAAQ;GAAc;EAAK;CAC9D;AACF;;AAGA,SAAS,2BAA2B,SAA+C;CACjF,MAAM,SAAS,QAAQ,mBAAyB,CAAC;CACjD,MAAM,eAAe,QAAQ,gBAAgBE,mBAAAA;CAC7C,MAAM,QAAQ,QAAQ,SAAS;CAC/B,MAAM,kBAAkB,QAAQ,mBAAmB;CACnD,MAAM,iBAAiB,QAAQ,kBAAkB;CACjD,MAAM,UAAUF,UAAAA,QAAK,KAAK,QAAQ,UAAU,QAAQ;CACpD,MAAM,mBAAmBA,UAAAA,QAAK,KAAK,QAAQ,UAAU,UAAU;CAE/D,OAAO,eAAe,OAAO,OAAqD;EAChF,IAAI,MAAM,QAAQ,YAAY,MAC5B,OAAO;GAAE,IAAI;GAAO,SAAS;GAAU,SAAS;EAAgC;EAElF,MAAM,SAAS,QAAQ,mBAAmB,QAAQ,IAAA,yBAAwB,gBAAgB;EAC1F,IAAI,WAAW,KAAA,KAAa,WAAW,IACrC,OAAO;GAAE,IAAI;GAAO,SAAS;GAAiB,SAASG,gBAAAA,sBAAsB,eAAe;EAAE;EAGhG,IAAI;EACJ,IAAI;GACF,YAAY,eAAe,MAAM,QAAQ,QAAQ,QAAQ;EAC3D,SAAS,OAAO;GACd,MAAM,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GACnE,OAAO;IAAE,IAAI;IAAO,SAAS;IAAgB,SAAS,GAAGA,gBAAAA,sBAAsB,cAAc,EAAE,GAAG;GAAQ;EAC5G;EACA,MAAM,OAAOC,gBAAAA,WAAW,MAAM,QAAQ,MAAM,MAAM,SAAS;EAC3D,IAAI;EACJ,IAAI;GAKF,QAAQ,aAAa,QAAQ,MAAM;IAAE,UAAU;IAAO,OAAO;KAAC;KAAU;KAAQ;IAAM;GAAE,CAAC;EAC3F,SAAS,OAAO;GACd,QAAA,QAAG,OAAO,kBAAkB,EAAE,OAAO,KAAK,CAAC;GAC3C,MAAM,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GACnE,OAAO;IAAE,IAAI;IAAO,SAAS;IAAgB,SAAS,GAAGD,gBAAAA,sBAAsB,cAAc,EAAE,GAAG;GAAQ;EAC5G;EAEA,MAAM,QAAkB,CAAC;EACzB,IAAI,UAAU;EACd,IAAI;EACJ,IAAI,kBAAkB;EACtB,MAAM,gBAAgB,IAAI,gBAAgB;EAE1C,MAAM,iBAAuB;GAC3B,IAAI;IACF,MAAM,KAAK,SAAS;GACtB,QAAQ,CAER;EACF;EACA,MAAM,sBAA4B;GAIhC,QAAA,QAAG,OAAO,kBAAkB,EAAE,OAAO,KAAK,CAAC;GAC3C,IAAI;IACF,IAAI,MAAM,QAAQ,KAAA,GAAW,QAAQ,KAAK,MAAM,KAAK,SAAS;GAChE,QAAQ,CAER;EACF;EACA,QAAQ,KAAK,QAAQ,aAAa;EAElC,MAAM,OAAO,YAA2B;GACtC,IAAI,SAAS;GACb,UAAU;GACV,IAAI,MAAM,aAAa,QAAQ,MAAM,eAAe,MAAM;IACxD,QAAQ,IAAI,QAAQ,aAAa;IACjC,QAAA,QAAG,OAAO,SAAS,EAAE,OAAO,KAAK,CAAC;IAClC,QAAA,QAAG,OAAO,kBAAkB,EAAE,OAAO,KAAK,CAAC;IAC3C;GACF;GACA,MAAM,IAAI,SAAe,YAAY;IACnC,MAAM,WAAW,iBAAiB;KAChC,IAAI;MACF,MAAM,KAAK,SAAS;KACtB,QAAQ,CAER;IACF,GAAG,kBAAkB;IACrB,MAAM,KAAK,cAAc;KACvB,aAAa,QAAQ;KACrB,QAAQ;IACV,CAAC;IACD,SAAS;GACX,CAAC;GACD,QAAQ,IAAI,QAAQ,aAAa;GACjC,QAAA,QAAG,OAAO,SAAS,EAAE,OAAO,KAAK,CAAC;GAClC,QAAA,QAAG,OAAO,kBAAkB,EAAE,OAAO,KAAK,CAAC;EAC7C;EAEA,IAAI;GACF,QAAA,QAAG,UAAU,QAAQ,UAAU;IAAE,WAAW;IAAM,MAAM;GAAM,CAAC;GAC/D,QAAA,QAAG,cACD,SACA,KAAK,UAAU;IAAE,KAAK,MAAM;IAAK,UAAU,QAAQ;IAAK,WAAW,KAAK,IAAI;IAAG,SAAS;GAAO,CAAC,GAChG,EAAE,MAAM,UAAU,CACpB;EACF,QAAQ,CAGR;EAGA,IAAI,UADqB,MAAM,OAAO,SAAS,UAAU,WAAW,MAAM,OAAO,aAAa,KAAA;EAE9F,IAAI,iBAAiB;EAErB,MAAM,cAAc,YAA2B;GAC7C,IAAI,mBAAmB,GAAG;GAC1B,MAAM,IAAI,SAAe,YAAY;IACnC,MAAM,aAAmB;KACvB,aAAa,KAAK;KAClB,cAAc,OAAO,oBAAoB,SAAS,IAAI;KACtD,QAAQ;IACV;IACA,MAAM,QAAQ,WAAW,MAAM,eAAe;IAC9C,cAAc,OAAO,iBAAiB,SAAS,MAAM,EAAE,MAAM,KAAK,CAAC;GACrE,CAAC;EACH;;EAGA,MAAM,cAAc,OAAO,WAA+C;GACxE,IAAI;GACJ,IAAI;GACJ,IAAI,QAAQ;GACZ,KAAK,IAAI,UAAU,GAAG,UAAU,sBAAsB,CAAC,cAAc,OAAO,SAAS,WAAW,GAAG;IACjG,IAAI;KACF,eAAe,MAAM,MAAM,GAAG,SAASE,eAAAA,sBAAsB,cAAc,MAAM;KACjF,iBAAiB,MAAM,MAAM,GAAG,OAAO,cAAc,cAAc,MAAM;KACzE,IAAI,aAAa,WAAW,2BAA2B,eAAe,WAAW,yBAC/E;KACF,QAAQ,4BAA4B,OAAO,eAAe,MAAM,EAAE;IACpE,SAAS,OAAO;KACd,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;IAC/D;IACA,IAAI,UAAU,IAAI,sBAAsB,CAAC,cAAc,OAAO,SAAS,MAAM,YAAY;GAC3F;GACA,IAAI,iBAAiB,KAAA,KAAa,mBAAmB,KAAA,GACnD,OAAO;IAAE,IAAI;IAAO,SAAS;IAAoB,SAAS,8BAA8B;GAAQ;GAElG,IAAI,eAAe,WAAW,cAAc;IAG1C,MAAM,UAAU,GAAGF,gBAAAA,sBAAsB,kBAAkB,EAAE,wBAAwB,OAAO,eAAe,MAAM,EAAE;IACnH,OAAO,OAAO;IACd,OAAO;KAAE,IAAI;KAAO,SAAS;KAAoB;IAAQ;GAC3D;GACA,IAAI,aAAa,WAAW,MAAM,CAAC,aAAa,KAAK,SAAA,qBAA4B,GAAG;IAClF,MAAM,UAAU,6BAA6B,OAAO,aAAa,MAAM,EAAE;IACzE,OAAO,OAAO;IACd,OAAO;KAAE,IAAI;KAAO,SAAS;KAAoB;IAAQ;GAC3D;GACA,OAAO,mBAAmB,QAAQ;GAClC,OAAO;IAAE,IAAI;IAAM,cAAc;IAAQ;GAAK;EAChD;EAEA,MAAM,YAAY,UAAwB;GACxC,MAAM,KAAK,KAAK;GAChB,IAAI,WAAW,KAAA,KAAa,iBAAiB;GAC7C,YAAYG,gBAAAA,iBAAiB,KAAK;GAClC,mBAAmBC,gBAAAA,6BAA6B,KAAK;GACrD,IAAI,YAAY,KAAA,KAAa,CAAC,gBAAgB;GAC9C,kBAAkB;GAClB,MAAM,eAAe,OAAO;GAC5B,YAAiB,OAAO,CAAC,CAAC,MAAM,WAAW,SAAS,MAAM,CAAC;EAC7D;EAEA,MAAM,QAAQ,GAAG,SAAS,SAAiB,SAAS,KAAK,SAAS,CAAC,CAAC;EACpE,MAAM,QAAQ,GAAG,SAAS,SAAiB,SAAS,KAAK,SAAS,CAAC,CAAC;EAEpE,OAAO,MAAM,IAAI,SAA4B,YAAY;GACvD,IAAI;GACJ,MAAM,UAAU,QAA2B,cAAc,CAAC,OAAO,OAAa;IAC5E,IAAI,WAAW,KAAA,GAAW;IAC1B,SAAS,KAAA;IACT,aAAa,QAAQ;IACrB,MAAM,QAAQ,oBAAoB,SAAS,MAAM;IACjD,cAAc,MAAM;IACpB,IAAI,aACF,KAAU,CAAC,CAAC,WAAW,QAAQ,MAAM,CAAC;SAEtC,QAAQ,MAAM;GAElB;GACA,MAAM,eAAqB;IACzB,OAAO;KAAE,IAAI;KAAO,SAAS;KAAU,SAAS;IAAgC,CAAC;GACnF;GACA,UAAU,WAAW,OAAO,MAAM;GAClC,WAAW,iBAAiB;IAC1B,OAAO;KACL,IAAI;KACJ,SAAS;KACT,SAAS,GAAGJ,gBAAAA,sBAAsB,SAAS,EAAE,IAAI,OAAO,KAAK;IAC/D,CAAC;GACH,GAAG,cAAc;GACjB,MAAM,QAAQ,iBAAiB,SAAS,QAAQ,EAAE,MAAM,KAAK,CAAC;GAE9D,MAAM,KAAK,UAAU,UAAU;IAC7B,OAAO;KACL,IAAI;KACJ,SAAS;KACT,SAAS,GAAGA,gBAAAA,sBAAsB,cAAc,EAAE,GAAG,MAAM;IAC7D,CAAC;GACH,CAAC;GAED,MAAM,KAAK,SAAS,SAAS;IAC3B,QAAQ,IAAI,QAAQ,aAAa;IACjC,QAAA,QAAG,OAAO,kBAAkB,EAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,UAAU,GAAGA,gBAAAA,sBAAsB,QAAQ,EAAE,SAAS,OAAO,IAAI,EAAE,KAAK,OAAO,KAAK;IAC1F,IAAI,WAAW,KAAA,GAAW;KACxB,OAAO;MAAE,IAAI;MAAO,SAAS;MAAU;KAAQ,GAAG,KAAK;KACvD;IACF;IAIA,IAAI,CAAC,SAAS,QAAQ,SAAS,OAAO;GACxC,CAAC;GAID,IAAI,MAAM,QAAQ,YAAY,MAAM,OAAO;EAC7C,CAAC;CACH;AACF"}