@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 @@
1
+ {"version":3,"file":"sqliteHistoryImport.cjs","names":["fs","importV3WithPinnedUpstream","contentHash","SqliteSessionRepo","path","createNodeSqliteFactory","BACKGROUND_CONTEXT","value","DatabaseSync","SqliteStorage","branchTip"],"sources":["../src/services/sqliteHistoryImport/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { DatabaseSync } from 'node:sqlite';\n\nimport { BACKGROUND_CONTEXT } from '@earendil-works/pi-agent-core/harness/context';\nimport { branchTip, value, type Write } from '@earendil-works/pi-agent-core/harness/session';\nimport {\n SqliteSessionRepo,\n SqliteStorage,\n createNodeSqliteFactory,\n} from '@earendil-works/pi-session-backend-sqlite-node';\n\nimport type { HistoryImportVerification, HistoryStagingImportInput } from '../historyImport';\nimport { contentHash, importV3WithPinnedUpstream } from '../jsonlSessionRepo';\n\ntype RecordValue = Record<string, unknown>;\n\nfunction record(input: unknown): RecordValue {\n if (!input || typeof input !== 'object' || Array.isArray(input)) throw new Error('Invalid history record');\n return input as RecordValue;\n}\n\n/** Replays a protected, offline journal through Pi's public SQLite session writer. */\nexport async function importSqliteHistory(input: HistoryStagingImportInput): Promise<HistoryImportVerification> {\n let content = fs.readFileSync(input.stagingPath, 'utf8');\n const sourceHeader = record(JSON.parse(content.split('\\n', 1)[0]!));\n let verification: HistoryImportVerification | undefined;\n if (sourceHeader.type === 'session' && sourceHeader.version === 3) {\n verification = await importV3WithPinnedUpstream(input);\n content = fs.readFileSync(input.stagingPath, 'utf8');\n }\n if (!content.endsWith('\\n')) throw new Error('Cannot import truncated history');\n const lines = content.trimEnd().split('\\n');\n const header = record(JSON.parse(lines.shift()!));\n if (header.kind !== 'header' || header.v !== 4 || typeof header.id !== 'string')\n throw new Error('Expected v3 or v4 history');\n const transactions = lines.map((line) => {\n const parsed: unknown = JSON.parse(line);\n return (Array.isArray(parsed) ? parsed : [parsed]).map(record);\n });\n const entries = transactions.flat().filter((item) => item.kind === 'entry');\n const values = new Map<string, RecordValue>();\n for (const item of transactions.flat())\n if (item.kind === 'value') {\n const key = JSON.stringify([item.namespace, item.key]);\n if (item.op === 'delete') values.delete(key);\n else values.set(key, item);\n }\n for (const item of values.values())\n if (item.namespace === 'pi.lane.state') {\n const state = record(item.value);\n if (state.currentOperationId != null || (Array.isArray(state.inbox) && state.inbox.length > 0))\n throw new Error('SQLite import requires settled sessions with empty queues');\n }\n verification ??= {\n entries: entries.map((entry) => ({\n sourceId: String(entry.id),\n importedId: String(entry.id),\n sourceParentId: entry.parentId as string | null,\n importedParentId: entry.parentId as string | null,\n sourceContentHash: contentHash(entry),\n importedContentHash: contentHash(entry),\n })),\n branches: [...values.values()]\n .filter((item) => item.namespace === 'pi.branch.tip')\n .map((item) => ({\n branch: String(item.key),\n sourceTipId: item.value as string | null,\n importedTipId: item.value as string | null,\n })),\n };\n fs.unlinkSync(input.stagingPath);\n let timestamp = Number(header.createdAt);\n if (!Number.isFinite(timestamp)) throw new Error('Invalid history creation timestamp');\n const repository = new SqliteSessionRepo({\n directory: path.dirname(input.stagingPath),\n databasePath: input.stagingPath,\n databaseFactory: createNodeSqliteFactory(),\n now: () => timestamp,\n });\n try {\n const session = await repository.create(\n {\n id: header.id,\n ...(typeof header.parentSessionId === 'string' ? { parentSessionId: header.parentSessionId } : {}),\n },\n BACKGROUND_CONTEXT,\n );\n for (const transaction of transactions) {\n const entryTime = transaction.find((item) => item.kind === 'entry')?.timestamp;\n if (typeof entryTime === 'number') timestamp = entryTime;\n const writes = transaction.map((item): Write => {\n const { kind, seq: _seq, timestamp: _timestamp, ...rest } = item;\n if (kind === 'entry') return { kind, entry: rest } as unknown as Write;\n if (kind === 'usage') return { kind, row: { ...rest, timestamp: item.timestamp } } as unknown as Write;\n if (kind === 'value' || kind === 'list') return { kind, ...rest } as unknown as Write;\n throw new Error(`Unsupported history record kind: ${String(kind)}`);\n });\n await session.mutate(\n (mutation, context) => mutation.commit(writes, context).then(() => undefined),\n BACKGROUND_CONTEXT,\n );\n }\n for (const item of values.values()) {\n const stored = await session.getValue(value(String(item.namespace), String(item.key)), BACKGROUND_CONTEXT);\n if (JSON.stringify(stored?.value) !== JSON.stringify(item.value))\n throw new Error('Imported session state differs from the source');\n }\n const copied = await session.findEntries({ order: 'asc' }, BACKGROUND_CONTEXT);\n if (\n copied.length !== entries.length ||\n copied.some((entry, index) => entry.id !== entries[index]?.id || entry.timestamp !== entries[index]?.timestamp)\n )\n throw new Error('Imported entry identity or timestamp differs from the source');\n await session.close(BACKGROUND_CONTEXT);\n } finally {\n await repository.close(BACKGROUND_CONTEXT);\n }\n const database = new DatabaseSync(input.stagingPath);\n try {\n database.exec('PRAGMA wal_checkpoint(TRUNCATE)');\n } finally {\n database.close();\n }\n fs.chmodSync(input.stagingPath, 0o600);\n return verifySqliteHistory(input.stagingPath, verification);\n}\n\n/** Reopens the staged database read-only before protected publication. */\nexport async function verifySqliteHistory(\n stagingPath: string,\n proof: HistoryImportVerification,\n): Promise<HistoryImportVerification> {\n const factory = createNodeSqliteFactory();\n const repository = new SqliteSessionRepo({\n directory: path.dirname(stagingPath),\n databasePath: stagingPath,\n databaseFactory: factory,\n });\n const sessions = await repository.list(undefined, BACKGROUND_CONTEXT);\n await repository.close(BACKGROUND_CONTEXT);\n if (sessions.length !== 1) throw new Error('Invalid imported SQLite session');\n const database = await factory.openReadOnly(stagingPath);\n const storage = new SqliteStorage(database, { sessionId: sessions[0]!.id });\n try {\n const entries = await storage.scanEntries({}, BACKGROUND_CONTEXT);\n if (entries.length !== proof.entries.length) throw new Error('SQLite import entry count differs');\n const byId = new Map(entries.map((entry) => [entry.id, entry]));\n for (const expected of proof.entries) {\n const entry = byId.get(expected.importedId);\n if (\n !entry ||\n entry.parentId !== expected.importedParentId ||\n contentHash(entry as unknown as RecordValue) !== expected.importedContentHash\n )\n throw new Error(`SQLite import verification failed for ${expected.importedId}`);\n }\n for (const branch of proof.branches)\n if (branch.branch !== undefined) {\n const tip = await storage.getValue(branchTip(branch.branch), BACKGROUND_CONTEXT);\n if (tip?.value !== branch.importedTipId) throw new Error('SQLite import branch differs');\n }\n return proof;\n } finally {\n await storage.close(BACKGROUND_CONTEXT);\n database.close();\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { HistoryImportVerification, HistoryStagingImportInput } from "./historyImport.mjs";
2
+ //#region src/services/sqliteHistoryImport/index.d.ts
3
+ /** Replays a protected, offline journal through Pi's public SQLite session writer. */
4
+ export declare function importSqliteHistory(input: HistoryStagingImportInput): Promise<HistoryImportVerification>;
5
+ /** Reopens the staged database read-only before protected publication. */
6
+ export declare function verifySqliteHistory(stagingPath: string, proof: HistoryImportVerification): Promise<HistoryImportVerification>;
7
+ //#endregion
8
+ //# sourceMappingURL=sqliteHistoryImport.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqliteHistoryImport.d.mts","names":[],"sources":["../src/services/sqliteHistoryImport/index.ts"],"mappings":";;;wBAuBsB,oBAAoB,OAAO,4BAA4B,QAAQ;;wBA0G/D,oBACpB,qBACA,OAAO,4BACN,QAAQ"}
@@ -0,0 +1,146 @@
1
+ import { contentHash, importV3WithPinnedUpstream } from "./jsonlSessionRepo.mjs";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { DatabaseSync } from "node:sqlite";
5
+ import { BACKGROUND_CONTEXT } from "@earendil-works/pi-agent-core/harness/context";
6
+ import { branchTip, value } from "@earendil-works/pi-agent-core/harness/session";
7
+ import { SqliteSessionRepo, SqliteStorage, createNodeSqliteFactory } from "@earendil-works/pi-session-backend-sqlite-node";
8
+ //#region src/services/sqliteHistoryImport/index.ts
9
+ function record(input) {
10
+ if (!input || typeof input !== "object" || Array.isArray(input)) throw new Error("Invalid history record");
11
+ return input;
12
+ }
13
+ /** Replays a protected, offline journal through Pi's public SQLite session writer. */
14
+ async function importSqliteHistory(input) {
15
+ let content = fs.readFileSync(input.stagingPath, "utf8");
16
+ const sourceHeader = record(JSON.parse(content.split("\n", 1)[0]));
17
+ let verification;
18
+ if (sourceHeader.type === "session" && sourceHeader.version === 3) {
19
+ verification = await importV3WithPinnedUpstream(input);
20
+ content = fs.readFileSync(input.stagingPath, "utf8");
21
+ }
22
+ if (!content.endsWith("\n")) throw new Error("Cannot import truncated history");
23
+ const lines = content.trimEnd().split("\n");
24
+ const header = record(JSON.parse(lines.shift()));
25
+ if (header.kind !== "header" || header.v !== 4 || typeof header.id !== "string") throw new Error("Expected v3 or v4 history");
26
+ const transactions = lines.map((line) => {
27
+ const parsed = JSON.parse(line);
28
+ return (Array.isArray(parsed) ? parsed : [parsed]).map(record);
29
+ });
30
+ const entries = transactions.flat().filter((item) => item.kind === "entry");
31
+ const values = /* @__PURE__ */ new Map();
32
+ for (const item of transactions.flat()) if (item.kind === "value") {
33
+ const key = JSON.stringify([item.namespace, item.key]);
34
+ if (item.op === "delete") values.delete(key);
35
+ else values.set(key, item);
36
+ }
37
+ for (const item of values.values()) if (item.namespace === "pi.lane.state") {
38
+ const state = record(item.value);
39
+ if (state.currentOperationId != null || Array.isArray(state.inbox) && state.inbox.length > 0) throw new Error("SQLite import requires settled sessions with empty queues");
40
+ }
41
+ verification ??= {
42
+ entries: entries.map((entry) => ({
43
+ sourceId: String(entry.id),
44
+ importedId: String(entry.id),
45
+ sourceParentId: entry.parentId,
46
+ importedParentId: entry.parentId,
47
+ sourceContentHash: contentHash(entry),
48
+ importedContentHash: contentHash(entry)
49
+ })),
50
+ branches: [...values.values()].filter((item) => item.namespace === "pi.branch.tip").map((item) => ({
51
+ branch: String(item.key),
52
+ sourceTipId: item.value,
53
+ importedTipId: item.value
54
+ }))
55
+ };
56
+ fs.unlinkSync(input.stagingPath);
57
+ let timestamp = Number(header.createdAt);
58
+ if (!Number.isFinite(timestamp)) throw new Error("Invalid history creation timestamp");
59
+ const repository = new SqliteSessionRepo({
60
+ directory: path.dirname(input.stagingPath),
61
+ databasePath: input.stagingPath,
62
+ databaseFactory: createNodeSqliteFactory(),
63
+ now: () => timestamp
64
+ });
65
+ try {
66
+ const session = await repository.create({
67
+ id: header.id,
68
+ ...typeof header.parentSessionId === "string" ? { parentSessionId: header.parentSessionId } : {}
69
+ }, BACKGROUND_CONTEXT);
70
+ for (const transaction of transactions) {
71
+ const entryTime = transaction.find((item) => item.kind === "entry")?.timestamp;
72
+ if (typeof entryTime === "number") timestamp = entryTime;
73
+ const writes = transaction.map((item) => {
74
+ const { kind, seq: _seq, timestamp: _timestamp, ...rest } = item;
75
+ if (kind === "entry") return {
76
+ kind,
77
+ entry: rest
78
+ };
79
+ if (kind === "usage") return {
80
+ kind,
81
+ row: {
82
+ ...rest,
83
+ timestamp: item.timestamp
84
+ }
85
+ };
86
+ if (kind === "value" || kind === "list") return {
87
+ kind,
88
+ ...rest
89
+ };
90
+ throw new Error(`Unsupported history record kind: ${String(kind)}`);
91
+ });
92
+ await session.mutate((mutation, context) => mutation.commit(writes, context).then(() => void 0), BACKGROUND_CONTEXT);
93
+ }
94
+ for (const item of values.values()) {
95
+ const stored = await session.getValue(value(String(item.namespace), String(item.key)), BACKGROUND_CONTEXT);
96
+ if (JSON.stringify(stored?.value) !== JSON.stringify(item.value)) throw new Error("Imported session state differs from the source");
97
+ }
98
+ const copied = await session.findEntries({ order: "asc" }, BACKGROUND_CONTEXT);
99
+ if (copied.length !== entries.length || copied.some((entry, index) => entry.id !== entries[index]?.id || entry.timestamp !== entries[index]?.timestamp)) throw new Error("Imported entry identity or timestamp differs from the source");
100
+ await session.close(BACKGROUND_CONTEXT);
101
+ } finally {
102
+ await repository.close(BACKGROUND_CONTEXT);
103
+ }
104
+ const database = new DatabaseSync(input.stagingPath);
105
+ try {
106
+ database.exec("PRAGMA wal_checkpoint(TRUNCATE)");
107
+ } finally {
108
+ database.close();
109
+ }
110
+ fs.chmodSync(input.stagingPath, 384);
111
+ return verifySqliteHistory(input.stagingPath, verification);
112
+ }
113
+ /** Reopens the staged database read-only before protected publication. */
114
+ async function verifySqliteHistory(stagingPath, proof) {
115
+ const factory = createNodeSqliteFactory();
116
+ const repository = new SqliteSessionRepo({
117
+ directory: path.dirname(stagingPath),
118
+ databasePath: stagingPath,
119
+ databaseFactory: factory
120
+ });
121
+ const sessions = await repository.list(void 0, BACKGROUND_CONTEXT);
122
+ await repository.close(BACKGROUND_CONTEXT);
123
+ if (sessions.length !== 1) throw new Error("Invalid imported SQLite session");
124
+ const database = await factory.openReadOnly(stagingPath);
125
+ const storage = new SqliteStorage(database, { sessionId: sessions[0].id });
126
+ try {
127
+ const entries = await storage.scanEntries({}, BACKGROUND_CONTEXT);
128
+ if (entries.length !== proof.entries.length) throw new Error("SQLite import entry count differs");
129
+ const byId = new Map(entries.map((entry) => [entry.id, entry]));
130
+ for (const expected of proof.entries) {
131
+ const entry = byId.get(expected.importedId);
132
+ if (!entry || entry.parentId !== expected.importedParentId || contentHash(entry) !== expected.importedContentHash) throw new Error(`SQLite import verification failed for ${expected.importedId}`);
133
+ }
134
+ for (const branch of proof.branches) if (branch.branch !== void 0) {
135
+ if ((await storage.getValue(branchTip(branch.branch), BACKGROUND_CONTEXT))?.value !== branch.importedTipId) throw new Error("SQLite import branch differs");
136
+ }
137
+ return proof;
138
+ } finally {
139
+ await storage.close(BACKGROUND_CONTEXT);
140
+ database.close();
141
+ }
142
+ }
143
+ //#endregion
144
+ export { importSqliteHistory, verifySqliteHistory };
145
+
146
+ //# sourceMappingURL=sqliteHistoryImport.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqliteHistoryImport.mjs","names":[],"sources":["../src/services/sqliteHistoryImport/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { DatabaseSync } from 'node:sqlite';\n\nimport { BACKGROUND_CONTEXT } from '@earendil-works/pi-agent-core/harness/context';\nimport { branchTip, value, type Write } from '@earendil-works/pi-agent-core/harness/session';\nimport {\n SqliteSessionRepo,\n SqliteStorage,\n createNodeSqliteFactory,\n} from '@earendil-works/pi-session-backend-sqlite-node';\n\nimport type { HistoryImportVerification, HistoryStagingImportInput } from '../historyImport';\nimport { contentHash, importV3WithPinnedUpstream } from '../jsonlSessionRepo';\n\ntype RecordValue = Record<string, unknown>;\n\nfunction record(input: unknown): RecordValue {\n if (!input || typeof input !== 'object' || Array.isArray(input)) throw new Error('Invalid history record');\n return input as RecordValue;\n}\n\n/** Replays a protected, offline journal through Pi's public SQLite session writer. */\nexport async function importSqliteHistory(input: HistoryStagingImportInput): Promise<HistoryImportVerification> {\n let content = fs.readFileSync(input.stagingPath, 'utf8');\n const sourceHeader = record(JSON.parse(content.split('\\n', 1)[0]!));\n let verification: HistoryImportVerification | undefined;\n if (sourceHeader.type === 'session' && sourceHeader.version === 3) {\n verification = await importV3WithPinnedUpstream(input);\n content = fs.readFileSync(input.stagingPath, 'utf8');\n }\n if (!content.endsWith('\\n')) throw new Error('Cannot import truncated history');\n const lines = content.trimEnd().split('\\n');\n const header = record(JSON.parse(lines.shift()!));\n if (header.kind !== 'header' || header.v !== 4 || typeof header.id !== 'string')\n throw new Error('Expected v3 or v4 history');\n const transactions = lines.map((line) => {\n const parsed: unknown = JSON.parse(line);\n return (Array.isArray(parsed) ? parsed : [parsed]).map(record);\n });\n const entries = transactions.flat().filter((item) => item.kind === 'entry');\n const values = new Map<string, RecordValue>();\n for (const item of transactions.flat())\n if (item.kind === 'value') {\n const key = JSON.stringify([item.namespace, item.key]);\n if (item.op === 'delete') values.delete(key);\n else values.set(key, item);\n }\n for (const item of values.values())\n if (item.namespace === 'pi.lane.state') {\n const state = record(item.value);\n if (state.currentOperationId != null || (Array.isArray(state.inbox) && state.inbox.length > 0))\n throw new Error('SQLite import requires settled sessions with empty queues');\n }\n verification ??= {\n entries: entries.map((entry) => ({\n sourceId: String(entry.id),\n importedId: String(entry.id),\n sourceParentId: entry.parentId as string | null,\n importedParentId: entry.parentId as string | null,\n sourceContentHash: contentHash(entry),\n importedContentHash: contentHash(entry),\n })),\n branches: [...values.values()]\n .filter((item) => item.namespace === 'pi.branch.tip')\n .map((item) => ({\n branch: String(item.key),\n sourceTipId: item.value as string | null,\n importedTipId: item.value as string | null,\n })),\n };\n fs.unlinkSync(input.stagingPath);\n let timestamp = Number(header.createdAt);\n if (!Number.isFinite(timestamp)) throw new Error('Invalid history creation timestamp');\n const repository = new SqliteSessionRepo({\n directory: path.dirname(input.stagingPath),\n databasePath: input.stagingPath,\n databaseFactory: createNodeSqliteFactory(),\n now: () => timestamp,\n });\n try {\n const session = await repository.create(\n {\n id: header.id,\n ...(typeof header.parentSessionId === 'string' ? { parentSessionId: header.parentSessionId } : {}),\n },\n BACKGROUND_CONTEXT,\n );\n for (const transaction of transactions) {\n const entryTime = transaction.find((item) => item.kind === 'entry')?.timestamp;\n if (typeof entryTime === 'number') timestamp = entryTime;\n const writes = transaction.map((item): Write => {\n const { kind, seq: _seq, timestamp: _timestamp, ...rest } = item;\n if (kind === 'entry') return { kind, entry: rest } as unknown as Write;\n if (kind === 'usage') return { kind, row: { ...rest, timestamp: item.timestamp } } as unknown as Write;\n if (kind === 'value' || kind === 'list') return { kind, ...rest } as unknown as Write;\n throw new Error(`Unsupported history record kind: ${String(kind)}`);\n });\n await session.mutate(\n (mutation, context) => mutation.commit(writes, context).then(() => undefined),\n BACKGROUND_CONTEXT,\n );\n }\n for (const item of values.values()) {\n const stored = await session.getValue(value(String(item.namespace), String(item.key)), BACKGROUND_CONTEXT);\n if (JSON.stringify(stored?.value) !== JSON.stringify(item.value))\n throw new Error('Imported session state differs from the source');\n }\n const copied = await session.findEntries({ order: 'asc' }, BACKGROUND_CONTEXT);\n if (\n copied.length !== entries.length ||\n copied.some((entry, index) => entry.id !== entries[index]?.id || entry.timestamp !== entries[index]?.timestamp)\n )\n throw new Error('Imported entry identity or timestamp differs from the source');\n await session.close(BACKGROUND_CONTEXT);\n } finally {\n await repository.close(BACKGROUND_CONTEXT);\n }\n const database = new DatabaseSync(input.stagingPath);\n try {\n database.exec('PRAGMA wal_checkpoint(TRUNCATE)');\n } finally {\n database.close();\n }\n fs.chmodSync(input.stagingPath, 0o600);\n return verifySqliteHistory(input.stagingPath, verification);\n}\n\n/** Reopens the staged database read-only before protected publication. */\nexport async function verifySqliteHistory(\n stagingPath: string,\n proof: HistoryImportVerification,\n): Promise<HistoryImportVerification> {\n const factory = createNodeSqliteFactory();\n const repository = new SqliteSessionRepo({\n directory: path.dirname(stagingPath),\n databasePath: stagingPath,\n databaseFactory: factory,\n });\n const sessions = await repository.list(undefined, BACKGROUND_CONTEXT);\n await repository.close(BACKGROUND_CONTEXT);\n if (sessions.length !== 1) throw new Error('Invalid imported SQLite session');\n const database = await factory.openReadOnly(stagingPath);\n const storage = new SqliteStorage(database, { sessionId: sessions[0]!.id });\n try {\n const entries = await storage.scanEntries({}, BACKGROUND_CONTEXT);\n if (entries.length !== proof.entries.length) throw new Error('SQLite import entry count differs');\n const byId = new Map(entries.map((entry) => [entry.id, entry]));\n for (const expected of proof.entries) {\n const entry = byId.get(expected.importedId);\n if (\n !entry ||\n entry.parentId !== expected.importedParentId ||\n contentHash(entry as unknown as RecordValue) !== expected.importedContentHash\n )\n throw new Error(`SQLite import verification failed for ${expected.importedId}`);\n }\n for (const branch of proof.branches)\n if (branch.branch !== undefined) {\n const tip = await storage.getValue(branchTip(branch.branch), BACKGROUND_CONTEXT);\n if (tip?.value !== branch.importedTipId) throw new Error('SQLite import branch differs');\n }\n return proof;\n } finally {\n await storage.close(BACKGROUND_CONTEXT);\n database.close();\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
3
+ let node_crypto = require("node:crypto");
4
+ let node_fs = require("node:fs");
5
+ node_fs = require_runtime.__toESM(node_fs, 1);
6
+ let node_path = require("node:path");
7
+ node_path = require_runtime.__toESM(node_path, 1);
8
+ let _earendil_works_pi_session_backend_sqlite_node = require("@earendil-works/pi-session-backend-sqlite-node");
9
+ //#region src/services/sqliteSessionStorage/index.ts
10
+ /** Opens the one SQLite container owned by a server session. */
11
+ async function openSqliteSessionStorage(options, context) {
12
+ if (!options.historyOwnership) throw new Error("SQLite sessions require explicit HistoryOwnership");
13
+ if (!options.sessionsRoot && !options.sessionPath) throw new Error("SQLite sessions require a server data directory");
14
+ const id = options.sessionId ?? (0, node_crypto.randomUUID)();
15
+ if (!/^[a-zA-Z0-9_-]+$/u.test(id)) throw new Error("Invalid SQLite session id");
16
+ const sessionFile = node_path.default.resolve(options.sessionPath ?? node_path.default.join(options.sessionsRoot, `${id}.sqlite`));
17
+ const historyLease = await options.historyOwnership.acquire(sessionFile);
18
+ const repository = new _earendil_works_pi_session_backend_sqlite_node.SqliteSessionRepo({
19
+ directory: node_path.default.dirname(sessionFile),
20
+ databasePath: sessionFile,
21
+ databaseFactory: (0, _earendil_works_pi_session_backend_sqlite_node.createNodeSqliteFactory)()
22
+ });
23
+ try {
24
+ await historyLease.assertQuiescent();
25
+ const existing = node_fs.default.existsSync(sessionFile);
26
+ if (options.sessionPath && !existing) throw new Error(`SQLite session not found: ${sessionFile}`);
27
+ const metadata = existing ? await repository.list(void 0, context) : [];
28
+ if (existing && metadata.length !== 1) throw new Error("Expected exactly one session in the SQLite container");
29
+ if (existing && options.sessionId && metadata[0].id !== options.sessionId) throw new Error("SQLite session id does not match the requested session");
30
+ const session = existing ? await repository.open(metadata[0], context) : await repository.create({
31
+ id,
32
+ ...options.parentSessionId ? { parentSessionId: options.parentSessionId } : {}
33
+ }, context);
34
+ if (!existing) node_fs.default.chmodSync(sessionFile, 384);
35
+ return {
36
+ session,
37
+ sessionFile,
38
+ repository,
39
+ historyLease
40
+ };
41
+ } catch (error) {
42
+ try {
43
+ await repository.close(context);
44
+ } finally {
45
+ await historyLease.release();
46
+ }
47
+ throw error;
48
+ }
49
+ }
50
+ //#endregion
51
+ exports.openSqliteSessionStorage = openSqliteSessionStorage;
52
+
53
+ //# sourceMappingURL=sqliteSessionStorage.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqliteSessionStorage.cjs","names":["randomUUID","path","SqliteSessionRepo","createNodeSqliteFactory","fs"],"sources":["../src/services/sqliteSessionStorage/index.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { Context } from '@earendil-works/pi-agent-core/harness/context';\nimport { SqliteSessionRepo, createNodeSqliteFactory } from '@earendil-works/pi-session-backend-sqlite-node';\n\nimport type { DirectHarnessRuntimeOptions, SqliteSessionStorage } from '../../types/server/directHarnessRuntime';\n\n/** Opens the one SQLite container owned by a server session. */\nexport async function openSqliteSessionStorage(\n options: Pick<\n DirectHarnessRuntimeOptions,\n 'historyOwnership' | 'sessionsRoot' | 'sessionPath' | 'sessionId' | 'parentSessionId'\n >,\n context: Context,\n): Promise<SqliteSessionStorage> {\n if (!options.historyOwnership) throw new Error('SQLite sessions require explicit HistoryOwnership');\n if (!options.sessionsRoot && !options.sessionPath) throw new Error('SQLite sessions require a server data directory');\n const id = options.sessionId ?? randomUUID();\n if (!/^[a-zA-Z0-9_-]+$/u.test(id)) throw new Error('Invalid SQLite session id');\n const sessionFile = path.resolve(options.sessionPath ?? path.join(options.sessionsRoot!, `${id}.sqlite`));\n const historyLease = await options.historyOwnership.acquire(sessionFile);\n const repository = new SqliteSessionRepo({\n directory: path.dirname(sessionFile),\n databasePath: sessionFile,\n databaseFactory: createNodeSqliteFactory(),\n });\n try {\n await historyLease.assertQuiescent();\n const existing = fs.existsSync(sessionFile);\n if (options.sessionPath && !existing) throw new Error(`SQLite session not found: ${sessionFile}`);\n const metadata = existing ? await repository.list(undefined, context) : [];\n if (existing && metadata.length !== 1) throw new Error('Expected exactly one session in the SQLite container');\n if (existing && options.sessionId && metadata[0]!.id !== options.sessionId)\n throw new Error('SQLite session id does not match the requested session');\n const session = existing\n ? await repository.open(metadata[0]!, context)\n : await repository.create(\n { id, ...(options.parentSessionId ? { parentSessionId: options.parentSessionId } : {}) },\n context,\n );\n if (!existing) fs.chmodSync(sessionFile, 0o600);\n return { session, sessionFile, repository, historyLease };\n } catch (error) {\n try {\n await repository.close(context);\n } finally {\n await historyLease.release();\n }\n throw error;\n }\n}\n"],"mappings":";;;;;;;;;;AAUA,eAAsB,yBACpB,SAIA,SAC+B;CAC/B,IAAI,CAAC,QAAQ,kBAAkB,MAAM,IAAI,MAAM,mDAAmD;CAClG,IAAI,CAAC,QAAQ,gBAAgB,CAAC,QAAQ,aAAa,MAAM,IAAI,MAAM,iDAAiD;CACpH,MAAM,KAAK,QAAQ,cAAA,GAAaA,YAAAA,WAAAA,CAAW;CAC3C,IAAI,CAAC,oBAAoB,KAAK,EAAE,GAAG,MAAM,IAAI,MAAM,2BAA2B;CAC9E,MAAM,cAAcC,UAAAA,QAAK,QAAQ,QAAQ,eAAeA,UAAAA,QAAK,KAAK,QAAQ,cAAe,GAAG,GAAG,QAAQ,CAAC;CACxG,MAAM,eAAe,MAAM,QAAQ,iBAAiB,QAAQ,WAAW;CACvE,MAAM,aAAa,IAAIC,+CAAAA,kBAAkB;EACvC,WAAWD,UAAAA,QAAK,QAAQ,WAAW;EACnC,cAAc;EACd,kBAAA,GAAiBE,+CAAAA,wBAAAA,CAAwB;CAC3C,CAAC;CACD,IAAI;EACF,MAAM,aAAa,gBAAgB;EACnC,MAAM,WAAWC,QAAAA,QAAG,WAAW,WAAW;EAC1C,IAAI,QAAQ,eAAe,CAAC,UAAU,MAAM,IAAI,MAAM,6BAA6B,aAAa;EAChG,MAAM,WAAW,WAAW,MAAM,WAAW,KAAK,KAAA,GAAW,OAAO,IAAI,CAAC;EACzE,IAAI,YAAY,SAAS,WAAW,GAAG,MAAM,IAAI,MAAM,sDAAsD;EAC7G,IAAI,YAAY,QAAQ,aAAa,SAAS,EAAE,CAAE,OAAO,QAAQ,WAC/D,MAAM,IAAI,MAAM,wDAAwD;EAC1E,MAAM,UAAU,WACZ,MAAM,WAAW,KAAK,SAAS,IAAK,OAAO,IAC3C,MAAM,WAAW,OACf;GAAE;GAAI,GAAI,QAAQ,kBAAkB,EAAE,iBAAiB,QAAQ,gBAAgB,IAAI,CAAC;EAAG,GACvF,OACF;EACJ,IAAI,CAAC,UAAU,QAAA,QAAG,UAAU,aAAa,GAAK;EAC9C,OAAO;GAAE;GAAS;GAAa;GAAY;EAAa;CAC1D,SAAS,OAAO;EACd,IAAI;GACF,MAAM,WAAW,MAAM,OAAO;EAChC,UAAU;GACR,MAAM,aAAa,QAAQ;EAC7B;EACA,MAAM;CACR;AACF"}
@@ -0,0 +1,7 @@
1
+ import { DirectHarnessRuntimeOptions, SqliteSessionStorage } from "./src/types/server/directHarnessRuntime.mjs";
2
+ import { Context } from "@earendil-works/pi-agent-core/harness/context";
3
+ //#region src/services/sqliteSessionStorage/index.d.ts
4
+ /** Opens the one SQLite container owned by a server session. */
5
+ export declare function openSqliteSessionStorage(options: Pick<DirectHarnessRuntimeOptions, 'historyOwnership' | 'sessionsRoot' | 'sessionPath' | 'sessionId' | 'parentSessionId'>, context: Context): Promise<SqliteSessionStorage>;
6
+ //#endregion
7
+ //# sourceMappingURL=sqliteSessionStorage.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqliteSessionStorage.d.mts","names":[],"sources":["../src/services/sqliteSessionStorage/index.ts"],"mappings":";;;;wBAUsB,yBACpB,SAAS,KACP,qHAGF,SAAS,UACR,QAAQ"}
@@ -0,0 +1,49 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { SqliteSessionRepo, createNodeSqliteFactory } from "@earendil-works/pi-session-backend-sqlite-node";
5
+ //#region src/services/sqliteSessionStorage/index.ts
6
+ /** Opens the one SQLite container owned by a server session. */
7
+ async function openSqliteSessionStorage(options, context) {
8
+ if (!options.historyOwnership) throw new Error("SQLite sessions require explicit HistoryOwnership");
9
+ if (!options.sessionsRoot && !options.sessionPath) throw new Error("SQLite sessions require a server data directory");
10
+ const id = options.sessionId ?? randomUUID();
11
+ if (!/^[a-zA-Z0-9_-]+$/u.test(id)) throw new Error("Invalid SQLite session id");
12
+ const sessionFile = path.resolve(options.sessionPath ?? path.join(options.sessionsRoot, `${id}.sqlite`));
13
+ const historyLease = await options.historyOwnership.acquire(sessionFile);
14
+ const repository = new SqliteSessionRepo({
15
+ directory: path.dirname(sessionFile),
16
+ databasePath: sessionFile,
17
+ databaseFactory: createNodeSqliteFactory()
18
+ });
19
+ try {
20
+ await historyLease.assertQuiescent();
21
+ const existing = fs.existsSync(sessionFile);
22
+ if (options.sessionPath && !existing) throw new Error(`SQLite session not found: ${sessionFile}`);
23
+ const metadata = existing ? await repository.list(void 0, context) : [];
24
+ if (existing && metadata.length !== 1) throw new Error("Expected exactly one session in the SQLite container");
25
+ if (existing && options.sessionId && metadata[0].id !== options.sessionId) throw new Error("SQLite session id does not match the requested session");
26
+ const session = existing ? await repository.open(metadata[0], context) : await repository.create({
27
+ id,
28
+ ...options.parentSessionId ? { parentSessionId: options.parentSessionId } : {}
29
+ }, context);
30
+ if (!existing) fs.chmodSync(sessionFile, 384);
31
+ return {
32
+ session,
33
+ sessionFile,
34
+ repository,
35
+ historyLease
36
+ };
37
+ } catch (error) {
38
+ try {
39
+ await repository.close(context);
40
+ } finally {
41
+ await historyLease.release();
42
+ }
43
+ throw error;
44
+ }
45
+ }
46
+ //#endregion
47
+ export { openSqliteSessionStorage };
48
+
49
+ //# sourceMappingURL=sqliteSessionStorage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqliteSessionStorage.mjs","names":[],"sources":["../src/services/sqliteSessionStorage/index.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { Context } from '@earendil-works/pi-agent-core/harness/context';\nimport { SqliteSessionRepo, createNodeSqliteFactory } from '@earendil-works/pi-session-backend-sqlite-node';\n\nimport type { DirectHarnessRuntimeOptions, SqliteSessionStorage } from '../../types/server/directHarnessRuntime';\n\n/** Opens the one SQLite container owned by a server session. */\nexport async function openSqliteSessionStorage(\n options: Pick<\n DirectHarnessRuntimeOptions,\n 'historyOwnership' | 'sessionsRoot' | 'sessionPath' | 'sessionId' | 'parentSessionId'\n >,\n context: Context,\n): Promise<SqliteSessionStorage> {\n if (!options.historyOwnership) throw new Error('SQLite sessions require explicit HistoryOwnership');\n if (!options.sessionsRoot && !options.sessionPath) throw new Error('SQLite sessions require a server data directory');\n const id = options.sessionId ?? randomUUID();\n if (!/^[a-zA-Z0-9_-]+$/u.test(id)) throw new Error('Invalid SQLite session id');\n const sessionFile = path.resolve(options.sessionPath ?? path.join(options.sessionsRoot!, `${id}.sqlite`));\n const historyLease = await options.historyOwnership.acquire(sessionFile);\n const repository = new SqliteSessionRepo({\n directory: path.dirname(sessionFile),\n databasePath: sessionFile,\n databaseFactory: createNodeSqliteFactory(),\n });\n try {\n await historyLease.assertQuiescent();\n const existing = fs.existsSync(sessionFile);\n if (options.sessionPath && !existing) throw new Error(`SQLite session not found: ${sessionFile}`);\n const metadata = existing ? await repository.list(undefined, context) : [];\n if (existing && metadata.length !== 1) throw new Error('Expected exactly one session in the SQLite container');\n if (existing && options.sessionId && metadata[0]!.id !== options.sessionId)\n throw new Error('SQLite session id does not match the requested session');\n const session = existing\n ? await repository.open(metadata[0]!, context)\n : await repository.create(\n { id, ...(options.parentSessionId ? { parentSessionId: options.parentSessionId } : {}) },\n context,\n );\n if (!existing) fs.chmodSync(sessionFile, 0o600);\n return { session, sessionFile, repository, historyLease };\n } catch (error) {\n try {\n await repository.close(context);\n } finally {\n await historyLease.release();\n }\n throw error;\n }\n}\n"],"mappings":";;;;;;AAUA,eAAsB,yBACpB,SAIA,SAC+B;CAC/B,IAAI,CAAC,QAAQ,kBAAkB,MAAM,IAAI,MAAM,mDAAmD;CAClG,IAAI,CAAC,QAAQ,gBAAgB,CAAC,QAAQ,aAAa,MAAM,IAAI,MAAM,iDAAiD;CACpH,MAAM,KAAK,QAAQ,aAAa,WAAW;CAC3C,IAAI,CAAC,oBAAoB,KAAK,EAAE,GAAG,MAAM,IAAI,MAAM,2BAA2B;CAC9E,MAAM,cAAc,KAAK,QAAQ,QAAQ,eAAe,KAAK,KAAK,QAAQ,cAAe,GAAG,GAAG,QAAQ,CAAC;CACxG,MAAM,eAAe,MAAM,QAAQ,iBAAiB,QAAQ,WAAW;CACvE,MAAM,aAAa,IAAI,kBAAkB;EACvC,WAAW,KAAK,QAAQ,WAAW;EACnC,cAAc;EACd,iBAAiB,wBAAwB;CAC3C,CAAC;CACD,IAAI;EACF,MAAM,aAAa,gBAAgB;EACnC,MAAM,WAAW,GAAG,WAAW,WAAW;EAC1C,IAAI,QAAQ,eAAe,CAAC,UAAU,MAAM,IAAI,MAAM,6BAA6B,aAAa;EAChG,MAAM,WAAW,WAAW,MAAM,WAAW,KAAK,KAAA,GAAW,OAAO,IAAI,CAAC;EACzE,IAAI,YAAY,SAAS,WAAW,GAAG,MAAM,IAAI,MAAM,sDAAsD;EAC7G,IAAI,YAAY,QAAQ,aAAa,SAAS,EAAE,CAAE,OAAO,QAAQ,WAC/D,MAAM,IAAI,MAAM,wDAAwD;EAC1E,MAAM,UAAU,WACZ,MAAM,WAAW,KAAK,SAAS,IAAK,OAAO,IAC3C,MAAM,WAAW,OACf;GAAE;GAAI,GAAI,QAAQ,kBAAkB,EAAE,iBAAiB,QAAQ,gBAAgB,IAAI,CAAC;EAAG,GACvF,OACF;EACJ,IAAI,CAAC,UAAU,GAAG,UAAU,aAAa,GAAK;EAC9C,OAAO;GAAE;GAAS;GAAa;GAAY;EAAa;CAC1D,SAAS,OAAO;EACd,IAAI;GACF,MAAM,WAAW,MAAM,OAAO;EAChC,UAAU;GACR,MAAM,aAAa,QAAQ;EAC7B;EACA,MAAM;CACR;AACF"}
@@ -0,0 +1,10 @@
1
+ //#region src/constants/authorTools.ts
2
+ const AUTHOR_DESCRIBE_TOOL_NAME = "describe_author_tools";
3
+ const AUTHOR_USE_TOOL_NAME = "use_author_tools";
4
+ const AUTHOR_FACADE_TOOL_NAMES = [AUTHOR_DESCRIBE_TOOL_NAME, AUTHOR_USE_TOOL_NAME];
5
+ //#endregion
6
+ exports.AUTHOR_DESCRIBE_TOOL_NAME = AUTHOR_DESCRIBE_TOOL_NAME;
7
+ exports.AUTHOR_FACADE_TOOL_NAMES = AUTHOR_FACADE_TOOL_NAMES;
8
+ exports.AUTHOR_USE_TOOL_NAME = AUTHOR_USE_TOOL_NAME;
9
+
10
+ //# sourceMappingURL=authorTools.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorTools.cjs","names":[],"sources":["../../../src/constants/authorTools.ts"],"sourcesContent":["export const AUTHOR_DESCRIBE_TOOL_NAME = 'describe_author_tools' as const;\nexport const AUTHOR_USE_TOOL_NAME = 'use_author_tools' as const;\nexport const AUTHOR_FACADE_TOOL_NAMES = [AUTHOR_DESCRIBE_TOOL_NAME, AUTHOR_USE_TOOL_NAME] as const;\n"],"mappings":";AAAA,MAAa,4BAA4B;AACzC,MAAa,uBAAuB;AACpC,MAAa,2BAA2B,CAAC,2BAA2B,oBAAoB"}
@@ -0,0 +1,6 @@
1
+ //#region src/constants/authorTools.d.ts
2
+ export declare const AUTHOR_DESCRIBE_TOOL_NAME: 'describe_author_tools';
3
+ export declare const AUTHOR_USE_TOOL_NAME: 'use_author_tools';
4
+ export declare const AUTHOR_FACADE_TOOL_NAMES: readonly ["describe_author_tools", "use_author_tools"];
5
+ //#endregion
6
+ //# sourceMappingURL=authorTools.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorTools.d.mts","names":[],"sources":["../../../src/constants/authorTools.ts"],"mappings":";qBAAa;qBACA;qBACA"}
@@ -0,0 +1,8 @@
1
+ //#region src/constants/authorTools.ts
2
+ const AUTHOR_DESCRIBE_TOOL_NAME = "describe_author_tools";
3
+ const AUTHOR_USE_TOOL_NAME = "use_author_tools";
4
+ const AUTHOR_FACADE_TOOL_NAMES = [AUTHOR_DESCRIBE_TOOL_NAME, AUTHOR_USE_TOOL_NAME];
5
+ //#endregion
6
+ export { AUTHOR_DESCRIBE_TOOL_NAME, AUTHOR_FACADE_TOOL_NAMES, AUTHOR_USE_TOOL_NAME };
7
+
8
+ //# sourceMappingURL=authorTools.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorTools.mjs","names":[],"sources":["../../../src/constants/authorTools.ts"],"sourcesContent":["export const AUTHOR_DESCRIBE_TOOL_NAME = 'describe_author_tools' as const;\nexport const AUTHOR_USE_TOOL_NAME = 'use_author_tools' as const;\nexport const AUTHOR_FACADE_TOOL_NAMES = [AUTHOR_DESCRIBE_TOOL_NAME, AUTHOR_USE_TOOL_NAME] as const;\n"],"mappings":";AAAA,MAAa,4BAA4B;AACzC,MAAa,uBAAuB;AACpC,MAAa,2BAA2B,CAAC,2BAA2B,oBAAoB"}
@@ -0,0 +1,28 @@
1
+ //#region src/constants/contextApi.ts
2
+ /**
3
+ * What one entry in the composition actually is, for a reader who clicked it.
4
+ *
5
+ * The projection prices the composition and stops there: names, owners, and
6
+ * integer counts, small enough to republish whenever the composition changes.
7
+ * The prose and the schema behind a figure are an order of magnitude larger and
8
+ * are wanted one row at a time, so they travel on request instead. This module
9
+ * is the contract both ends of that request share, and it is deliberately free
10
+ * of Node imports so a browser can hold it too.
11
+ */
12
+ /** Where a host mounts this package's API; the segment after /api/plugins/. */
13
+ const API_BASE_PATH = "context";
14
+ /** The session a proxied request belongs to; the hub strips it before forwarding. */
15
+ const SESSION_QUERY_PARAM = "session";
16
+ const ITEM_ROUTE = "/item";
17
+ const NAME_QUERY_PARAM = "name";
18
+ const KIND_QUERY_PARAM = "kind";
19
+ const CONTEXT_DETAIL_VERSION = 1;
20
+ //#endregion
21
+ exports.API_BASE_PATH = API_BASE_PATH;
22
+ exports.CONTEXT_DETAIL_VERSION = CONTEXT_DETAIL_VERSION;
23
+ exports.ITEM_ROUTE = ITEM_ROUTE;
24
+ exports.KIND_QUERY_PARAM = KIND_QUERY_PARAM;
25
+ exports.NAME_QUERY_PARAM = NAME_QUERY_PARAM;
26
+ exports.SESSION_QUERY_PARAM = SESSION_QUERY_PARAM;
27
+
28
+ //# sourceMappingURL=contextApi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextApi.cjs","names":[],"sources":["../../../src/constants/contextApi.ts"],"sourcesContent":["/**\n * What one entry in the composition actually is, for a reader who clicked it.\n *\n * The projection prices the composition and stops there: names, owners, and\n * integer counts, small enough to republish whenever the composition changes.\n * The prose and the schema behind a figure are an order of magnitude larger and\n * are wanted one row at a time, so they travel on request instead. This module\n * is the contract both ends of that request share, and it is deliberately free\n * of Node imports so a browser can hold it too.\n */\n\n/** Where a host mounts this package's API; the segment after /api/plugins/. */\nexport const API_BASE_PATH = 'context';\n\n/** The session a proxied request belongs to; the hub strips it before forwarding. */\nexport const SESSION_QUERY_PARAM = 'session';\n\nexport const ITEM_ROUTE = '/item';\n\nexport const NAME_QUERY_PARAM = 'name';\n\nexport const KIND_QUERY_PARAM = 'kind';\n\nexport const CONTEXT_DETAIL_VERSION = 1;\n"],"mappings":";;;;;;;;;;;;AAYA,MAAa,gBAAgB;;AAG7B,MAAa,sBAAsB;AAEnC,MAAa,aAAa;AAE1B,MAAa,mBAAmB;AAEhC,MAAa,mBAAmB;AAEhC,MAAa,yBAAyB"}
@@ -0,0 +1,21 @@
1
+ //#region src/constants/contextApi.d.ts
2
+ /**
3
+ * What one entry in the composition actually is, for a reader who clicked it.
4
+ *
5
+ * The projection prices the composition and stops there: names, owners, and
6
+ * integer counts, small enough to republish whenever the composition changes.
7
+ * The prose and the schema behind a figure are an order of magnitude larger and
8
+ * are wanted one row at a time, so they travel on request instead. This module
9
+ * is the contract both ends of that request share, and it is deliberately free
10
+ * of Node imports so a browser can hold it too.
11
+ */
12
+ /** Where a host mounts this package's API; the segment after /api/plugins/. */
13
+ export declare const API_BASE_PATH = "context";
14
+ /** The session a proxied request belongs to; the hub strips it before forwarding. */
15
+ export declare const SESSION_QUERY_PARAM = "session";
16
+ export declare const ITEM_ROUTE = "/item";
17
+ export declare const NAME_QUERY_PARAM = "name";
18
+ export declare const KIND_QUERY_PARAM = "kind";
19
+ export declare const CONTEXT_DETAIL_VERSION = 1;
20
+ //#endregion
21
+ //# sourceMappingURL=contextApi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextApi.d.mts","names":[],"sources":["../../../src/constants/contextApi.ts"],"mappings":";;;;;;;;;;;;qBAYa;;qBAGA;qBAEA;qBAEA;qBAEA;qBAEA"}
@@ -0,0 +1,23 @@
1
+ //#region src/constants/contextApi.ts
2
+ /**
3
+ * What one entry in the composition actually is, for a reader who clicked it.
4
+ *
5
+ * The projection prices the composition and stops there: names, owners, and
6
+ * integer counts, small enough to republish whenever the composition changes.
7
+ * The prose and the schema behind a figure are an order of magnitude larger and
8
+ * are wanted one row at a time, so they travel on request instead. This module
9
+ * is the contract both ends of that request share, and it is deliberately free
10
+ * of Node imports so a browser can hold it too.
11
+ */
12
+ /** Where a host mounts this package's API; the segment after /api/plugins/. */
13
+ const API_BASE_PATH = "context";
14
+ /** The session a proxied request belongs to; the hub strips it before forwarding. */
15
+ const SESSION_QUERY_PARAM = "session";
16
+ const ITEM_ROUTE = "/item";
17
+ const NAME_QUERY_PARAM = "name";
18
+ const KIND_QUERY_PARAM = "kind";
19
+ const CONTEXT_DETAIL_VERSION = 1;
20
+ //#endregion
21
+ export { API_BASE_PATH, CONTEXT_DETAIL_VERSION, ITEM_ROUTE, KIND_QUERY_PARAM, NAME_QUERY_PARAM, SESSION_QUERY_PARAM };
22
+
23
+ //# sourceMappingURL=contextApi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextApi.mjs","names":[],"sources":["../../../src/constants/contextApi.ts"],"sourcesContent":["/**\n * What one entry in the composition actually is, for a reader who clicked it.\n *\n * The projection prices the composition and stops there: names, owners, and\n * integer counts, small enough to republish whenever the composition changes.\n * The prose and the schema behind a figure are an order of magnitude larger and\n * are wanted one row at a time, so they travel on request instead. This module\n * is the contract both ends of that request share, and it is deliberately free\n * of Node imports so a browser can hold it too.\n */\n\n/** Where a host mounts this package's API; the segment after /api/plugins/. */\nexport const API_BASE_PATH = 'context';\n\n/** The session a proxied request belongs to; the hub strips it before forwarding. */\nexport const SESSION_QUERY_PARAM = 'session';\n\nexport const ITEM_ROUTE = '/item';\n\nexport const NAME_QUERY_PARAM = 'name';\n\nexport const KIND_QUERY_PARAM = 'kind';\n\nexport const CONTEXT_DETAIL_VERSION = 1;\n"],"mappings":";;;;;;;;;;;;AAYA,MAAa,gBAAgB;;AAG7B,MAAa,sBAAsB;AAEnC,MAAa,aAAa;AAE1B,MAAa,mBAAmB;AAEhC,MAAa,mBAAmB;AAEhC,MAAa,yBAAyB"}
@@ -0,0 +1,90 @@
1
+ //#region src/constants/remote.ts
2
+ /**
3
+ * Wire vocabulary for remote access, shared by the hub routes and the cockpit.
4
+ *
5
+ * Remote access binds a second loopback listener that a tunnel points at, and
6
+ * everything arriving there must prove it holds a paired session. The
7
+ * discriminator is the listening socket, not a header: a tunnel connects from
8
+ * 127.0.0.1 like every local client, and there is no header a remote caller
9
+ * cannot forge.
10
+ */
11
+ /** REST surface for the remote-access control plane; local callers only, except turn-off and revoke. */
12
+ const REMOTE_API_ROUTE = "/api/remote";
13
+ /** Dev proxy control plane: list targets anywhere, register or remove them only on the host. */
14
+ const DEV_PROXY_TARGETS_ROUTE = `${REMOTE_API_ROUTE}/dev-proxy/targets`;
15
+ /**
16
+ * The path every proxied dev-server request lives under. Both slashes matter: the leading one
17
+ * anchors it at the root, and the trailing one keeps `/devproxyevil` from matching.
18
+ */
19
+ const DEV_PROXY_PREFIX = "/devproxy/";
20
+ /** Direct endpoint that establishes one scoped end-to-end channel. */
21
+ const REMOTE_CHANNEL_ROUTE = `${REMOTE_API_ROUTE}/channel`;
22
+ /** The only authenticated HTTP gateway exposed on the tunnel listener. */
23
+ const REMOTE_HTTP_ROUTE = `${REMOTE_API_ROUTE}/request`;
24
+ /** Device-bound, sealed routes for ephemeral live Web Push registration. */
25
+ const REMOTE_PUSH_ROUTE = `${REMOTE_API_ROUTE}/push`;
26
+ `${REMOTE_PUSH_ROUTE}`;
27
+ /** The pairing page a scanned QR opens. Unauthenticated on the tunnel listener. */
28
+ const PAIRING_PAGE_ROUTE = "/pair";
29
+ /** Where the pairing page posts the scanned code. Unauthenticated on the tunnel listener. */
30
+ const PAIRING_CLAIM_ROUTE = "/api/remote/pair";
31
+ /** Polled until the host approves or denies. Unauthenticated on the tunnel listener. */
32
+ const PAIRING_STATUS_ROUTE = "/api/remote/pair/status";
33
+ /** Query parameter naming the pairing request; a path parameter would force a wildcard into the allowlist. */
34
+ const PAIRING_STATUS_QUERY = "request";
35
+ /**
36
+ * Session cookie base name. Rendered `__Host-doompi_device` by hono's `host`
37
+ * prefix, which refuses the cookie unless it is Secure, Path=/, and
38
+ * Domain-less, so a sibling subdomain can neither read nor overwrite it.
39
+ */
40
+ const DEVICE_COOKIE = "doompi_device";
41
+ /**
42
+ * Passkey ceremonies exposed directly on the pairing surface.
43
+ *
44
+ * Sign-in is unauthenticated because it creates a session. Registration requires
45
+ * the paired device cookie issued after host approval, but remains direct so the
46
+ * self-contained pairing page can offer enrolment before loading the cockpit.
47
+ */
48
+ const PASSKEY_AUTH_BEGIN_ROUTE = "/api/remote/passkeys/authenticate/begin";
49
+ const PASSKEY_AUTH_FINISH_ROUTE = "/api/remote/passkeys/authenticate/finish";
50
+ const PASSKEY_REGISTER_BEGIN_ROUTE = "/api/remote/passkeys/register/begin";
51
+ const PASSKEY_REGISTER_FINISH_ROUTE = "/api/remote/passkeys/register/finish";
52
+ /** Header carrying a step-up assertion for an action that needs more than a live session. */
53
+ const STEP_UP_HEADER = "x-doompi-assertion";
54
+ /** The vite dev server port; the origin allowlist and vite.config.ts share this. */
55
+ const WEB_DEV_SERVER_PORT = 7434;
56
+ /** How long a scanned pairing code stays claimable. */
57
+ const PAIRING_CODE_TTL_MS = 12e4;
58
+ /** How long the host has to approve or deny a claimed request. */
59
+ const PAIRING_REQUEST_TTL_MS = 18e4;
60
+ /** Cookie lifetime when session expiry is switched off; a session cookie can outlive the laptop. */
61
+ const COOKIE_CEILING_SECONDS = 2592e3;
62
+ /** Hub frame announcing remote-access state; sent to local and remote pages. */
63
+ const REMOTE_STATE_TYPE = "remote_state";
64
+ /** Hub frame announcing a device waiting for approval; sent to local pages only. */
65
+ const REMOTE_PAIRING_REQUEST_TYPE = "remote_pairing_request";
66
+ //#endregion
67
+ exports.COOKIE_CEILING_SECONDS = COOKIE_CEILING_SECONDS;
68
+ exports.DEVICE_COOKIE = DEVICE_COOKIE;
69
+ exports.DEV_PROXY_PREFIX = DEV_PROXY_PREFIX;
70
+ exports.DEV_PROXY_TARGETS_ROUTE = DEV_PROXY_TARGETS_ROUTE;
71
+ exports.PAIRING_CLAIM_ROUTE = PAIRING_CLAIM_ROUTE;
72
+ exports.PAIRING_CODE_TTL_MS = PAIRING_CODE_TTL_MS;
73
+ exports.PAIRING_PAGE_ROUTE = PAIRING_PAGE_ROUTE;
74
+ exports.PAIRING_REQUEST_TTL_MS = PAIRING_REQUEST_TTL_MS;
75
+ exports.PAIRING_STATUS_QUERY = PAIRING_STATUS_QUERY;
76
+ exports.PAIRING_STATUS_ROUTE = PAIRING_STATUS_ROUTE;
77
+ exports.PASSKEY_AUTH_BEGIN_ROUTE = PASSKEY_AUTH_BEGIN_ROUTE;
78
+ exports.PASSKEY_AUTH_FINISH_ROUTE = PASSKEY_AUTH_FINISH_ROUTE;
79
+ exports.PASSKEY_REGISTER_BEGIN_ROUTE = PASSKEY_REGISTER_BEGIN_ROUTE;
80
+ exports.PASSKEY_REGISTER_FINISH_ROUTE = PASSKEY_REGISTER_FINISH_ROUTE;
81
+ exports.REMOTE_API_ROUTE = REMOTE_API_ROUTE;
82
+ exports.REMOTE_CHANNEL_ROUTE = REMOTE_CHANNEL_ROUTE;
83
+ exports.REMOTE_HTTP_ROUTE = REMOTE_HTTP_ROUTE;
84
+ exports.REMOTE_PAIRING_REQUEST_TYPE = REMOTE_PAIRING_REQUEST_TYPE;
85
+ exports.REMOTE_PUSH_ROUTE = REMOTE_PUSH_ROUTE;
86
+ exports.REMOTE_STATE_TYPE = REMOTE_STATE_TYPE;
87
+ exports.STEP_UP_HEADER = STEP_UP_HEADER;
88
+ exports.WEB_DEV_SERVER_PORT = WEB_DEV_SERVER_PORT;
89
+
90
+ //# sourceMappingURL=remote.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.cjs","names":[],"sources":["../../../src/constants/remote.ts"],"sourcesContent":["/**\n * Wire vocabulary for remote access, shared by the hub routes and the cockpit.\n *\n * Remote access binds a second loopback listener that a tunnel points at, and\n * everything arriving there must prove it holds a paired session. The\n * discriminator is the listening socket, not a header: a tunnel connects from\n * 127.0.0.1 like every local client, and there is no header a remote caller\n * cannot forge.\n */\n\n/** REST surface for the remote-access control plane; local callers only, except turn-off and revoke. */\nexport const REMOTE_API_ROUTE = '/api/remote';\n\n/** Dev proxy control plane: list targets anywhere, register or remove them only on the host. */\nexport const DEV_PROXY_TARGETS_ROUTE = `${REMOTE_API_ROUTE}/dev-proxy/targets`;\n\n/**\n * The path every proxied dev-server request lives under. Both slashes matter: the leading one\n * anchors it at the root, and the trailing one keeps `/devproxyevil` from matching.\n */\nexport const DEV_PROXY_PREFIX = '/devproxy/';\n\n/** Direct endpoint that establishes one scoped end-to-end channel. */\nexport const REMOTE_CHANNEL_ROUTE = `${REMOTE_API_ROUTE}/channel`;\n\n/** The only authenticated HTTP gateway exposed on the tunnel listener. */\nexport const REMOTE_HTTP_ROUTE = `${REMOTE_API_ROUTE}/request`;\n\n/** Device-bound, sealed routes for ephemeral live Web Push registration. */\nexport const REMOTE_PUSH_ROUTE = `${REMOTE_API_ROUTE}/push`;\n\nexport const REMOTE_PUSH_KEY_ROUTE = `${REMOTE_PUSH_ROUTE}/key`;\n\nexport const PROTOCOL_SOCKET_ROUTE = '/api/ws';\n\n/** The pairing page a scanned QR opens. Unauthenticated on the tunnel listener. */\nexport const PAIRING_PAGE_ROUTE = '/pair';\n\n/** Where the pairing page posts the scanned code. Unauthenticated on the tunnel listener. */\nexport const PAIRING_CLAIM_ROUTE = '/api/remote/pair';\n\n/** Polled until the host approves or denies. Unauthenticated on the tunnel listener. */\nexport const PAIRING_STATUS_ROUTE = '/api/remote/pair/status';\n\n/** Query parameter naming the pairing request; a path parameter would force a wildcard into the allowlist. */\nexport const PAIRING_STATUS_QUERY = 'request';\n\n/** URL-fragment fields authenticated by seeing the host's physical QR. */\nexport const BUNDLE_SIGNING_KEY_PARAM = 's';\n\nexport const BUNDLE_MINIMUM_REVISION_PARAM = 'r';\n\n/**\n * Session cookie base name. Rendered `__Host-doompi_device` by hono's `host`\n * prefix, which refuses the cookie unless it is Secure, Path=/, and\n * Domain-less, so a sibling subdomain can neither read nor overwrite it.\n */\nexport const DEVICE_COOKIE = 'doompi_device';\n\n/**\n * Passkey ceremonies exposed directly on the pairing surface.\n *\n * Sign-in is unauthenticated because it creates a session. Registration requires\n * the paired device cookie issued after host approval, but remains direct so the\n * self-contained pairing page can offer enrolment before loading the cockpit.\n */\nexport const PASSKEY_AUTH_BEGIN_ROUTE = '/api/remote/passkeys/authenticate/begin';\n\nexport const PASSKEY_AUTH_FINISH_ROUTE = '/api/remote/passkeys/authenticate/finish';\n\nexport const PASSKEY_REGISTER_BEGIN_ROUTE = '/api/remote/passkeys/register/begin';\n\nexport const PASSKEY_REGISTER_FINISH_ROUTE = '/api/remote/passkeys/register/finish';\n\n/** Header carrying a step-up assertion for an action that needs more than a live session. */\nexport const STEP_UP_HEADER = 'x-doompi-assertion';\n\n/** The vite dev server port; the origin allowlist and vite.config.ts share this. */\nexport const WEB_DEV_SERVER_PORT = 7434;\n\n/** How long a scanned pairing code stays claimable. */\nexport const PAIRING_CODE_TTL_MS = 120_000;\n\n/** How long the host has to approve or deny a claimed request. */\nexport const PAIRING_REQUEST_TTL_MS = 180_000;\n\n/** Cookie lifetime when session expiry is switched off; a session cookie can outlive the laptop. */\nexport const COOKIE_CEILING_SECONDS = 2_592_000;\n\n/** Hub frame announcing remote-access state; sent to local and remote pages. */\nexport const REMOTE_STATE_TYPE = 'remote_state';\n\n/** Hub frame announcing a device waiting for approval; sent to local pages only. */\nexport const REMOTE_PAIRING_REQUEST_TYPE = 'remote_pairing_request';\n"],"mappings":";;;;;;;;;;;AAWA,MAAa,mBAAmB;;AAGhC,MAAa,0BAA0B,GAAG,iBAAiB;;;;;AAM3D,MAAa,mBAAmB;;AAGhC,MAAa,uBAAuB,GAAG,iBAAiB;;AAGxD,MAAa,oBAAoB,GAAG,iBAAiB;;AAGrD,MAAa,oBAAoB,GAAG,iBAAiB;AAEhB,GAAG,kBAAH;;AAKrC,MAAa,qBAAqB;;AAGlC,MAAa,sBAAsB;;AAGnC,MAAa,uBAAuB;;AAGpC,MAAa,uBAAuB;;;;;;AAYpC,MAAa,gBAAgB;;;;;;;;AAS7B,MAAa,2BAA2B;AAExC,MAAa,4BAA4B;AAEzC,MAAa,+BAA+B;AAE5C,MAAa,gCAAgC;;AAG7C,MAAa,iBAAiB;;AAG9B,MAAa,sBAAsB;;AAGnC,MAAa,sBAAsB;;AAGnC,MAAa,yBAAyB;;AAGtC,MAAa,yBAAyB;;AAGtC,MAAa,oBAAoB;;AAGjC,MAAa,8BAA8B"}