@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,129 @@
1
+ //#region src/services/acpSessionUpdates/index.ts
2
+ function record(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
4
+ }
5
+ function content(value) {
6
+ if (typeof value === "string") return [{
7
+ type: "text",
8
+ text: value
9
+ }];
10
+ if (!Array.isArray(value)) return [];
11
+ const blocks = [];
12
+ for (const part of value) {
13
+ const item = record(part);
14
+ if (item?.type === "text" && typeof item.text === "string") blocks.push({
15
+ type: "text",
16
+ text: item.text
17
+ });
18
+ if (item?.type === "image" && typeof item.data === "string" && typeof item.mimeType === "string") blocks.push({
19
+ type: "image",
20
+ data: item.data,
21
+ mimeType: item.mimeType
22
+ });
23
+ }
24
+ return blocks;
25
+ }
26
+ function progressUpdates(progress) {
27
+ const item = progress.item;
28
+ if (item.role === "user") return [{
29
+ sessionUpdate: "user_message",
30
+ messageId: item.id,
31
+ content: item.content
32
+ }];
33
+ if (item.role === "tool") return [{
34
+ sessionUpdate: "tool_call_update",
35
+ toolCallId: item.toolCallId,
36
+ title: item.toolName,
37
+ kind: "other",
38
+ status: item.status === "running" ? "in_progress" : item.status === "error" ? "failed" : "completed",
39
+ rawInput: item.input,
40
+ ...progress.type === "item_finished" ? { content: item.content.map((block) => ({
41
+ type: "content",
42
+ content: block
43
+ })) } : {}
44
+ }];
45
+ const updates = [];
46
+ const messageContent = item.content.filter((part) => part.type === "text");
47
+ if (messageContent.length > 0) updates.push({
48
+ sessionUpdate: "agent_message",
49
+ messageId: item.id,
50
+ content: messageContent
51
+ });
52
+ const thoughtContent = item.content.flatMap((part) => part.type === "thinking" && !part.redacted ? [{
53
+ type: "text",
54
+ text: part.thinking
55
+ }] : []);
56
+ if (thoughtContent.length > 0) updates.push({
57
+ sessionUpdate: "agent_thought",
58
+ messageId: `${item.id}:thought`,
59
+ content: thoughtContent
60
+ });
61
+ for (const part of item.content) {
62
+ if (part.type !== "toolCall") continue;
63
+ updates.push({
64
+ sessionUpdate: "tool_call_update",
65
+ toolCallId: part.toolCallId,
66
+ title: part.toolName,
67
+ kind: "other",
68
+ status: "pending",
69
+ rawInput: part.input
70
+ });
71
+ }
72
+ return updates;
73
+ }
74
+ /** Projects the Pi frame stream into the ACP v2 session/update vocabulary. */
75
+ function createAcpSessionUpdateProjection() {
76
+ const seenUserMessages = /* @__PURE__ */ new Set();
77
+ let lastStopReason = "end_turn";
78
+ return { apply(frame, reduction) {
79
+ const updates = [];
80
+ if (frame.type === "message_start" || frame.type === "message_end" || frame.type === "entry_appended") {
81
+ const entry = record(frame.entry);
82
+ const message = record(frame.type === "entry_appended" ? entry?.message : frame.message);
83
+ if (message?.role === "user") {
84
+ const blocks = content(message.content);
85
+ const id = typeof message.timestamp === "number" ? `user-${message.timestamp}` : typeof entry?.id === "string" ? entry.id : void 0;
86
+ if (id !== void 0 && blocks.length > 0 && !seenUserMessages.has(id)) {
87
+ seenUserMessages.add(id);
88
+ updates.push({
89
+ sessionUpdate: "user_message",
90
+ messageId: id,
91
+ content: blocks
92
+ });
93
+ }
94
+ }
95
+ }
96
+ if (reduction.progress) {
97
+ updates.push(...progressUpdates(reduction.progress));
98
+ if (reduction.progress.type === "item_finished" && reduction.progress.item.role === "assistant") {
99
+ const reason = reduction.progress.item.stopReason;
100
+ lastStopReason = reason === "aborted" ? "cancelled" : reason === "length" ? "max_tokens" : "end_turn";
101
+ }
102
+ }
103
+ if (frame.type === "agent_start") updates.push({
104
+ sessionUpdate: "state_update",
105
+ state: "running"
106
+ });
107
+ if (frame.type === "extension_ui_request") updates.push({
108
+ sessionUpdate: "state_update",
109
+ state: "requires_action"
110
+ });
111
+ if (frame.type === "extension_ui_answered") updates.push({
112
+ sessionUpdate: "state_update",
113
+ state: "running"
114
+ });
115
+ if (frame.type === "agent_settled") {
116
+ updates.push({
117
+ sessionUpdate: "state_update",
118
+ state: "idle",
119
+ stopReason: lastStopReason
120
+ });
121
+ lastStopReason = "end_turn";
122
+ }
123
+ return updates;
124
+ } };
125
+ }
126
+ //#endregion
127
+ exports.createAcpSessionUpdateProjection = createAcpSessionUpdateProjection;
128
+
129
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/acpSessionUpdates/index.ts"],"sourcesContent":["import type {\n DoomContentBlock,\n DoomSessionStopReason,\n DoomSessionUpdate,\n TranscriptProgress,\n} from '../../exports/sessionProtocol';\nimport type { SessionFrame } from '../../types/server/session';\nimport type { TranscriptReduction } from '../rpcTranscript';\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction content(value: unknown): DoomContentBlock[] {\n if (typeof value === 'string') return [{ type: 'text', text: value }];\n if (!Array.isArray(value)) return [];\n const blocks: DoomContentBlock[] = [];\n for (const part of value) {\n const item = record(part);\n if (item?.type === 'text' && typeof item.text === 'string') blocks.push({ type: 'text', text: item.text });\n if (item?.type === 'image' && typeof item.data === 'string' && typeof item.mimeType === 'string')\n blocks.push({ type: 'image', data: item.data, mimeType: item.mimeType });\n }\n return blocks;\n}\n\nfunction progressUpdates(progress: TranscriptProgress): DoomSessionUpdate[] {\n const item = progress.item;\n if (item.role === 'user') return [{ sessionUpdate: 'user_message', messageId: item.id, content: item.content }];\n if (item.role === 'tool') {\n return [\n {\n sessionUpdate: 'tool_call_update',\n toolCallId: item.toolCallId,\n title: item.toolName,\n kind: 'other',\n status: item.status === 'running' ? 'in_progress' : item.status === 'error' ? 'failed' : 'completed',\n rawInput: item.input,\n ...(progress.type === 'item_finished'\n ? { content: item.content.map((block) => ({ type: 'content' as const, content: block })) }\n : {}),\n },\n ];\n }\n const updates: DoomSessionUpdate[] = [];\n const messageContent = item.content.filter((part) => part.type === 'text');\n if (messageContent.length > 0)\n updates.push({ sessionUpdate: 'agent_message', messageId: item.id, content: messageContent });\n const thoughtContent = item.content.flatMap((part) =>\n part.type === 'thinking' && !part.redacted ? [{ type: 'text' as const, text: part.thinking }] : [],\n );\n if (thoughtContent.length > 0)\n updates.push({ sessionUpdate: 'agent_thought', messageId: `${item.id}:thought`, content: thoughtContent });\n for (const part of item.content) {\n if (part.type !== 'toolCall') continue;\n updates.push({\n sessionUpdate: 'tool_call_update',\n toolCallId: part.toolCallId,\n title: part.toolName,\n kind: 'other',\n status: 'pending',\n rawInput: part.input,\n });\n }\n return updates;\n}\n\n/** Projects the Pi frame stream into the ACP v2 session/update vocabulary. */\nexport function createAcpSessionUpdateProjection(): {\n apply(frame: SessionFrame, reduction: TranscriptReduction): DoomSessionUpdate[];\n} {\n const seenUserMessages = new Set<string>();\n let lastStopReason: DoomSessionStopReason = 'end_turn';\n return {\n apply(frame, reduction) {\n const updates: DoomSessionUpdate[] = [];\n if (frame.type === 'message_start' || frame.type === 'message_end' || frame.type === 'entry_appended') {\n const entry = record(frame.entry);\n const message = record(frame.type === 'entry_appended' ? entry?.message : frame.message);\n if (message?.role === 'user') {\n const blocks = content(message.content);\n const id =\n typeof message.timestamp === 'number'\n ? `user-${message.timestamp}`\n : typeof entry?.id === 'string'\n ? entry.id\n : undefined;\n if (id !== undefined && blocks.length > 0 && !seenUserMessages.has(id)) {\n seenUserMessages.add(id);\n updates.push({ sessionUpdate: 'user_message', messageId: id, content: blocks });\n }\n }\n }\n if (reduction.progress) {\n updates.push(...progressUpdates(reduction.progress));\n if (reduction.progress.type === 'item_finished' && reduction.progress.item.role === 'assistant') {\n const reason = reduction.progress.item.stopReason;\n lastStopReason = reason === 'aborted' ? 'cancelled' : reason === 'length' ? 'max_tokens' : 'end_turn';\n }\n }\n if (frame.type === 'agent_start') updates.push({ sessionUpdate: 'state_update', state: 'running' });\n if (frame.type === 'extension_ui_request')\n updates.push({ sessionUpdate: 'state_update', state: 'requires_action' });\n if (frame.type === 'extension_ui_answered') updates.push({ sessionUpdate: 'state_update', state: 'running' });\n if (frame.type === 'agent_settled') {\n updates.push({ sessionUpdate: 'state_update', state: 'idle', stopReason: lastStopReason });\n lastStopReason = 'end_turn';\n }\n return updates;\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ //#region src/services/acpSessionUpdates/index.ts
2
+ function record(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
4
+ }
5
+ function content(value) {
6
+ if (typeof value === "string") return [{
7
+ type: "text",
8
+ text: value
9
+ }];
10
+ if (!Array.isArray(value)) return [];
11
+ const blocks = [];
12
+ for (const part of value) {
13
+ const item = record(part);
14
+ if (item?.type === "text" && typeof item.text === "string") blocks.push({
15
+ type: "text",
16
+ text: item.text
17
+ });
18
+ if (item?.type === "image" && typeof item.data === "string" && typeof item.mimeType === "string") blocks.push({
19
+ type: "image",
20
+ data: item.data,
21
+ mimeType: item.mimeType
22
+ });
23
+ }
24
+ return blocks;
25
+ }
26
+ function progressUpdates(progress) {
27
+ const item = progress.item;
28
+ if (item.role === "user") return [{
29
+ sessionUpdate: "user_message",
30
+ messageId: item.id,
31
+ content: item.content
32
+ }];
33
+ if (item.role === "tool") return [{
34
+ sessionUpdate: "tool_call_update",
35
+ toolCallId: item.toolCallId,
36
+ title: item.toolName,
37
+ kind: "other",
38
+ status: item.status === "running" ? "in_progress" : item.status === "error" ? "failed" : "completed",
39
+ rawInput: item.input,
40
+ ...progress.type === "item_finished" ? { content: item.content.map((block) => ({
41
+ type: "content",
42
+ content: block
43
+ })) } : {}
44
+ }];
45
+ const updates = [];
46
+ const messageContent = item.content.filter((part) => part.type === "text");
47
+ if (messageContent.length > 0) updates.push({
48
+ sessionUpdate: "agent_message",
49
+ messageId: item.id,
50
+ content: messageContent
51
+ });
52
+ const thoughtContent = item.content.flatMap((part) => part.type === "thinking" && !part.redacted ? [{
53
+ type: "text",
54
+ text: part.thinking
55
+ }] : []);
56
+ if (thoughtContent.length > 0) updates.push({
57
+ sessionUpdate: "agent_thought",
58
+ messageId: `${item.id}:thought`,
59
+ content: thoughtContent
60
+ });
61
+ for (const part of item.content) {
62
+ if (part.type !== "toolCall") continue;
63
+ updates.push({
64
+ sessionUpdate: "tool_call_update",
65
+ toolCallId: part.toolCallId,
66
+ title: part.toolName,
67
+ kind: "other",
68
+ status: "pending",
69
+ rawInput: part.input
70
+ });
71
+ }
72
+ return updates;
73
+ }
74
+ /** Projects the Pi frame stream into the ACP v2 session/update vocabulary. */
75
+ function createAcpSessionUpdateProjection() {
76
+ const seenUserMessages = /* @__PURE__ */ new Set();
77
+ let lastStopReason = "end_turn";
78
+ return { apply(frame, reduction) {
79
+ const updates = [];
80
+ if (frame.type === "message_start" || frame.type === "message_end" || frame.type === "entry_appended") {
81
+ const entry = record(frame.entry);
82
+ const message = record(frame.type === "entry_appended" ? entry?.message : frame.message);
83
+ if (message?.role === "user") {
84
+ const blocks = content(message.content);
85
+ const id = typeof message.timestamp === "number" ? `user-${message.timestamp}` : typeof entry?.id === "string" ? entry.id : void 0;
86
+ if (id !== void 0 && blocks.length > 0 && !seenUserMessages.has(id)) {
87
+ seenUserMessages.add(id);
88
+ updates.push({
89
+ sessionUpdate: "user_message",
90
+ messageId: id,
91
+ content: blocks
92
+ });
93
+ }
94
+ }
95
+ }
96
+ if (reduction.progress) {
97
+ updates.push(...progressUpdates(reduction.progress));
98
+ if (reduction.progress.type === "item_finished" && reduction.progress.item.role === "assistant") {
99
+ const reason = reduction.progress.item.stopReason;
100
+ lastStopReason = reason === "aborted" ? "cancelled" : reason === "length" ? "max_tokens" : "end_turn";
101
+ }
102
+ }
103
+ if (frame.type === "agent_start") updates.push({
104
+ sessionUpdate: "state_update",
105
+ state: "running"
106
+ });
107
+ if (frame.type === "extension_ui_request") updates.push({
108
+ sessionUpdate: "state_update",
109
+ state: "requires_action"
110
+ });
111
+ if (frame.type === "extension_ui_answered") updates.push({
112
+ sessionUpdate: "state_update",
113
+ state: "running"
114
+ });
115
+ if (frame.type === "agent_settled") {
116
+ updates.push({
117
+ sessionUpdate: "state_update",
118
+ state: "idle",
119
+ stopReason: lastStopReason
120
+ });
121
+ lastStopReason = "end_turn";
122
+ }
123
+ return updates;
124
+ } };
125
+ }
126
+ //#endregion
127
+ export { createAcpSessionUpdateProjection };
128
+
129
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/acpSessionUpdates/index.ts"],"sourcesContent":["import type {\n DoomContentBlock,\n DoomSessionStopReason,\n DoomSessionUpdate,\n TranscriptProgress,\n} from '../../exports/sessionProtocol';\nimport type { SessionFrame } from '../../types/server/session';\nimport type { TranscriptReduction } from '../rpcTranscript';\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction content(value: unknown): DoomContentBlock[] {\n if (typeof value === 'string') return [{ type: 'text', text: value }];\n if (!Array.isArray(value)) return [];\n const blocks: DoomContentBlock[] = [];\n for (const part of value) {\n const item = record(part);\n if (item?.type === 'text' && typeof item.text === 'string') blocks.push({ type: 'text', text: item.text });\n if (item?.type === 'image' && typeof item.data === 'string' && typeof item.mimeType === 'string')\n blocks.push({ type: 'image', data: item.data, mimeType: item.mimeType });\n }\n return blocks;\n}\n\nfunction progressUpdates(progress: TranscriptProgress): DoomSessionUpdate[] {\n const item = progress.item;\n if (item.role === 'user') return [{ sessionUpdate: 'user_message', messageId: item.id, content: item.content }];\n if (item.role === 'tool') {\n return [\n {\n sessionUpdate: 'tool_call_update',\n toolCallId: item.toolCallId,\n title: item.toolName,\n kind: 'other',\n status: item.status === 'running' ? 'in_progress' : item.status === 'error' ? 'failed' : 'completed',\n rawInput: item.input,\n ...(progress.type === 'item_finished'\n ? { content: item.content.map((block) => ({ type: 'content' as const, content: block })) }\n : {}),\n },\n ];\n }\n const updates: DoomSessionUpdate[] = [];\n const messageContent = item.content.filter((part) => part.type === 'text');\n if (messageContent.length > 0)\n updates.push({ sessionUpdate: 'agent_message', messageId: item.id, content: messageContent });\n const thoughtContent = item.content.flatMap((part) =>\n part.type === 'thinking' && !part.redacted ? [{ type: 'text' as const, text: part.thinking }] : [],\n );\n if (thoughtContent.length > 0)\n updates.push({ sessionUpdate: 'agent_thought', messageId: `${item.id}:thought`, content: thoughtContent });\n for (const part of item.content) {\n if (part.type !== 'toolCall') continue;\n updates.push({\n sessionUpdate: 'tool_call_update',\n toolCallId: part.toolCallId,\n title: part.toolName,\n kind: 'other',\n status: 'pending',\n rawInput: part.input,\n });\n }\n return updates;\n}\n\n/** Projects the Pi frame stream into the ACP v2 session/update vocabulary. */\nexport function createAcpSessionUpdateProjection(): {\n apply(frame: SessionFrame, reduction: TranscriptReduction): DoomSessionUpdate[];\n} {\n const seenUserMessages = new Set<string>();\n let lastStopReason: DoomSessionStopReason = 'end_turn';\n return {\n apply(frame, reduction) {\n const updates: DoomSessionUpdate[] = [];\n if (frame.type === 'message_start' || frame.type === 'message_end' || frame.type === 'entry_appended') {\n const entry = record(frame.entry);\n const message = record(frame.type === 'entry_appended' ? entry?.message : frame.message);\n if (message?.role === 'user') {\n const blocks = content(message.content);\n const id =\n typeof message.timestamp === 'number'\n ? `user-${message.timestamp}`\n : typeof entry?.id === 'string'\n ? entry.id\n : undefined;\n if (id !== undefined && blocks.length > 0 && !seenUserMessages.has(id)) {\n seenUserMessages.add(id);\n updates.push({ sessionUpdate: 'user_message', messageId: id, content: blocks });\n }\n }\n }\n if (reduction.progress) {\n updates.push(...progressUpdates(reduction.progress));\n if (reduction.progress.type === 'item_finished' && reduction.progress.item.role === 'assistant') {\n const reason = reduction.progress.item.stopReason;\n lastStopReason = reason === 'aborted' ? 'cancelled' : reason === 'length' ? 'max_tokens' : 'end_turn';\n }\n }\n if (frame.type === 'agent_start') updates.push({ sessionUpdate: 'state_update', state: 'running' });\n if (frame.type === 'extension_ui_request')\n updates.push({ sessionUpdate: 'state_update', state: 'requires_action' });\n if (frame.type === 'extension_ui_answered') updates.push({ sessionUpdate: 'state_update', state: 'running' });\n if (frame.type === 'agent_settled') {\n updates.push({ sessionUpdate: 'state_update', state: 'idle', stopReason: lastStopReason });\n lastStopReason = 'end_turn';\n }\n return updates;\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ const require_index = require("../packageApiHarness/index.cjs");
2
+ //#region src/services/apiSurfaceAssert/index.ts
3
+ function sorted(values) {
4
+ return [...new Set(values)].sort();
5
+ }
6
+ /** A path under the same mount that no contract declares, used to calibrate. */
7
+ const CONTROL_PATH = "/__doom_surface_control__";
8
+ /**
9
+ * Whether a response is the framework's own miss rather than a handler's answer.
10
+ *
11
+ * Status alone cannot tell them apart: a route that refuses an unknown record
12
+ * answers 404 legitimately, and reading that as "not mounted" would fail every
13
+ * honest API. So the same request is sent to a path nothing declares, and the
14
+ * two are compared. A declared route answering exactly what an undeclared one
15
+ * answers is not being served.
16
+ *
17
+ * A catch-all route would match the control too and read as unrouted. No
18
+ * package has one; if one appears it should probe an explicit path instead.
19
+ */
20
+ async function isUnrouted(mounted, response, init) {
21
+ if (response.status !== 404 && response.status !== 405) return false;
22
+ const control = await mounted.fetch(`${mounted.mountPath}${CONTROL_PATH}`, init);
23
+ if (control.status !== response.status) return false;
24
+ return await control.text() === await response.text();
25
+ }
26
+ /** Throws with the disagreement spelled out, or returns having found none. */
27
+ async function assertContractSurface(options) {
28
+ const routes = options.contract.http.filter((route) => route.scope === options.scope && route.basePath !== void 0);
29
+ const declared = sorted(routes.map((route) => route.basePath));
30
+ const registered = sorted(options.apis.map((api) => api.basePath));
31
+ const missing = declared.filter((basePath) => !registered.includes(basePath));
32
+ if (missing.length > 0) throw new Error(`The contract declares ${missing.join(", ")} at ${options.scope} scope, but nothing is mounted there. Mounted: ${registered.join(", ") || "(nothing)"}.`);
33
+ const undeclared = registered.filter((basePath) => !declared.includes(basePath));
34
+ if (undeclared.length > 0) throw new Error(`${undeclared.join(", ")} is mounted at ${options.scope} scope but the contract never declares it there.`);
35
+ for (const api of options.apis) {
36
+ const mounted = require_index.mountPackageApi(api, {
37
+ ...options.mount,
38
+ scope: options.scope
39
+ });
40
+ try {
41
+ for (const route of routes.filter((entry) => entry.basePath === api.basePath)) {
42
+ const probe = options.probe?.[route.id];
43
+ const path = probe?.path ?? route.path;
44
+ const init = {
45
+ method: route.method,
46
+ ...probe
47
+ };
48
+ const response = await mounted.fetch(`${mounted.mountPath}${path === "/" ? "" : path}`, init);
49
+ if (!await isUnrouted(mounted, response, init)) continue;
50
+ throw new Error(`${route.method} ${mounted.mountPath}${path} is declared as '${route.id}' but answered ${response.status} exactly as an unrouted path does, so no handler serves it.`);
51
+ }
52
+ } finally {
53
+ mounted.close();
54
+ }
55
+ }
56
+ }
57
+ //#endregion
58
+ exports.assertContractSurface = assertContractSurface;
59
+
60
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["mountPackageApi"],"sources":["../../../../src/services/apiSurfaceAssert/index.ts"],"sourcesContent":["/**\n * Checks that what a package declares is what it actually serves.\n *\n * Nothing else in the toolchain does. `parseApiContract` checks a contract's\n * shape, its id uniqueness and that it is JSON, and stops there; no step\n * compares it to a mounted route or to a registration. That gap is not\n * theoretical. One package shipped a valid four-route contract, a well-tested\n * Hono app and a full unit suite for an API that was never mounted at all, and\n * the only test touching the mount asserted the emptiness rather than noticing\n * it.\n *\n * Two questions, both about liveness rather than semantics: are the base paths\n * this scope registers the same set it declares, and does every declared route\n * reach a handler. A route answering 500 passes; a route answering 404 or 405\n * does not exist.\n */\n\nimport type { DoomApiContract } from '../../schemas/apiContracts';\nimport type { DoomApi, DoomApiScope } from '../../schemas/packageApi';\nimport { mountPackageApi, type MountPackageApiOptions } from '../packageApiHarness';\n\nexport interface ApiSurfaceOptions {\n readonly contract: DoomApiContract;\n /** The scope being checked; only its declarations and registrations are compared. */\n readonly scope: DoomApiScope;\n /** What the generated facet registered at this scope, in registration order. */\n readonly apis: readonly DoomApi[];\n /** Passed through to the harness, so a session API gets its id and working directory. */\n readonly mount?: Omit<MountPackageApiOptions, 'scope'>;\n /**\n * Extra request detail for a route a bare request cannot reach, keyed by\n * contract id, most often a path parameter to substitute.\n */\n readonly probe?: Readonly<Record<string, RequestInit & { readonly path?: string }>>;\n}\n\nfunction sorted(values: Iterable<string>): string[] {\n return [...new Set(values)].sort();\n}\n\n/** A path under the same mount that no contract declares, used to calibrate. */\nconst CONTROL_PATH = '/__doom_surface_control__';\n\n/**\n * Whether a response is the framework's own miss rather than a handler's answer.\n *\n * Status alone cannot tell them apart: a route that refuses an unknown record\n * answers 404 legitimately, and reading that as \"not mounted\" would fail every\n * honest API. So the same request is sent to a path nothing declares, and the\n * two are compared. A declared route answering exactly what an undeclared one\n * answers is not being served.\n *\n * A catch-all route would match the control too and read as unrouted. No\n * package has one; if one appears it should probe an explicit path instead.\n */\nasync function isUnrouted(\n mounted: { readonly mountPath: string; fetch(path: string, init?: RequestInit): Promise<Response> },\n response: Response,\n init: RequestInit,\n): Promise<boolean> {\n if (response.status !== 404 && response.status !== 405) return false;\n const control = await mounted.fetch(`${mounted.mountPath}${CONTROL_PATH}`, init);\n if (control.status !== response.status) return false;\n return (await control.text()) === (await response.text());\n}\n\n/** Throws with the disagreement spelled out, or returns having found none. */\nexport async function assertContractSurface(options: ApiSurfaceOptions): Promise<void> {\n const routes = options.contract.http.filter((route) => route.scope === options.scope && route.basePath !== undefined);\n const declared = sorted(routes.map((route) => route.basePath as string));\n const registered = sorted(options.apis.map((api) => api.basePath));\n\n const missing = declared.filter((basePath) => !registered.includes(basePath));\n if (missing.length > 0) {\n throw new Error(\n `The contract declares ${missing.join(', ')} at ${options.scope} scope, but nothing is mounted there. ` +\n `Mounted: ${registered.join(', ') || '(nothing)'}.`,\n );\n }\n const undeclared = registered.filter((basePath) => !declared.includes(basePath));\n if (undeclared.length > 0) {\n throw new Error(\n `${undeclared.join(', ')} is mounted at ${options.scope} scope but the contract never declares it there.`,\n );\n }\n\n for (const api of options.apis) {\n const mounted = mountPackageApi(api, { ...options.mount, scope: options.scope });\n try {\n for (const route of routes.filter((entry) => entry.basePath === api.basePath)) {\n const probe = options.probe?.[route.id];\n const path = probe?.path ?? route.path;\n const init = { method: route.method, ...probe };\n const response = await mounted.fetch(`${mounted.mountPath}${path === '/' ? '' : path}`, init);\n if (!(await isUnrouted(mounted, response, init))) continue;\n throw new Error(\n `${route.method} ${mounted.mountPath}${path} is declared as '${route.id}' but answered ` +\n `${response.status} exactly as an unrouted path does, so no handler serves it.`,\n );\n }\n } finally {\n mounted.close();\n }\n }\n}\n"],"mappings":";;AAoCA,SAAS,OAAO,QAAoC;CAClD,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK;AACnC;;AAGA,MAAM,eAAe;;;;;;;;;;;;;AAcrB,eAAe,WACb,SACA,UACA,MACkB;CAClB,IAAI,SAAS,WAAW,OAAO,SAAS,WAAW,KAAK,OAAO;CAC/D,MAAM,UAAU,MAAM,QAAQ,MAAM,GAAG,QAAQ,YAAY,gBAAgB,IAAI;CAC/E,IAAI,QAAQ,WAAW,SAAS,QAAQ,OAAO;CAC/C,OAAQ,MAAM,QAAQ,KAAK,MAAQ,MAAM,SAAS,KAAK;AACzD;;AAGA,eAAsB,sBAAsB,SAA2C;CACrF,MAAM,SAAS,QAAQ,SAAS,KAAK,QAAQ,UAAU,MAAM,UAAU,QAAQ,SAAS,MAAM,aAAa,KAAA,CAAS;CACpH,MAAM,WAAW,OAAO,OAAO,KAAK,UAAU,MAAM,QAAkB,CAAC;CACvE,MAAM,aAAa,OAAO,QAAQ,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC;CAEjE,MAAM,UAAU,SAAS,QAAQ,aAAa,CAAC,WAAW,SAAS,QAAQ,CAAC;CAC5E,IAAI,QAAQ,SAAS,GACnB,MAAM,IAAI,MACR,yBAAyB,QAAQ,KAAK,IAAI,EAAE,MAAM,QAAQ,MAAM,iDAClD,WAAW,KAAK,IAAI,KAAK,YAAY,EACrD;CAEF,MAAM,aAAa,WAAW,QAAQ,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC;CAC/E,IAAI,WAAW,SAAS,GACtB,MAAM,IAAI,MACR,GAAG,WAAW,KAAK,IAAI,EAAE,iBAAiB,QAAQ,MAAM,iDAC1D;CAGF,KAAK,MAAM,OAAO,QAAQ,MAAM;EAC9B,MAAM,UAAUA,cAAAA,gBAAgB,KAAK;GAAE,GAAG,QAAQ;GAAO,OAAO,QAAQ;EAAM,CAAC;EAC/E,IAAI;GACF,KAAK,MAAM,SAAS,OAAO,QAAQ,UAAU,MAAM,aAAa,IAAI,QAAQ,GAAG;IAC7E,MAAM,QAAQ,QAAQ,QAAQ,MAAM;IACpC,MAAM,OAAO,OAAO,QAAQ,MAAM;IAClC,MAAM,OAAO;KAAE,QAAQ,MAAM;KAAQ,GAAG;IAAM;IAC9C,MAAM,WAAW,MAAM,QAAQ,MAAM,GAAG,QAAQ,YAAY,SAAS,MAAM,KAAK,QAAQ,IAAI;IAC5F,IAAI,CAAE,MAAM,WAAW,SAAS,UAAU,IAAI,GAAI;IAClD,MAAM,IAAI,MACR,GAAG,MAAM,OAAO,GAAG,QAAQ,YAAY,KAAK,mBAAmB,MAAM,GAAG,iBACnE,SAAS,OAAO,4DACvB;GACF;EACF,UAAU;GACR,QAAQ,MAAM;EAChB;CACF;AACF"}
@@ -0,0 +1,24 @@
1
+ import { DoomApi, DoomApiScope } from "../../schemas/packageApi.mjs";
2
+ import { DoomApiContract } from "../../schemas/apiContracts.mjs";
3
+ import { MountPackageApiOptions } from "../packageApiHarness/index.mjs";
4
+ //#region src/services/apiSurfaceAssert/index.d.ts
5
+ export interface ApiSurfaceOptions {
6
+ readonly contract: DoomApiContract;
7
+ /** The scope being checked; only its declarations and registrations are compared. */
8
+ readonly scope: DoomApiScope;
9
+ /** What the generated facet registered at this scope, in registration order. */
10
+ readonly apis: readonly DoomApi[];
11
+ /** Passed through to the harness, so a session API gets its id and working directory. */
12
+ readonly mount?: Omit<MountPackageApiOptions, 'scope'>;
13
+ /**
14
+ * Extra request detail for a route a bare request cannot reach, keyed by
15
+ * contract id, most often a path parameter to substitute.
16
+ */
17
+ readonly probe?: Readonly<Record<string, RequestInit & {
18
+ readonly path?: string;
19
+ }>>;
20
+ }
21
+ /** Throws with the disagreement spelled out, or returns having found none. */
22
+ export declare function assertContractSurface(options: ApiSurfaceOptions): Promise<void>;
23
+ //#endregion
24
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/apiSurfaceAssert/index.ts"],"mappings":";;;;iBAqBiB;WACN,UAAU;;WAEV,OAAO;;WAEP,eAAe;;WAEf,QAAQ,KAAK;;;;;WAKb,QAAQ,SAAS,eAAe;aAAyB;;;;wBAkC9C,sBAAsB,SAAS,oBAAoB"}
@@ -0,0 +1,60 @@
1
+ import { mountPackageApi } from "../packageApiHarness/index.mjs";
2
+ //#region src/services/apiSurfaceAssert/index.ts
3
+ function sorted(values) {
4
+ return [...new Set(values)].sort();
5
+ }
6
+ /** A path under the same mount that no contract declares, used to calibrate. */
7
+ const CONTROL_PATH = "/__doom_surface_control__";
8
+ /**
9
+ * Whether a response is the framework's own miss rather than a handler's answer.
10
+ *
11
+ * Status alone cannot tell them apart: a route that refuses an unknown record
12
+ * answers 404 legitimately, and reading that as "not mounted" would fail every
13
+ * honest API. So the same request is sent to a path nothing declares, and the
14
+ * two are compared. A declared route answering exactly what an undeclared one
15
+ * answers is not being served.
16
+ *
17
+ * A catch-all route would match the control too and read as unrouted. No
18
+ * package has one; if one appears it should probe an explicit path instead.
19
+ */
20
+ async function isUnrouted(mounted, response, init) {
21
+ if (response.status !== 404 && response.status !== 405) return false;
22
+ const control = await mounted.fetch(`${mounted.mountPath}${CONTROL_PATH}`, init);
23
+ if (control.status !== response.status) return false;
24
+ return await control.text() === await response.text();
25
+ }
26
+ /** Throws with the disagreement spelled out, or returns having found none. */
27
+ async function assertContractSurface(options) {
28
+ const routes = options.contract.http.filter((route) => route.scope === options.scope && route.basePath !== void 0);
29
+ const declared = sorted(routes.map((route) => route.basePath));
30
+ const registered = sorted(options.apis.map((api) => api.basePath));
31
+ const missing = declared.filter((basePath) => !registered.includes(basePath));
32
+ if (missing.length > 0) throw new Error(`The contract declares ${missing.join(", ")} at ${options.scope} scope, but nothing is mounted there. Mounted: ${registered.join(", ") || "(nothing)"}.`);
33
+ const undeclared = registered.filter((basePath) => !declared.includes(basePath));
34
+ if (undeclared.length > 0) throw new Error(`${undeclared.join(", ")} is mounted at ${options.scope} scope but the contract never declares it there.`);
35
+ for (const api of options.apis) {
36
+ const mounted = mountPackageApi(api, {
37
+ ...options.mount,
38
+ scope: options.scope
39
+ });
40
+ try {
41
+ for (const route of routes.filter((entry) => entry.basePath === api.basePath)) {
42
+ const probe = options.probe?.[route.id];
43
+ const path = probe?.path ?? route.path;
44
+ const init = {
45
+ method: route.method,
46
+ ...probe
47
+ };
48
+ const response = await mounted.fetch(`${mounted.mountPath}${path === "/" ? "" : path}`, init);
49
+ if (!await isUnrouted(mounted, response, init)) continue;
50
+ throw new Error(`${route.method} ${mounted.mountPath}${path} is declared as '${route.id}' but answered ${response.status} exactly as an unrouted path does, so no handler serves it.`);
51
+ }
52
+ } finally {
53
+ mounted.close();
54
+ }
55
+ }
56
+ }
57
+ //#endregion
58
+ export { assertContractSurface };
59
+
60
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/apiSurfaceAssert/index.ts"],"sourcesContent":["/**\n * Checks that what a package declares is what it actually serves.\n *\n * Nothing else in the toolchain does. `parseApiContract` checks a contract's\n * shape, its id uniqueness and that it is JSON, and stops there; no step\n * compares it to a mounted route or to a registration. That gap is not\n * theoretical. One package shipped a valid four-route contract, a well-tested\n * Hono app and a full unit suite for an API that was never mounted at all, and\n * the only test touching the mount asserted the emptiness rather than noticing\n * it.\n *\n * Two questions, both about liveness rather than semantics: are the base paths\n * this scope registers the same set it declares, and does every declared route\n * reach a handler. A route answering 500 passes; a route answering 404 or 405\n * does not exist.\n */\n\nimport type { DoomApiContract } from '../../schemas/apiContracts';\nimport type { DoomApi, DoomApiScope } from '../../schemas/packageApi';\nimport { mountPackageApi, type MountPackageApiOptions } from '../packageApiHarness';\n\nexport interface ApiSurfaceOptions {\n readonly contract: DoomApiContract;\n /** The scope being checked; only its declarations and registrations are compared. */\n readonly scope: DoomApiScope;\n /** What the generated facet registered at this scope, in registration order. */\n readonly apis: readonly DoomApi[];\n /** Passed through to the harness, so a session API gets its id and working directory. */\n readonly mount?: Omit<MountPackageApiOptions, 'scope'>;\n /**\n * Extra request detail for a route a bare request cannot reach, keyed by\n * contract id, most often a path parameter to substitute.\n */\n readonly probe?: Readonly<Record<string, RequestInit & { readonly path?: string }>>;\n}\n\nfunction sorted(values: Iterable<string>): string[] {\n return [...new Set(values)].sort();\n}\n\n/** A path under the same mount that no contract declares, used to calibrate. */\nconst CONTROL_PATH = '/__doom_surface_control__';\n\n/**\n * Whether a response is the framework's own miss rather than a handler's answer.\n *\n * Status alone cannot tell them apart: a route that refuses an unknown record\n * answers 404 legitimately, and reading that as \"not mounted\" would fail every\n * honest API. So the same request is sent to a path nothing declares, and the\n * two are compared. A declared route answering exactly what an undeclared one\n * answers is not being served.\n *\n * A catch-all route would match the control too and read as unrouted. No\n * package has one; if one appears it should probe an explicit path instead.\n */\nasync function isUnrouted(\n mounted: { readonly mountPath: string; fetch(path: string, init?: RequestInit): Promise<Response> },\n response: Response,\n init: RequestInit,\n): Promise<boolean> {\n if (response.status !== 404 && response.status !== 405) return false;\n const control = await mounted.fetch(`${mounted.mountPath}${CONTROL_PATH}`, init);\n if (control.status !== response.status) return false;\n return (await control.text()) === (await response.text());\n}\n\n/** Throws with the disagreement spelled out, or returns having found none. */\nexport async function assertContractSurface(options: ApiSurfaceOptions): Promise<void> {\n const routes = options.contract.http.filter((route) => route.scope === options.scope && route.basePath !== undefined);\n const declared = sorted(routes.map((route) => route.basePath as string));\n const registered = sorted(options.apis.map((api) => api.basePath));\n\n const missing = declared.filter((basePath) => !registered.includes(basePath));\n if (missing.length > 0) {\n throw new Error(\n `The contract declares ${missing.join(', ')} at ${options.scope} scope, but nothing is mounted there. ` +\n `Mounted: ${registered.join(', ') || '(nothing)'}.`,\n );\n }\n const undeclared = registered.filter((basePath) => !declared.includes(basePath));\n if (undeclared.length > 0) {\n throw new Error(\n `${undeclared.join(', ')} is mounted at ${options.scope} scope but the contract never declares it there.`,\n );\n }\n\n for (const api of options.apis) {\n const mounted = mountPackageApi(api, { ...options.mount, scope: options.scope });\n try {\n for (const route of routes.filter((entry) => entry.basePath === api.basePath)) {\n const probe = options.probe?.[route.id];\n const path = probe?.path ?? route.path;\n const init = { method: route.method, ...probe };\n const response = await mounted.fetch(`${mounted.mountPath}${path === '/' ? '' : path}`, init);\n if (!(await isUnrouted(mounted, response, init))) continue;\n throw new Error(\n `${route.method} ${mounted.mountPath}${path} is declared as '${route.id}' but answered ` +\n `${response.status} exactly as an unrouted path does, so no handler serves it.`,\n );\n }\n } finally {\n mounted.close();\n }\n }\n}\n"],"mappings":";;AAoCA,SAAS,OAAO,QAAoC;CAClD,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK;AACnC;;AAGA,MAAM,eAAe;;;;;;;;;;;;;AAcrB,eAAe,WACb,SACA,UACA,MACkB;CAClB,IAAI,SAAS,WAAW,OAAO,SAAS,WAAW,KAAK,OAAO;CAC/D,MAAM,UAAU,MAAM,QAAQ,MAAM,GAAG,QAAQ,YAAY,gBAAgB,IAAI;CAC/E,IAAI,QAAQ,WAAW,SAAS,QAAQ,OAAO;CAC/C,OAAQ,MAAM,QAAQ,KAAK,MAAQ,MAAM,SAAS,KAAK;AACzD;;AAGA,eAAsB,sBAAsB,SAA2C;CACrF,MAAM,SAAS,QAAQ,SAAS,KAAK,QAAQ,UAAU,MAAM,UAAU,QAAQ,SAAS,MAAM,aAAa,KAAA,CAAS;CACpH,MAAM,WAAW,OAAO,OAAO,KAAK,UAAU,MAAM,QAAkB,CAAC;CACvE,MAAM,aAAa,OAAO,QAAQ,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC;CAEjE,MAAM,UAAU,SAAS,QAAQ,aAAa,CAAC,WAAW,SAAS,QAAQ,CAAC;CAC5E,IAAI,QAAQ,SAAS,GACnB,MAAM,IAAI,MACR,yBAAyB,QAAQ,KAAK,IAAI,EAAE,MAAM,QAAQ,MAAM,iDAClD,WAAW,KAAK,IAAI,KAAK,YAAY,EACrD;CAEF,MAAM,aAAa,WAAW,QAAQ,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC;CAC/E,IAAI,WAAW,SAAS,GACtB,MAAM,IAAI,MACR,GAAG,WAAW,KAAK,IAAI,EAAE,iBAAiB,QAAQ,MAAM,iDAC1D;CAGF,KAAK,MAAM,OAAO,QAAQ,MAAM;EAC9B,MAAM,UAAU,gBAAgB,KAAK;GAAE,GAAG,QAAQ;GAAO,OAAO,QAAQ;EAAM,CAAC;EAC/E,IAAI;GACF,KAAK,MAAM,SAAS,OAAO,QAAQ,UAAU,MAAM,aAAa,IAAI,QAAQ,GAAG;IAC7E,MAAM,QAAQ,QAAQ,QAAQ,MAAM;IACpC,MAAM,OAAO,OAAO,QAAQ,MAAM;IAClC,MAAM,OAAO;KAAE,QAAQ,MAAM;KAAQ,GAAG;IAAM;IAC9C,MAAM,WAAW,MAAM,QAAQ,MAAM,GAAG,QAAQ,YAAY,SAAS,MAAM,KAAK,QAAQ,IAAI;IAC5F,IAAI,CAAE,MAAM,WAAW,SAAS,UAAU,IAAI,GAAI;IAClD,MAAM,IAAI,MACR,GAAG,MAAM,OAAO,GAAG,QAAQ,YAAY,KAAK,mBAAmB,MAAM,GAAG,iBACnE,SAAS,OAAO,4DACvB;GACF;EACF,UAAU;GACR,QAAQ,MAAM;EAChB;CACF;AACF"}
@@ -0,0 +1,88 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ let node_fs = require("node:fs");
3
+ node_fs = require_runtime.__toESM(node_fs, 1);
4
+ let node_path = require("node:path");
5
+ node_path = require_runtime.__toESM(node_path, 1);
6
+ let _agimon_ai_doompi_web_security_node = require("@agimon-ai/doompi-web-security/node");
7
+ //#region src/services/bundlePublication/index.ts
8
+ /**
9
+ * Signs synchronized plugin generations without replacing the stable shell publication.
10
+ *
11
+ * Publications are retained by the exact identity and revision advertised to pages, so
12
+ * a concurrent sync cannot pair an old manifest with bytes from a new generation.
13
+ */
14
+ function createPluginBundlePublication(stateDir, onNotice = () => {}) {
15
+ let signer;
16
+ try {
17
+ signer = (0, _agimon_ai_doompi_web_security_node.createBundleSigner)(stateDir, onNotice);
18
+ } catch (error) {
19
+ onNotice(`plugin compositions could not be signed: ${error instanceof Error ? error.message : String(error)}`);
20
+ }
21
+ const byComposition = /* @__PURE__ */ new Map();
22
+ const byRoute = /* @__PURE__ */ new Map();
23
+ const publicationRoot = signer === void 0 ? void 0 : node_fs.default.mkdtempSync(node_path.default.join(stateDir, "plugin-publications-"));
24
+ let closed = false;
25
+ const routeKey = (compositionId, revision) => `${compositionId}:${String(revision)}`;
26
+ const publish = (compositionId, assetsDir) => {
27
+ if (closed) return void 0;
28
+ const existing = byComposition.get(compositionId);
29
+ if (existing !== void 0) return existing;
30
+ if (signer === void 0 || publicationRoot === void 0) return void 0;
31
+ const stagingRoot = node_fs.default.mkdtempSync(node_path.default.join(publicationRoot, ".staging-"));
32
+ const snapshot = node_path.default.join(stagingRoot, "assets");
33
+ try {
34
+ node_fs.default.cpSync(assetsDir, snapshot, { recursive: true });
35
+ const signed = signer.sign(snapshot);
36
+ if (signed === void 0) {
37
+ onNotice(`plugin composition '${compositionId}' is empty and cannot be published`);
38
+ return;
39
+ }
40
+ const retainedDirectory = node_path.default.join(publicationRoot, `${compositionId}-${String(signed.manifest.revision)}`);
41
+ node_fs.default.renameSync(snapshot, retainedDirectory);
42
+ const published = {
43
+ signed,
44
+ assetsDir: retainedDirectory
45
+ };
46
+ byComposition.set(compositionId, published);
47
+ byRoute.set(routeKey(compositionId, signed.manifest.revision), published);
48
+ return published;
49
+ } catch (error) {
50
+ onNotice(`plugin composition '${compositionId}' could not be signed: ${error instanceof Error ? error.message : String(error)}`);
51
+ return;
52
+ } finally {
53
+ node_fs.default.rmSync(stagingRoot, {
54
+ recursive: true,
55
+ force: true
56
+ });
57
+ }
58
+ };
59
+ return {
60
+ publish,
61
+ release(compositionId) {
62
+ const bundle = byComposition.get(compositionId);
63
+ if (!bundle) return;
64
+ byComposition.delete(compositionId);
65
+ byRoute.delete(routeKey(compositionId, bundle.signed.manifest.revision));
66
+ node_fs.default.rmSync(bundle.assetsDir, {
67
+ recursive: true,
68
+ force: true
69
+ });
70
+ },
71
+ get: (compositionId, revision) => byRoute.get(routeKey(compositionId, revision)),
72
+ publicKey: () => signer?.publicKey(),
73
+ close: () => {
74
+ if (closed) return;
75
+ closed = true;
76
+ byComposition.clear();
77
+ byRoute.clear();
78
+ if (publicationRoot !== void 0) node_fs.default.rmSync(publicationRoot, {
79
+ recursive: true,
80
+ force: true
81
+ });
82
+ }
83
+ };
84
+ }
85
+ //#endregion
86
+ exports.createPluginBundlePublication = createPluginBundlePublication;
87
+
88
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["createBundleSigner","fs","path"],"sources":["../../../../src/services/bundlePublication/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { SignedBundleManifest } from '@agimon-ai/doompi-web-security';\nimport { createBundleSigner, type BundleSigner } from '@agimon-ai/doompi-web-security/node';\n\nexport interface PublishedBundle {\n signed: SignedBundleManifest;\n assetsDir: string;\n}\n\nexport interface PluginBundlePublication {\n publish(compositionId: string, assetsDir: string): PublishedBundle | undefined;\n get(compositionId: string, revision: number): PublishedBundle | undefined;\n publicKey(): string | undefined;\n release(compositionId: string): void;\n close(): void;\n}\n\n/**\n * Signs synchronized plugin generations without replacing the stable shell publication.\n *\n * Publications are retained by the exact identity and revision advertised to pages, so\n * a concurrent sync cannot pair an old manifest with bytes from a new generation.\n */\nexport function createPluginBundlePublication(\n stateDir: string,\n onNotice: (message: string) => void = () => {},\n): PluginBundlePublication {\n let signer: BundleSigner | undefined;\n try {\n signer = createBundleSigner(stateDir, onNotice);\n } catch (error) {\n onNotice(`plugin compositions could not be signed: ${error instanceof Error ? error.message : String(error)}`);\n }\n const byComposition = new Map<string, PublishedBundle>();\n const byRoute = new Map<string, PublishedBundle>();\n const publicationRoot =\n signer === undefined ? undefined : fs.mkdtempSync(path.join(stateDir, 'plugin-publications-'));\n let closed = false;\n const routeKey = (compositionId: string, revision: number): string => `${compositionId}:${String(revision)}`;\n const publish = (compositionId: string, assetsDir: string): PublishedBundle | undefined => {\n if (closed) return undefined;\n const existing = byComposition.get(compositionId);\n if (existing !== undefined) return existing;\n if (signer === undefined || publicationRoot === undefined) return undefined;\n const stagingRoot = fs.mkdtempSync(path.join(publicationRoot, '.staging-'));\n const snapshot = path.join(stagingRoot, 'assets');\n try {\n fs.cpSync(assetsDir, snapshot, { recursive: true });\n const signed = signer.sign(snapshot);\n if (signed === undefined) {\n onNotice(`plugin composition '${compositionId}' is empty and cannot be published`);\n return undefined;\n }\n const retainedDirectory = path.join(publicationRoot, `${compositionId}-${String(signed.manifest.revision)}`);\n fs.renameSync(snapshot, retainedDirectory);\n const published = { signed, assetsDir: retainedDirectory };\n byComposition.set(compositionId, published);\n byRoute.set(routeKey(compositionId, signed.manifest.revision), published);\n return published;\n } catch (error) {\n onNotice(\n `plugin composition '${compositionId}' could not be signed: ${error instanceof Error ? error.message : String(error)}`,\n );\n return undefined;\n } finally {\n fs.rmSync(stagingRoot, { recursive: true, force: true });\n }\n };\n\n return {\n publish,\n release(compositionId) {\n const bundle = byComposition.get(compositionId);\n if (!bundle) return;\n byComposition.delete(compositionId);\n byRoute.delete(routeKey(compositionId, bundle.signed.manifest.revision));\n fs.rmSync(bundle.assetsDir, { recursive: true, force: true });\n },\n get: (compositionId, revision) => byRoute.get(routeKey(compositionId, revision)),\n publicKey: () => signer?.publicKey(),\n close: () => {\n if (closed) return;\n closed = true;\n byComposition.clear();\n byRoute.clear();\n if (publicationRoot !== undefined) fs.rmSync(publicationRoot, { recursive: true, force: true });\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAyBA,SAAgB,8BACd,UACA,iBAA4C,CAAC,GACpB;CACzB,IAAI;CACJ,IAAI;EACF,UAAA,GAASA,oCAAAA,mBAAAA,CAAmB,UAAU,QAAQ;CAChD,SAAS,OAAO;EACd,SAAS,4CAA4C,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG;CAC/G;CACA,MAAM,gCAAgB,IAAI,IAA6B;CACvD,MAAM,0BAAU,IAAI,IAA6B;CACjD,MAAM,kBACJ,WAAW,KAAA,IAAY,KAAA,IAAYC,QAAAA,QAAG,YAAYC,UAAAA,QAAK,KAAK,UAAU,sBAAsB,CAAC;CAC/F,IAAI,SAAS;CACb,MAAM,YAAY,eAAuB,aAA6B,GAAG,cAAc,GAAG,OAAO,QAAQ;CACzG,MAAM,WAAW,eAAuB,cAAmD;EACzF,IAAI,QAAQ,OAAO,KAAA;EACnB,MAAM,WAAW,cAAc,IAAI,aAAa;EAChD,IAAI,aAAa,KAAA,GAAW,OAAO;EACnC,IAAI,WAAW,KAAA,KAAa,oBAAoB,KAAA,GAAW,OAAO,KAAA;EAClE,MAAM,cAAcD,QAAAA,QAAG,YAAYC,UAAAA,QAAK,KAAK,iBAAiB,WAAW,CAAC;EAC1E,MAAM,WAAWA,UAAAA,QAAK,KAAK,aAAa,QAAQ;EAChD,IAAI;GACF,QAAA,QAAG,OAAO,WAAW,UAAU,EAAE,WAAW,KAAK,CAAC;GAClD,MAAM,SAAS,OAAO,KAAK,QAAQ;GACnC,IAAI,WAAW,KAAA,GAAW;IACxB,SAAS,uBAAuB,cAAc,mCAAmC;IACjF;GACF;GACA,MAAM,oBAAoBA,UAAAA,QAAK,KAAK,iBAAiB,GAAG,cAAc,GAAG,OAAO,OAAO,SAAS,QAAQ,GAAG;GAC3G,QAAA,QAAG,WAAW,UAAU,iBAAiB;GACzC,MAAM,YAAY;IAAE;IAAQ,WAAW;GAAkB;GACzD,cAAc,IAAI,eAAe,SAAS;GAC1C,QAAQ,IAAI,SAAS,eAAe,OAAO,SAAS,QAAQ,GAAG,SAAS;GACxE,OAAO;EACT,SAAS,OAAO;GACd,SACE,uBAAuB,cAAc,yBAAyB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GACrH;GACA;EACF,UAAU;GACR,QAAA,QAAG,OAAO,aAAa;IAAE,WAAW;IAAM,OAAO;GAAK,CAAC;EACzD;CACF;CAEA,OAAO;EACL;EACA,QAAQ,eAAe;GACrB,MAAM,SAAS,cAAc,IAAI,aAAa;GAC9C,IAAI,CAAC,QAAQ;GACb,cAAc,OAAO,aAAa;GAClC,QAAQ,OAAO,SAAS,eAAe,OAAO,OAAO,SAAS,QAAQ,CAAC;GACvE,QAAA,QAAG,OAAO,OAAO,WAAW;IAAE,WAAW;IAAM,OAAO;GAAK,CAAC;EAC9D;EACA,MAAM,eAAe,aAAa,QAAQ,IAAI,SAAS,eAAe,QAAQ,CAAC;EAC/E,iBAAiB,QAAQ,UAAU;EACnC,aAAa;GACX,IAAI,QAAQ;GACZ,SAAS;GACT,cAAc,MAAM;GACpB,QAAQ,MAAM;GACd,IAAI,oBAAoB,KAAA,GAAW,QAAA,QAAG,OAAO,iBAAiB;IAAE,WAAW;IAAM,OAAO;GAAK,CAAC;EAChG;CACF;AACF"}