@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1149) hide show
  1. package/LICENSE +149 -21
  2. package/NOTICE +41 -0
  3. package/dist/agentModel.cjs +1 -1
  4. package/dist/agentModel.d.mts +2 -2
  5. package/dist/agentModel.mjs +1 -2
  6. package/dist/apiContracts.cjs +623 -802
  7. package/dist/apiContracts.cjs.map +1 -1
  8. package/dist/apiContracts.d.mts +277 -615
  9. package/dist/apiContracts.d.mts.map +1 -1
  10. package/dist/apiContracts.mjs +617 -794
  11. package/dist/apiContracts.mjs.map +1 -1
  12. package/dist/askUser.cjs +2 -2
  13. package/dist/askUser.d.mts +2 -2
  14. package/dist/askUser.mjs +1 -2
  15. package/dist/authorTools.mjs +1 -2
  16. package/dist/backgroundWork.cjs +3 -3
  17. package/dist/backgroundWork.d.mts +2 -2
  18. package/dist/backgroundWork.mjs +1 -2
  19. package/dist/bundleAssetPolicy.mjs +1 -2
  20. package/dist/chatgptAuth.cjs +3 -2
  21. package/dist/chatgptAuth.d.mts +3 -2
  22. package/dist/chatgptAuth.mjs +2 -1
  23. package/dist/childProcess.cjs +1 -1
  24. package/dist/childProcess.d.mts +2 -2
  25. package/dist/childProcess.mjs +1 -2
  26. package/dist/childSession.cjs +11 -6
  27. package/dist/childSession.d.mts +3 -3
  28. package/dist/childSession.mjs +3 -3
  29. package/dist/cockpitContainer.mjs +1 -2
  30. package/dist/config.cjs +1 -1
  31. package/dist/config.d.mts +3 -3
  32. package/dist/config.mjs +1 -2
  33. package/dist/contextApi.cjs +1 -0
  34. package/dist/contextApi.d.mts +2 -2
  35. package/dist/contextApi.mjs +2 -2
  36. package/dist/contextContributions.cjs +4 -4
  37. package/dist/contextContributions.d.mts +3 -3
  38. package/dist/contextContributions.mjs +3 -3
  39. package/dist/contextDetailStore.cjs +7 -5
  40. package/dist/contextDetailStore.cjs.map +1 -1
  41. package/dist/contextDetailStore.d.mts +2 -1
  42. package/dist/contextDetailStore.d.mts.map +1 -1
  43. package/dist/contextDetailStore.mjs +6 -4
  44. package/dist/contextDetailStore.mjs.map +1 -1
  45. package/dist/contextProjection.cjs +7 -2
  46. package/dist/contextProjection.cjs.map +1 -1
  47. package/dist/contextProjection.d.mts +4 -1
  48. package/dist/contextProjection.d.mts.map +1 -1
  49. package/dist/contextProjection.mjs +5 -2
  50. package/dist/contextProjection.mjs.map +1 -1
  51. package/dist/cordisHost.cjs +11 -11
  52. package/dist/cordisHost.d.mts +2 -2
  53. package/dist/cordisHost.mjs +1 -2
  54. package/dist/delegation.cjs +8 -8
  55. package/dist/delegation.d.mts +2 -2
  56. package/dist/delegation.mjs +1 -2
  57. package/dist/executionBudget.cjs +4 -3
  58. package/dist/executionBudget.cjs.map +1 -1
  59. package/dist/executionBudget.d.mts +2 -2
  60. package/dist/executionBudget.d.mts.map +1 -1
  61. package/dist/executionBudget.mjs +4 -3
  62. package/dist/executionBudget.mjs.map +1 -1
  63. package/dist/extensionFile.cjs +5 -0
  64. package/dist/extensionFile.d.mts +4 -2
  65. package/dist/extensionFile.mjs +4 -2
  66. package/dist/footer.d.mts +2 -2
  67. package/dist/footer.mjs +1 -2
  68. package/dist/headless.cjs +14 -14
  69. package/dist/headless.d.mts +2 -2
  70. package/dist/headless.mjs +1 -2
  71. package/dist/headlessHub.cjs +308 -109
  72. package/dist/headlessHub.cjs.map +1 -1
  73. package/dist/headlessHub.d.mts +71 -36
  74. package/dist/headlessHub.d.mts.map +1 -1
  75. package/dist/headlessHub.mjs +309 -110
  76. package/dist/headlessHub.mjs.map +1 -1
  77. package/dist/headlessProtocol.cjs +327 -0
  78. package/dist/headlessProtocol.cjs.map +1 -0
  79. package/dist/headlessProtocol.d.mts +30 -0
  80. package/dist/headlessProtocol.d.mts.map +1 -0
  81. package/dist/headlessProtocol.mjs +326 -0
  82. package/dist/headlessProtocol.mjs.map +1 -0
  83. package/dist/headlessServer.cjs +166 -151
  84. package/dist/headlessServer.cjs.map +1 -1
  85. package/dist/headlessServer.d.mts +13 -5
  86. package/dist/headlessServer.d.mts.map +1 -1
  87. package/dist/headlessServer.mjs +166 -151
  88. package/dist/headlessServer.mjs.map +1 -1
  89. package/dist/headlessSessionHost.d.mts +58 -21
  90. package/dist/headlessSessionHost.d.mts.map +1 -1
  91. package/dist/help.cjs +20 -20
  92. package/dist/help.d.mts +2 -2
  93. package/dist/help.mjs +2 -2
  94. package/dist/history.cjs +16 -20
  95. package/dist/history.d.mts +9 -7
  96. package/dist/history.mjs +6 -7
  97. package/dist/historyOwnership.cjs.map +1 -1
  98. package/dist/historyOwnership.d.mts +1 -1
  99. package/dist/historyOwnership.mjs.map +1 -1
  100. package/dist/hubChannel.cjs +9 -0
  101. package/dist/hubChannel.d.mts +3 -2
  102. package/dist/hubChannel.mjs +3 -2
  103. package/dist/index.cjs +26 -28
  104. package/dist/index.d.mts +6 -6
  105. package/dist/index.mjs +6 -6
  106. package/dist/interop/chord.mjs +1 -0
  107. package/dist/interop/chordContext.mjs +1 -0
  108. package/dist/json.cjs +11 -5
  109. package/dist/json.d.mts +4 -2
  110. package/dist/json.mjs +4 -2
  111. package/dist/kernel.cjs +1 -1
  112. package/dist/kernel.d.mts +3 -3
  113. package/dist/kernel.mjs +1 -2
  114. package/dist/leader.d.mts +2 -2
  115. package/dist/leader.mjs +1 -2
  116. package/dist/logSinkTelemetry.mjs +1 -2
  117. package/dist/machineApi.cjs +80 -74
  118. package/dist/machineApi.cjs.map +1 -1
  119. package/dist/machineApi.d.mts +5 -2
  120. package/dist/machineApi.d.mts.map +1 -1
  121. package/dist/machineApi.mjs +78 -71
  122. package/dist/machineApi.mjs.map +1 -1
  123. package/dist/main.cjs +2 -1
  124. package/dist/main.d.mts +2 -1
  125. package/dist/main.mjs +2 -1
  126. package/dist/mcpFacet.d.mts +3 -3
  127. package/dist/mcpProjection.cjs +13 -13
  128. package/dist/mcpProjection.d.mts +2 -2
  129. package/dist/mcpProjection.mjs +1 -2
  130. package/dist/mcpSchemaCost.cjs +4 -4
  131. package/dist/mcpSchemaCost.cjs.map +1 -1
  132. package/dist/mcpSchemaCost.d.mts +2 -2
  133. package/dist/mcpSchemaCost.mjs +4 -4
  134. package/dist/mcpSchemaCost.mjs.map +1 -1
  135. package/dist/mcpSession.cjs +7 -7
  136. package/dist/mcpSession.d.mts +2 -2
  137. package/dist/mcpSession.mjs +1 -2
  138. package/dist/mcpStatus.cjs +2 -2
  139. package/dist/mcpStatus.d.mts +2 -2
  140. package/dist/mcpStatus.mjs +1 -2
  141. package/dist/mcpToolResolver.cjs +3 -3
  142. package/dist/mcpToolResolver.d.mts +2 -2
  143. package/dist/mcpToolResolver.mjs +1 -2
  144. package/dist/mcpWidget.d.mts +2 -2
  145. package/dist/moduleResolution.cjs +43 -8
  146. package/dist/moduleResolution.cjs.map +1 -1
  147. package/dist/moduleResolution.d.mts +10 -1
  148. package/dist/moduleResolution.d.mts.map +1 -1
  149. package/dist/moduleResolution.mjs +40 -7
  150. package/dist/moduleResolution.mjs.map +1 -1
  151. package/dist/narration.cjs +3 -3
  152. package/dist/narration.d.mts +2 -2
  153. package/dist/narration.mjs +1 -2
  154. package/dist/native.cjs +9 -0
  155. package/dist/native.d.mts +4 -3
  156. package/dist/native.mjs +3 -2
  157. package/dist/nodePlatform.cjs +77 -0
  158. package/dist/nodePlatform.cjs.map +1 -0
  159. package/dist/nodePlatform.d.mts +17 -0
  160. package/dist/nodePlatform.d.mts.map +1 -0
  161. package/dist/nodePlatform.mjs +72 -0
  162. package/dist/nodePlatform.mjs.map +1 -0
  163. package/dist/notification.cjs +15 -15
  164. package/dist/notification.d.mts +2 -2
  165. package/dist/notification.mjs +1 -2
  166. package/dist/packageApi.cjs +11 -11
  167. package/dist/packageApi.d.mts +2 -2
  168. package/dist/packageApi.mjs +2 -2
  169. package/dist/packageApiServer.cjs +45 -27
  170. package/dist/packageApiServer.cjs.map +1 -1
  171. package/dist/packageApiServer.d.mts +36 -26
  172. package/dist/packageApiServer.d.mts.map +1 -1
  173. package/dist/packageApiServer.mjs +44 -26
  174. package/dist/packageApiServer.mjs.map +1 -1
  175. package/dist/piSettings.cjs +41 -20
  176. package/dist/piSettings.d.mts +4 -2
  177. package/dist/piSettings.mjs +4 -2
  178. package/dist/platform.cjs +62 -0
  179. package/dist/platform.d.mts +10 -0
  180. package/dist/platform.mjs +10 -0
  181. package/dist/pluginProtocol.cjs +7 -8
  182. package/dist/pluginProtocol.d.mts +2 -2
  183. package/dist/pluginProtocol.mjs +1 -2
  184. package/dist/poPackage.cjs +12 -0
  185. package/dist/poPackage.d.mts +3 -0
  186. package/dist/poPackage.mjs +3 -0
  187. package/dist/profileIdentity.cjs +1 -1
  188. package/dist/profileIdentity.d.mts +2 -2
  189. package/dist/profileIdentity.mjs +1 -2
  190. package/dist/protocol.cjs +3 -3
  191. package/dist/protocol.d.mts +2 -2
  192. package/dist/protocol.mjs +1 -2
  193. package/dist/readiness.cjs +6 -6
  194. package/dist/readiness.d.mts +2 -2
  195. package/dist/readiness.mjs +1 -2
  196. package/dist/remoteApi.cjs.map +1 -1
  197. package/dist/remoteApi.d.mts +2 -2
  198. package/dist/remoteApi.mjs.map +1 -1
  199. package/dist/remoteRuntime.cjs +42 -65
  200. package/dist/remoteRuntime.cjs.map +1 -1
  201. package/dist/remoteRuntime.d.mts +3 -2
  202. package/dist/remoteRuntime.d.mts.map +1 -1
  203. package/dist/remoteRuntime.mjs +41 -62
  204. package/dist/remoteRuntime.mjs.map +1 -1
  205. package/dist/runtimeConfig.cjs +4 -4
  206. package/dist/runtimeConfig.cjs.map +1 -1
  207. package/dist/runtimeConfig.d.mts +10 -9
  208. package/dist/runtimeConfig.d.mts.map +1 -1
  209. package/dist/runtimeConfig.mjs +4 -4
  210. package/dist/runtimeConfig.mjs.map +1 -1
  211. package/dist/runtimeContextApi.cjs +10 -3
  212. package/dist/runtimeContextApi.cjs.map +1 -1
  213. package/dist/runtimeContextApi.d.mts +3 -3
  214. package/dist/runtimeContextApi.d.mts.map +1 -1
  215. package/dist/runtimeContextApi.mjs +10 -3
  216. package/dist/runtimeContextApi.mjs.map +1 -1
  217. package/dist/runtimeCordisHost.cjs +46 -46
  218. package/dist/runtimeCordisHost.cjs.map +1 -1
  219. package/dist/runtimeCordisHost.d.mts +29 -28
  220. package/dist/runtimeCordisHost.d.mts.map +1 -1
  221. package/dist/runtimeCordisHost.mjs +42 -42
  222. package/dist/runtimeCordisHost.mjs.map +1 -1
  223. package/dist/runtimeIdentity.cjs +6 -9
  224. package/dist/runtimeIdentity.cjs.map +1 -1
  225. package/dist/runtimeIdentity.d.mts +5 -1
  226. package/dist/runtimeIdentity.d.mts.map +1 -1
  227. package/dist/runtimeIdentity.mjs +5 -8
  228. package/dist/runtimeIdentity.mjs.map +1 -1
  229. package/dist/runtimeJson.cjs +10 -45
  230. package/dist/runtimeJson.d.mts +3 -22
  231. package/dist/runtimeJson.mjs +3 -39
  232. package/dist/runtimeLogSinkTelemetry.cjs +19 -19
  233. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
  234. package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
  235. package/dist/runtimeLogSinkTelemetry.mjs +19 -19
  236. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
  237. package/dist/runtimePackages.cjs +7 -2
  238. package/dist/runtimePackages.cjs.map +1 -1
  239. package/dist/runtimePackages.d.mts +4 -1
  240. package/dist/runtimePackages.d.mts.map +1 -1
  241. package/dist/runtimePackages.mjs +7 -2
  242. package/dist/runtimePackages.mjs.map +1 -1
  243. package/dist/runtimePiSettings.cjs +40 -263
  244. package/dist/runtimePiSettings.d.mts +3 -72
  245. package/dist/runtimePiSettings.mjs +3 -241
  246. package/dist/runtimeProtocol.cjs +19 -19
  247. package/dist/runtimeProtocol.cjs.map +1 -1
  248. package/dist/runtimeProtocol.d.mts +7 -7
  249. package/dist/runtimeProtocol.d.mts.map +1 -1
  250. package/dist/runtimeProtocol.mjs +17 -17
  251. package/dist/runtimeProtocol.mjs.map +1 -1
  252. package/dist/runtimeTransition.cjs +9 -9
  253. package/dist/runtimeTransition.cjs.map +1 -1
  254. package/dist/runtimeTransition.d.mts +10 -10
  255. package/dist/runtimeTransition.d.mts.map +1 -1
  256. package/dist/runtimeTransition.mjs +7 -7
  257. package/dist/runtimeTransition.mjs.map +1 -1
  258. package/dist/sandboxHarness.mjs +1 -2
  259. package/dist/server.cjs +3 -7
  260. package/dist/server.d.mts +6 -6
  261. package/dist/server.mjs +3 -4
  262. package/dist/serverPlugin.cjs +39 -0
  263. package/dist/serverPlugin.d.mts +12 -0
  264. package/dist/serverPlugin.mjs +11 -0
  265. package/dist/serverTelemetry.cjs +1 -1
  266. package/dist/serverTelemetry.cjs.map +1 -1
  267. package/dist/serverTelemetry.d.mts +2 -2
  268. package/dist/serverTelemetry.mjs +2 -2
  269. package/dist/serverTelemetry.mjs.map +1 -1
  270. package/dist/sessionFilesApi.cjs +41 -37
  271. package/dist/sessionFilesApi.cjs.map +1 -1
  272. package/dist/sessionFilesApi.d.mts +6 -3
  273. package/dist/sessionFilesApi.d.mts.map +1 -1
  274. package/dist/sessionFilesApi.mjs +41 -36
  275. package/dist/sessionFilesApi.mjs.map +1 -1
  276. package/dist/sessionProtocol.cjs +31 -6
  277. package/dist/sessionProtocol.d.mts +8 -3
  278. package/dist/sessionProtocol.mjs +8 -2
  279. package/dist/skills.cjs +5 -5
  280. package/dist/skills.d.mts +2 -2
  281. package/dist/skills.mjs +1 -2
  282. package/dist/sqliteSessionStorage.cjs +28 -50
  283. package/dist/sqliteSessionStorage.cjs.map +1 -1
  284. package/dist/sqliteSessionStorage.d.mts +13 -20
  285. package/dist/sqliteSessionStorage.d.mts.map +1 -1
  286. package/dist/sqliteSessionStorage.mjs +25 -48
  287. package/dist/sqliteSessionStorage.mjs.map +1 -1
  288. package/dist/src/constants/agentSettled.cjs +7 -0
  289. package/dist/src/constants/agentSettled.cjs.map +1 -0
  290. package/dist/src/constants/agentSettled.mjs +7 -0
  291. package/dist/src/constants/agentSettled.mjs.map +1 -0
  292. package/dist/src/constants/contextApi.cjs +3 -1
  293. package/dist/src/constants/contextApi.cjs.map +1 -1
  294. package/dist/src/constants/contextApi.d.mts +2 -1
  295. package/dist/src/constants/contextApi.d.mts.map +1 -1
  296. package/dist/src/constants/contextApi.mjs +3 -2
  297. package/dist/src/constants/contextApi.mjs.map +1 -1
  298. package/dist/src/constants/voiceTools.cjs +6 -6
  299. package/dist/src/constants/voiceTools.cjs.map +1 -1
  300. package/dist/src/constants/voiceTools.d.mts +3 -3
  301. package/dist/src/constants/voiceTools.mjs +4 -4
  302. package/dist/src/constants/voiceTools.mjs.map +1 -1
  303. package/dist/src/extensions/extensionFile.cjs +22 -5
  304. package/dist/src/extensions/extensionFile.cjs.map +1 -1
  305. package/dist/src/extensions/extensionFile.d.mts +17 -4
  306. package/dist/src/extensions/extensionFile.d.mts.map +1 -1
  307. package/dist/src/extensions/extensionFile.mjs +22 -6
  308. package/dist/src/extensions/extensionFile.mjs.map +1 -1
  309. package/dist/src/extensions/serverPlugin.cjs +231 -92
  310. package/dist/src/extensions/serverPlugin.cjs.map +1 -1
  311. package/dist/src/extensions/serverPlugin.d.mts +2 -2
  312. package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
  313. package/dist/src/extensions/serverPlugin.mjs +232 -93
  314. package/dist/src/extensions/serverPlugin.mjs.map +1 -1
  315. package/dist/src/pi/piSessionRuntime.cjs +349 -142
  316. package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
  317. package/dist/src/pi/piSessionRuntime.d.mts +18 -17
  318. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
  319. package/dist/src/pi/piSessionRuntime.mjs +342 -135
  320. package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
  321. package/dist/src/schemas/agentModel.cjs +2 -2
  322. package/dist/src/schemas/agentModel.cjs.map +1 -1
  323. package/dist/src/schemas/agentModel.d.mts +1 -1
  324. package/dist/src/schemas/agentModel.mjs +2 -2
  325. package/dist/src/schemas/agentModel.mjs.map +1 -1
  326. package/dist/src/schemas/apiContracts.d.mts +2 -2
  327. package/dist/src/schemas/apiContracts.d.mts.map +1 -1
  328. package/dist/src/schemas/askUser.cjs +4 -4
  329. package/dist/src/schemas/askUser.cjs.map +1 -1
  330. package/dist/src/schemas/askUser.d.mts +4 -4
  331. package/dist/src/schemas/askUser.d.mts.map +1 -1
  332. package/dist/src/schemas/askUser.mjs +3 -3
  333. package/dist/src/schemas/askUser.mjs.map +1 -1
  334. package/dist/src/schemas/backgroundWork.cjs +10 -10
  335. package/dist/src/schemas/backgroundWork.cjs.map +1 -1
  336. package/dist/src/schemas/backgroundWork.d.mts +9 -9
  337. package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
  338. package/dist/src/schemas/backgroundWork.mjs +8 -8
  339. package/dist/src/schemas/backgroundWork.mjs.map +1 -1
  340. package/dist/src/schemas/childProcess.cjs +5 -5
  341. package/dist/src/schemas/childProcess.cjs.map +1 -1
  342. package/dist/src/schemas/childProcess.d.mts +2 -2
  343. package/dist/src/schemas/childProcess.mjs +5 -5
  344. package/dist/src/schemas/childProcess.mjs.map +1 -1
  345. package/dist/src/schemas/contextContributions.cjs +10 -10
  346. package/dist/src/schemas/contextContributions.cjs.map +1 -1
  347. package/dist/src/schemas/contextContributions.d.mts +16 -16
  348. package/dist/src/schemas/contextContributions.d.mts.map +1 -1
  349. package/dist/src/schemas/contextContributions.mjs +8 -8
  350. package/dist/src/schemas/contextContributions.mjs.map +1 -1
  351. package/dist/src/schemas/delegation.cjs +17 -17
  352. package/dist/src/schemas/delegation.cjs.map +1 -1
  353. package/dist/src/schemas/delegation.d.mts +16 -16
  354. package/dist/src/schemas/delegation.d.mts.map +1 -1
  355. package/dist/src/schemas/delegation.mjs +10 -10
  356. package/dist/src/schemas/delegation.mjs.map +1 -1
  357. package/dist/src/schemas/extensionFile.d.mts +23 -19
  358. package/dist/src/schemas/extensionFile.d.mts.map +1 -1
  359. package/dist/src/schemas/footer.cjs.map +1 -1
  360. package/dist/src/schemas/footer.d.mts +5 -5
  361. package/dist/src/schemas/footer.d.mts.map +1 -1
  362. package/dist/src/schemas/footer.mjs.map +1 -1
  363. package/dist/src/schemas/headless.cjs +37 -37
  364. package/dist/src/schemas/headless.cjs.map +1 -1
  365. package/dist/src/schemas/headless.d.mts +100 -101
  366. package/dist/src/schemas/headless.d.mts.map +1 -1
  367. package/dist/src/schemas/headless.mjs +24 -24
  368. package/dist/src/schemas/headless.mjs.map +1 -1
  369. package/dist/src/schemas/help.cjs +60 -60
  370. package/dist/src/schemas/help.cjs.map +1 -1
  371. package/dist/src/schemas/help.d.mts +43 -43
  372. package/dist/src/schemas/help.d.mts.map +1 -1
  373. package/dist/src/schemas/help.mjs +41 -41
  374. package/dist/src/schemas/help.mjs.map +1 -1
  375. package/dist/src/schemas/home.cjs +127 -0
  376. package/dist/src/schemas/home.cjs.map +1 -0
  377. package/dist/src/schemas/home.d.mts +63 -0
  378. package/dist/src/schemas/home.d.mts.map +1 -0
  379. package/dist/src/schemas/home.mjs +121 -0
  380. package/dist/src/schemas/home.mjs.map +1 -0
  381. package/dist/src/schemas/httpApiContracts.cjs +441 -0
  382. package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
  383. package/dist/src/schemas/httpApiContracts.d.mts +78 -0
  384. package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
  385. package/dist/src/schemas/httpApiContracts.mjs +434 -0
  386. package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
  387. package/dist/src/schemas/hubChannel.cjs +3 -0
  388. package/dist/src/schemas/hubChannel.cjs.map +1 -1
  389. package/dist/src/schemas/hubChannel.d.mts +84 -60
  390. package/dist/src/schemas/hubChannel.d.mts.map +1 -1
  391. package/dist/src/schemas/hubChannel.mjs +3 -1
  392. package/dist/src/schemas/hubChannel.mjs.map +1 -1
  393. package/dist/src/schemas/leader.cjs.map +1 -1
  394. package/dist/src/schemas/leader.d.mts +3 -3
  395. package/dist/src/schemas/leader.d.mts.map +1 -1
  396. package/dist/src/schemas/leader.mjs.map +1 -1
  397. package/dist/src/schemas/mcpBundle.d.mts +3 -3
  398. package/dist/src/schemas/mcpFacet.cjs.map +1 -1
  399. package/dist/src/schemas/mcpFacet.d.mts +22 -22
  400. package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
  401. package/dist/src/schemas/mcpFacet.mjs.map +1 -1
  402. package/dist/src/schemas/mcpProjection.cjs +41 -41
  403. package/dist/src/schemas/mcpProjection.cjs.map +1 -1
  404. package/dist/src/schemas/mcpProjection.d.mts +31 -30
  405. package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
  406. package/dist/src/schemas/mcpProjection.mjs +29 -29
  407. package/dist/src/schemas/mcpProjection.mjs.map +1 -1
  408. package/dist/src/schemas/mcpSession.cjs +23 -23
  409. package/dist/src/schemas/mcpSession.cjs.map +1 -1
  410. package/dist/src/schemas/mcpSession.d.mts +12 -12
  411. package/dist/src/schemas/mcpSession.d.mts.map +1 -1
  412. package/dist/src/schemas/mcpSession.mjs +18 -18
  413. package/dist/src/schemas/mcpSession.mjs.map +1 -1
  414. package/dist/src/schemas/mcpStatus.cjs +5 -5
  415. package/dist/src/schemas/mcpStatus.cjs.map +1 -1
  416. package/dist/src/schemas/mcpStatus.d.mts +4 -4
  417. package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
  418. package/dist/src/schemas/mcpStatus.mjs +4 -4
  419. package/dist/src/schemas/mcpStatus.mjs.map +1 -1
  420. package/dist/src/schemas/mcpToolResolver.cjs +9 -9
  421. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
  422. package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
  423. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
  424. package/dist/src/schemas/mcpToolResolver.mjs +7 -7
  425. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
  426. package/dist/src/schemas/narration.cjs +9 -9
  427. package/dist/src/schemas/narration.cjs.map +1 -1
  428. package/dist/src/schemas/narration.d.mts +5 -5
  429. package/dist/src/schemas/narration.d.mts.map +1 -1
  430. package/dist/src/schemas/narration.mjs +7 -7
  431. package/dist/src/schemas/narration.mjs.map +1 -1
  432. package/dist/src/schemas/notification.cjs +45 -45
  433. package/dist/src/schemas/notification.cjs.map +1 -1
  434. package/dist/src/schemas/notification.d.mts +22 -22
  435. package/dist/src/schemas/notification.d.mts.map +1 -1
  436. package/dist/src/schemas/notification.mjs +31 -31
  437. package/dist/src/schemas/notification.mjs.map +1 -1
  438. package/dist/src/schemas/packageApi.cjs +28 -28
  439. package/dist/src/schemas/packageApi.cjs.map +1 -1
  440. package/dist/src/schemas/packageApi.d.mts +91 -65
  441. package/dist/src/schemas/packageApi.d.mts.map +1 -1
  442. package/dist/src/schemas/packageApi.mjs +18 -18
  443. package/dist/src/schemas/packageApi.mjs.map +1 -1
  444. package/dist/src/schemas/platform.cjs +34 -0
  445. package/dist/src/schemas/platform.cjs.map +1 -0
  446. package/dist/src/schemas/platform.d.mts +75 -0
  447. package/dist/src/schemas/platform.d.mts.map +1 -0
  448. package/dist/src/schemas/platform.mjs +27 -0
  449. package/dist/src/schemas/platform.mjs.map +1 -0
  450. package/dist/src/schemas/pluginContributions.cjs.map +1 -1
  451. package/dist/src/schemas/pluginContributions.d.mts +12 -12
  452. package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
  453. package/dist/src/schemas/pluginContributions.mjs.map +1 -1
  454. package/dist/src/schemas/pluginProtocol.cjs +24 -27
  455. package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
  456. package/dist/src/schemas/pluginProtocol.d.mts +21 -21
  457. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
  458. package/dist/src/schemas/pluginProtocol.mjs +18 -20
  459. package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
  460. package/dist/src/schemas/profileIdentity.cjs +2 -2
  461. package/dist/src/schemas/profileIdentity.cjs.map +1 -1
  462. package/dist/src/schemas/profileIdentity.d.mts +1 -1
  463. package/dist/src/schemas/profileIdentity.mjs +2 -2
  464. package/dist/src/schemas/profileIdentity.mjs.map +1 -1
  465. package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
  466. package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
  467. package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
  468. package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
  469. package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
  470. package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
  471. package/dist/src/schemas/protocolContracts.cjs +168 -0
  472. package/dist/src/schemas/protocolContracts.cjs.map +1 -0
  473. package/dist/src/schemas/protocolContracts.d.mts +69 -0
  474. package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
  475. package/dist/src/schemas/protocolContracts.mjs +164 -0
  476. package/dist/src/schemas/protocolContracts.mjs.map +1 -0
  477. package/dist/src/schemas/protocolHubContract.cjs +51 -0
  478. package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
  479. package/dist/src/schemas/protocolHubContract.d.mts +218 -0
  480. package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
  481. package/dist/src/schemas/protocolHubContract.mjs +49 -0
  482. package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
  483. package/dist/src/schemas/protocolSessionContract.cjs +22 -0
  484. package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
  485. package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
  486. package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
  487. package/dist/src/schemas/protocolSessionContract.mjs +22 -0
  488. package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
  489. package/dist/src/schemas/protocolThreadContract.cjs +21 -0
  490. package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
  491. package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
  492. package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
  493. package/dist/src/schemas/protocolThreadContract.mjs +20 -0
  494. package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
  495. package/dist/src/schemas/readiness.cjs +36 -36
  496. package/dist/src/schemas/readiness.cjs.map +1 -1
  497. package/dist/src/schemas/readiness.d.mts +37 -37
  498. package/dist/src/schemas/readiness.d.mts.map +1 -1
  499. package/dist/src/schemas/readiness.mjs +31 -31
  500. package/dist/src/schemas/readiness.mjs.map +1 -1
  501. package/dist/src/schemas/serverBundle.d.mts +5 -5
  502. package/dist/src/schemas/serverPlugin.cjs +103 -0
  503. package/dist/src/schemas/serverPlugin.cjs.map +1 -0
  504. package/dist/src/schemas/serverPlugin.d.mts +176 -0
  505. package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
  506. package/dist/src/schemas/serverPlugin.mjs +95 -0
  507. package/dist/src/schemas/serverPlugin.mjs.map +1 -0
  508. package/dist/src/schemas/serverScope.cjs +37 -0
  509. package/dist/src/schemas/serverScope.cjs.map +1 -0
  510. package/dist/src/schemas/serverScope.d.mts +77 -0
  511. package/dist/src/schemas/serverScope.d.mts.map +1 -0
  512. package/dist/src/schemas/serverScope.mjs +33 -0
  513. package/dist/src/schemas/serverScope.mjs.map +1 -0
  514. package/dist/src/schemas/sessionApiContracts.cjs +320 -0
  515. package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
  516. package/dist/src/schemas/sessionApiContracts.mjs +318 -0
  517. package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
  518. package/dist/src/schemas/sessionProtocol.cjs +20 -13
  519. package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
  520. package/dist/src/schemas/sessionProtocol.d.mts +37 -54
  521. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
  522. package/dist/src/schemas/sessionProtocol.mjs +17 -8
  523. package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
  524. package/dist/src/schemas/skills.cjs +16 -16
  525. package/dist/src/schemas/skills.cjs.map +1 -1
  526. package/dist/src/schemas/skills.d.mts +7 -7
  527. package/dist/src/schemas/skills.d.mts.map +1 -1
  528. package/dist/src/schemas/skills.mjs +12 -12
  529. package/dist/src/schemas/skills.mjs.map +1 -1
  530. package/dist/src/schemas/toolOverrides.cjs +9 -9
  531. package/dist/src/schemas/toolOverrides.cjs.map +1 -1
  532. package/dist/src/schemas/toolOverrides.d.mts +8 -8
  533. package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
  534. package/dist/src/schemas/toolOverrides.mjs +7 -7
  535. package/dist/src/schemas/toolOverrides.mjs.map +1 -1
  536. package/dist/src/schemas/toolSurface.cjs +9 -9
  537. package/dist/src/schemas/toolSurface.cjs.map +1 -1
  538. package/dist/src/schemas/toolSurface.d.mts +13 -13
  539. package/dist/src/schemas/toolSurface.d.mts.map +1 -1
  540. package/dist/src/schemas/toolSurface.mjs +7 -7
  541. package/dist/src/schemas/toolSurface.mjs.map +1 -1
  542. package/dist/src/schemas/uiHub.cjs +9 -9
  543. package/dist/src/schemas/uiHub.cjs.map +1 -1
  544. package/dist/src/schemas/uiHub.d.mts +12 -12
  545. package/dist/src/schemas/uiHub.d.mts.map +1 -1
  546. package/dist/src/schemas/uiHub.mjs +7 -7
  547. package/dist/src/schemas/uiHub.mjs.map +1 -1
  548. package/dist/src/server/directHarnessRuntime.cjs +691 -775
  549. package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
  550. package/dist/src/server/directHarnessRuntime.d.mts +5 -1
  551. package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
  552. package/dist/src/server/directHarnessRuntime.mjs +671 -754
  553. package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
  554. package/dist/src/server/largeFrameLink.cjs +47 -0
  555. package/dist/src/server/largeFrameLink.cjs.map +1 -0
  556. package/dist/src/server/largeFrameLink.mjs +47 -0
  557. package/dist/src/server/largeFrameLink.mjs.map +1 -0
  558. package/dist/src/server/liveImport.cjs +1 -1
  559. package/dist/src/server/liveImport.cjs.map +1 -1
  560. package/dist/src/server/liveImport.d.mts +1 -1
  561. package/dist/src/server/liveImport.mjs +1 -1
  562. package/dist/src/server/liveImport.mjs.map +1 -1
  563. package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
  564. package/dist/src/server/mcpBundleLoader.d.mts +6 -6
  565. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
  566. package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
  567. package/dist/src/server/serverPackages.cjs +60 -0
  568. package/dist/src/server/serverPackages.cjs.map +1 -0
  569. package/dist/src/server/serverPackages.d.mts +44 -0
  570. package/dist/src/server/serverPackages.d.mts.map +1 -0
  571. package/dist/src/server/serverPackages.mjs +59 -0
  572. package/dist/src/server/serverPackages.mjs.map +1 -0
  573. package/dist/src/server/serverScope.cjs +510 -0
  574. package/dist/src/server/serverScope.cjs.map +1 -0
  575. package/dist/src/server/serverScope.d.mts +123 -0
  576. package/dist/src/server/serverScope.d.mts.map +1 -0
  577. package/dist/src/server/serverScope.mjs +510 -0
  578. package/dist/src/server/serverScope.mjs.map +1 -0
  579. package/dist/src/server/sessionMcpHandler.cjs +3 -3
  580. package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
  581. package/dist/src/server/sessionMcpHandler.mjs +4 -4
  582. package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
  583. package/dist/src/server/sessionMcpRoutes.cjs +2 -1
  584. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
  585. package/dist/src/server/sessionMcpRoutes.mjs +2 -1
  586. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
  587. package/dist/src/server/threadJournals.cjs +38 -107
  588. package/dist/src/server/threadJournals.cjs.map +1 -1
  589. package/dist/src/server/threadJournals.mjs +38 -104
  590. package/dist/src/server/threadJournals.mjs.map +1 -1
  591. package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
  592. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
  593. package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
  594. package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
  595. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
  596. package/dist/src/services/chatgptAuth/index.cjs +1 -220
  597. package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
  598. package/dist/src/services/chatgptAuth/index.d.mts +0 -18
  599. package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
  600. package/dist/src/services/chatgptAuth/index.mjs +1 -217
  601. package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
  602. package/dist/src/services/chatgptImages/index.cjs +1 -1
  603. package/dist/src/services/chatgptImages/index.cjs.map +1 -1
  604. package/dist/src/services/chatgptImages/index.mjs +1 -1
  605. package/dist/src/services/chatgptImages/index.mjs.map +1 -1
  606. package/dist/src/services/chatgptLogin/index.cjs +230 -0
  607. package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
  608. package/dist/src/services/chatgptLogin/index.d.mts +21 -0
  609. package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
  610. package/dist/src/services/chatgptLogin/index.mjs +227 -0
  611. package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
  612. package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
  613. package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
  614. package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
  615. package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
  616. package/dist/src/services/contextContributions/index.cjs +8 -8
  617. package/dist/src/services/contextContributions/index.cjs.map +1 -1
  618. package/dist/src/services/contextContributions/index.d.mts +3 -3
  619. package/dist/src/services/contextContributions/index.d.mts.map +1 -1
  620. package/dist/src/services/contextContributions/index.mjs +8 -8
  621. package/dist/src/services/contextContributions/index.mjs.map +1 -1
  622. package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
  623. package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
  624. package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
  625. package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
  626. package/dist/src/services/devProxyStore/index.cjs +7 -101
  627. package/dist/src/services/devProxyStore/index.cjs.map +1 -1
  628. package/dist/src/services/devProxyStore/index.mjs +7 -101
  629. package/dist/src/services/devProxyStore/index.mjs.map +1 -1
  630. package/dist/src/services/devProxyStore/sync.cjs +66 -0
  631. package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
  632. package/dist/src/services/devProxyStore/sync.mjs +63 -0
  633. package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
  634. package/dist/src/services/durableNavigation/docs.cjs +15 -0
  635. package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
  636. package/dist/src/services/durableNavigation/docs.mjs +16 -0
  637. package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
  638. package/dist/src/services/durableNavigation/index.cjs +3 -18
  639. package/dist/src/services/durableNavigation/index.cjs.map +1 -1
  640. package/dist/src/services/durableNavigation/index.mjs +2 -17
  641. package/dist/src/services/durableNavigation/index.mjs.map +1 -1
  642. package/dist/src/services/durableQueue/docs.cjs +12 -0
  643. package/dist/src/services/durableQueue/docs.cjs.map +1 -0
  644. package/dist/src/services/durableQueue/docs.mjs +13 -0
  645. package/dist/src/services/durableQueue/docs.mjs.map +1 -0
  646. package/dist/src/services/durableQueue/index.cjs +151 -0
  647. package/dist/src/services/durableQueue/index.cjs.map +1 -0
  648. package/dist/src/services/durableQueue/index.mjs +149 -0
  649. package/dist/src/services/durableQueue/index.mjs.map +1 -0
  650. package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
  651. package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
  652. package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
  653. package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
  654. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
  655. package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
  656. package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
  657. package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
  658. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
  659. package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
  660. package/dist/src/services/durableSession/docs.cjs +65 -0
  661. package/dist/src/services/durableSession/docs.cjs.map +1 -0
  662. package/dist/src/services/durableSession/docs.d.mts +17 -0
  663. package/dist/src/services/durableSession/docs.d.mts.map +1 -0
  664. package/dist/src/services/durableSession/docs.mjs +60 -0
  665. package/dist/src/services/durableSession/docs.mjs.map +1 -0
  666. package/dist/src/services/durableSession/index.cjs +21 -0
  667. package/dist/src/services/durableSession/index.cjs.map +1 -0
  668. package/dist/src/services/durableSession/index.d.mts +13 -0
  669. package/dist/src/services/durableSession/index.d.mts.map +1 -0
  670. package/dist/src/services/durableSession/index.mjs +20 -0
  671. package/dist/src/services/durableSession/index.mjs.map +1 -0
  672. package/dist/src/services/durableSubagents/docs.cjs +15 -0
  673. package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
  674. package/dist/src/services/durableSubagents/docs.mjs +16 -0
  675. package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
  676. package/dist/src/services/durableSubagents/extension.cjs +11 -0
  677. package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
  678. package/dist/src/services/durableSubagents/extension.mjs +12 -0
  679. package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
  680. package/dist/src/services/durableSubagents/index.cjs +95 -0
  681. package/dist/src/services/durableSubagents/index.cjs.map +1 -0
  682. package/dist/src/services/durableSubagents/index.mjs +90 -0
  683. package/dist/src/services/durableSubagents/index.mjs.map +1 -0
  684. package/dist/src/services/durableSubagents/tasks.cjs +25 -0
  685. package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
  686. package/dist/src/services/durableSubagents/tasks.mjs +26 -0
  687. package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
  688. package/dist/src/services/headlessClient/index.cjs +20 -13
  689. package/dist/src/services/headlessClient/index.cjs.map +1 -1
  690. package/dist/src/services/headlessClient/index.mjs +21 -14
  691. package/dist/src/services/headlessClient/index.mjs.map +1 -1
  692. package/dist/src/services/historyOwnership/type.d.mts +15 -0
  693. package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
  694. package/dist/src/services/hubChannelHarness/index.cjs +2 -2
  695. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
  696. package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
  697. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
  698. package/dist/src/services/hubChannelHarness/index.mjs +2 -2
  699. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
  700. package/dist/src/services/json/core.cjs +30 -0
  701. package/dist/src/services/json/core.cjs.map +1 -0
  702. package/dist/src/services/json/core.d.mts +21 -0
  703. package/dist/src/services/json/core.d.mts.map +1 -0
  704. package/dist/src/services/json/core.mjs +26 -0
  705. package/dist/src/services/json/core.mjs.map +1 -0
  706. package/dist/src/services/json/sync.cjs +48 -0
  707. package/dist/src/services/json/sync.cjs.map +1 -0
  708. package/dist/src/services/json/sync.d.mts +22 -0
  709. package/dist/src/services/json/sync.d.mts.map +1 -0
  710. package/dist/src/services/json/sync.mjs +43 -0
  711. package/dist/src/services/json/sync.mjs.map +1 -0
  712. package/dist/src/services/kernel/index.cjs +2 -2
  713. package/dist/src/services/kernel/index.cjs.map +1 -1
  714. package/dist/src/services/kernel/index.d.mts +3 -3
  715. package/dist/src/services/kernel/index.d.mts.map +1 -1
  716. package/dist/src/services/kernel/index.mjs +2 -2
  717. package/dist/src/services/kernel/index.mjs.map +1 -1
  718. package/dist/src/services/nativeChildTools/index.cjs +16 -0
  719. package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
  720. package/dist/src/services/nativeChildTools/index.mjs +16 -0
  721. package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
  722. package/dist/src/services/nodeHost/index.cjs +30 -0
  723. package/dist/src/services/nodeHost/index.cjs.map +1 -0
  724. package/dist/src/services/nodeHost/index.d.mts +16 -0
  725. package/dist/src/services/nodeHost/index.d.mts.map +1 -0
  726. package/dist/src/services/nodeHost/index.mjs +27 -0
  727. package/dist/src/services/nodeHost/index.mjs.map +1 -0
  728. package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
  729. package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
  730. package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
  731. package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
  732. package/dist/src/services/openSessionRegistry/index.cjs +6 -128
  733. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
  734. package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
  735. package/dist/src/services/openSessionRegistry/index.mjs +6 -128
  736. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
  737. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
  738. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
  739. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
  740. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
  741. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
  742. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
  743. package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
  744. package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
  745. package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
  746. package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
  747. package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
  748. package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
  749. package/dist/src/services/packageApiHarness/index.cjs +1 -1
  750. package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
  751. package/dist/src/services/packageApiHarness/index.d.mts +6 -6
  752. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
  753. package/dist/src/services/packageApiHarness/index.mjs +2 -2
  754. package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
  755. package/dist/src/services/piArgs/index.cjs +53 -0
  756. package/dist/src/services/piArgs/index.cjs.map +1 -0
  757. package/dist/src/services/piArgs/index.d.mts +6 -0
  758. package/dist/src/services/piArgs/index.d.mts.map +1 -0
  759. package/dist/src/services/piArgs/index.mjs +53 -0
  760. package/dist/src/services/piArgs/index.mjs.map +1 -0
  761. package/dist/src/services/piExtensionHost/index.cjs +47 -39
  762. package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
  763. package/dist/src/services/piExtensionHost/index.d.mts +83 -0
  764. package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
  765. package/dist/src/services/piExtensionHost/index.mjs +47 -38
  766. package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
  767. package/dist/src/services/piHelpTools/index.cjs +5 -5
  768. package/dist/src/services/piHelpTools/index.cjs.map +1 -1
  769. package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
  770. package/dist/src/services/piHelpTools/index.mjs +7 -7
  771. package/dist/src/services/piHelpTools/index.mjs.map +1 -1
  772. package/dist/src/services/piMessages/index.cjs +106 -0
  773. package/dist/src/services/piMessages/index.cjs.map +1 -0
  774. package/dist/src/services/piMessages/index.mjs +105 -0
  775. package/dist/src/services/piMessages/index.mjs.map +1 -0
  776. package/dist/src/services/piSessionEntries/index.cjs +4 -4
  777. package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
  778. package/dist/src/services/piSessionEntries/index.mjs +3 -3
  779. package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
  780. package/dist/src/services/piSettings/core.cjs +308 -0
  781. package/dist/src/services/piSettings/core.cjs.map +1 -0
  782. package/dist/src/services/piSettings/core.d.mts +102 -0
  783. package/dist/src/services/piSettings/core.d.mts.map +1 -0
  784. package/dist/src/services/piSettings/core.mjs +276 -0
  785. package/dist/src/services/piSettings/core.mjs.map +1 -0
  786. package/dist/src/services/piSettings/sync.cjs +119 -0
  787. package/dist/src/services/piSettings/sync.cjs.map +1 -0
  788. package/dist/src/services/piSettings/sync.d.mts +44 -0
  789. package/dist/src/services/piSettings/sync.d.mts.map +1 -0
  790. package/dist/src/services/piSettings/sync.mjs +110 -0
  791. package/dist/src/services/piSettings/sync.mjs.map +1 -0
  792. package/dist/src/services/piSummary/index.cjs +7 -0
  793. package/dist/src/services/piSummary/index.cjs.map +1 -0
  794. package/dist/src/services/piSummary/index.mjs +7 -0
  795. package/dist/src/services/piSummary/index.mjs.map +1 -0
  796. package/dist/src/services/platformFiles/index.cjs +44 -0
  797. package/dist/src/services/platformFiles/index.cjs.map +1 -0
  798. package/dist/src/services/platformFiles/index.d.mts +16 -0
  799. package/dist/src/services/platformFiles/index.d.mts.map +1 -0
  800. package/dist/src/services/platformFiles/index.mjs +39 -0
  801. package/dist/src/services/platformFiles/index.mjs.map +1 -0
  802. package/dist/src/services/pluginLifecycle/index.cjs +19 -13
  803. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
  804. package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
  805. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
  806. package/dist/src/services/pluginLifecycle/index.mjs +19 -14
  807. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
  808. package/dist/src/services/poPackage/core.cjs +73 -0
  809. package/dist/src/services/poPackage/core.cjs.map +1 -0
  810. package/dist/src/services/poPackage/core.d.mts +32 -0
  811. package/dist/src/services/poPackage/core.d.mts.map +1 -0
  812. package/dist/src/services/poPackage/core.mjs +66 -0
  813. package/dist/src/services/poPackage/core.mjs.map +1 -0
  814. package/dist/src/services/poPackage/sync.cjs +55 -0
  815. package/dist/src/services/poPackage/sync.cjs.map +1 -0
  816. package/dist/src/services/poPackage/sync.d.mts +21 -0
  817. package/dist/src/services/poPackage/sync.d.mts.map +1 -0
  818. package/dist/src/services/poPackage/sync.mjs +50 -0
  819. package/dist/src/services/poPackage/sync.mjs.map +1 -0
  820. package/dist/src/services/providerAuth/index.cjs +11 -7
  821. package/dist/src/services/providerAuth/index.cjs.map +1 -1
  822. package/dist/src/services/providerAuth/index.mjs +11 -7
  823. package/dist/src/services/providerAuth/index.mjs.map +1 -1
  824. package/dist/src/services/publicFileShares/index.cjs +1 -1
  825. package/dist/src/services/publicFileShares/index.cjs.map +1 -1
  826. package/dist/src/services/publicFileShares/index.d.mts +2 -2
  827. package/dist/src/services/publicFileShares/index.mjs +2 -2
  828. package/dist/src/services/publicFileShares/index.mjs.map +1 -1
  829. package/dist/src/services/remoteAccess/index.d.mts +1 -0
  830. package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
  831. package/dist/src/services/remoteAccessStore/index.cjs +8 -190
  832. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
  833. package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
  834. package/dist/src/services/remoteAccessStore/index.mjs +7 -187
  835. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
  836. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
  837. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
  839. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
  841. package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
  843. package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
  844. package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
  845. package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
  846. package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
  847. package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
  848. package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
  849. package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
  850. package/dist/src/services/serialRunner/index.cjs +25 -0
  851. package/dist/src/services/serialRunner/index.cjs.map +1 -0
  852. package/dist/src/services/serialRunner/index.d.mts +10 -0
  853. package/dist/src/services/serialRunner/index.d.mts.map +1 -0
  854. package/dist/src/services/serialRunner/index.mjs +25 -0
  855. package/dist/src/services/serialRunner/index.mjs.map +1 -0
  856. package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
  857. package/dist/src/services/serverHost/index.cjs.map +1 -0
  858. package/dist/src/services/serverHost/index.d.mts +31 -0
  859. package/dist/src/services/serverHost/index.d.mts.map +1 -0
  860. package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
  861. package/dist/src/services/serverHost/index.mjs.map +1 -0
  862. package/dist/src/services/sessionAttachments/index.cjs +4 -3
  863. package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
  864. package/dist/src/services/sessionAttachments/index.d.mts +1 -6
  865. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
  866. package/dist/src/services/sessionAttachments/index.mjs +3 -2
  867. package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
  868. package/dist/src/services/sessionAttachments/type.d.mts +9 -0
  869. package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
  870. package/dist/src/services/sessionFiles/index.cjs +96 -0
  871. package/dist/src/services/sessionFiles/index.cjs.map +1 -0
  872. package/dist/src/services/sessionFiles/index.d.mts +33 -0
  873. package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
  874. package/dist/src/services/sessionFiles/index.mjs +89 -0
  875. package/dist/src/services/sessionFiles/index.mjs.map +1 -0
  876. package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
  877. package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
  878. package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
  879. package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
  880. package/dist/src/services/sessionGitStatus/index.cjs +31 -33
  881. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
  882. package/dist/src/services/sessionGitStatus/index.mjs +31 -33
  883. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
  884. package/dist/src/services/sessionPresentation/index.cjs +3 -27
  885. package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
  886. package/dist/src/services/sessionPresentation/index.mjs +3 -27
  887. package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
  888. package/dist/src/services/skillPrompt/index.cjs +11 -0
  889. package/dist/src/services/skillPrompt/index.cjs.map +1 -0
  890. package/dist/src/services/skillPrompt/index.mjs +11 -0
  891. package/dist/src/services/skillPrompt/index.mjs.map +1 -0
  892. package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
  893. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
  894. package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
  895. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
  896. package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
  897. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
  898. package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
  899. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
  900. package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
  901. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
  902. package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
  903. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
  904. package/dist/src/services/testMode/index.cjs +162 -0
  905. package/dist/src/services/testMode/index.cjs.map +1 -0
  906. package/dist/src/services/testMode/index.d.mts +17 -0
  907. package/dist/src/services/testMode/index.d.mts.map +1 -0
  908. package/dist/src/services/testMode/index.mjs +155 -0
  909. package/dist/src/services/testMode/index.mjs.map +1 -0
  910. package/dist/src/services/toolOverrides/index.cjs +6 -6
  911. package/dist/src/services/toolOverrides/index.cjs.map +1 -1
  912. package/dist/src/services/toolOverrides/index.d.mts +3 -3
  913. package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
  914. package/dist/src/services/toolOverrides/index.mjs +6 -6
  915. package/dist/src/services/toolOverrides/index.mjs.map +1 -1
  916. package/dist/src/services/toolPrompt/index.d.mts +17 -0
  917. package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
  918. package/dist/src/services/toolSurface/index.cjs +3 -3
  919. package/dist/src/services/toolSurface/index.cjs.map +1 -1
  920. package/dist/src/services/toolSurface/index.d.mts +3 -3
  921. package/dist/src/services/toolSurface/index.d.mts.map +1 -1
  922. package/dist/src/services/toolSurface/index.mjs +4 -4
  923. package/dist/src/services/toolSurface/index.mjs.map +1 -1
  924. package/dist/src/services/traceContext/index.cjs.map +1 -1
  925. package/dist/src/services/traceContext/index.mjs.map +1 -1
  926. package/dist/src/services/transcriptPages/index.cjs +159 -33
  927. package/dist/src/services/transcriptPages/index.cjs.map +1 -1
  928. package/dist/src/services/transcriptPages/index.mjs +158 -34
  929. package/dist/src/services/transcriptPages/index.mjs.map +1 -1
  930. package/dist/src/services/voiceToolsContract/index.cjs +7 -7
  931. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
  932. package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
  933. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
  934. package/dist/src/services/voiceToolsContract/index.mjs +7 -7
  935. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
  936. package/dist/src/services/workspaceRegistry/index.cjs +9 -179
  937. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
  938. package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
  939. package/dist/src/services/workspaceRegistry/index.mjs +7 -176
  940. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
  941. package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
  942. package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
  943. package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
  944. package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
  945. package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
  946. package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
  947. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
  948. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
  949. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
  950. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
  951. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
  952. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
  953. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
  954. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
  955. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
  956. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
  957. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
  958. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
  959. package/dist/src/systems/child/services/childSession/index.cjs +94 -20
  960. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
  961. package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
  962. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
  963. package/dist/src/systems/child/services/childSession/index.mjs +94 -20
  964. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
  965. package/dist/src/systems/child/types/childSession.cjs +33 -13
  966. package/dist/src/systems/child/types/childSession.cjs.map +1 -1
  967. package/dist/src/systems/child/types/childSession.d.mts +143 -80
  968. package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
  969. package/dist/src/systems/child/types/childSession.mjs +24 -9
  970. package/dist/src/systems/child/types/childSession.mjs.map +1 -1
  971. package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
  972. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
  973. package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
  974. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
  975. package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
  976. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
  977. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
  978. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
  979. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
  980. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
  981. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
  982. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
  983. package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
  984. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
  985. package/dist/src/testing/pi/testHost.cjs +2 -2
  986. package/dist/src/testing/pi/testHost.cjs.map +1 -1
  987. package/dist/src/testing/pi/testHost.d.mts +3 -2
  988. package/dist/src/testing/pi/testHost.mjs +3 -3
  989. package/dist/src/testing/pi/testHost.mjs.map +1 -1
  990. package/dist/src/types/config.d.mts +1 -1
  991. package/dist/src/types/config.d.mts.map +1 -1
  992. package/dist/src/types/kernel.d.mts +3 -3
  993. package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
  994. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
  995. package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
  996. package/dist/src/web/services/apiClient/index.d.mts +1 -0
  997. package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
  998. package/dist/src/web/services/apiPaths/index.d.mts +1 -1
  999. package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
  1000. package/dist/src/web/services/mcpWidget.cjs.map +1 -1
  1001. package/dist/src/web/services/mcpWidget.d.mts +2 -2
  1002. package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
  1003. package/dist/src/web/services/mcpWidget.mjs.map +1 -1
  1004. package/dist/src/web/services/testing/templateRail.cjs +3 -0
  1005. package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
  1006. package/dist/src/web/services/testing/templateRail.mjs +3 -0
  1007. package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
  1008. package/dist/src/web/types/mcpWidget.d.mts +1 -1
  1009. package/dist/src/web/types/nativeTemplate.d.mts +1 -1
  1010. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
  1011. package/dist/src/web/types/template.d.mts +8 -0
  1012. package/dist/src/web/types/template.d.mts.map +1 -1
  1013. package/dist/src/web/types/webPlugin.d.mts +17 -5
  1014. package/dist/src/web/types/webPlugin.d.mts.map +1 -1
  1015. package/dist/testMode.cjs +4 -0
  1016. package/dist/testMode.d.mts +2 -0
  1017. package/dist/testMode.mjs +1 -0
  1018. package/dist/testing.cjs +1 -1
  1019. package/dist/testing.d.mts +2 -2
  1020. package/dist/testing.mjs +2 -2
  1021. package/dist/toolInventory.cjs.map +1 -1
  1022. package/dist/toolInventory.mjs.map +1 -1
  1023. package/dist/toolNames.mjs +1 -2
  1024. package/dist/toolOverrides.cjs +4 -4
  1025. package/dist/toolOverrides.d.mts +3 -3
  1026. package/dist/toolOverrides.mjs +3 -3
  1027. package/dist/toolSurface.cjs +4 -4
  1028. package/dist/toolSurface.d.mts +3 -3
  1029. package/dist/toolSurface.mjs +3 -3
  1030. package/dist/transition.cjs +3 -3
  1031. package/dist/transition.d.cjs +3 -3
  1032. package/dist/transition.d.mts +2 -2
  1033. package/dist/transition.mjs +1 -2
  1034. package/dist/transitionClassifier.cjs.map +1 -1
  1035. package/dist/transitionClassifier.d.mts +2 -2
  1036. package/dist/transitionClassifier.d.mts.map +1 -1
  1037. package/dist/transitionClassifier.mjs.map +1 -1
  1038. package/dist/transitionCoordinator.cjs +3 -3
  1039. package/dist/transitionCoordinator.cjs.map +1 -1
  1040. package/dist/transitionCoordinator.d.mts +4 -4
  1041. package/dist/transitionCoordinator.d.mts.map +1 -1
  1042. package/dist/transitionCoordinator.mjs +3 -3
  1043. package/dist/transitionCoordinator.mjs.map +1 -1
  1044. package/dist/typesContextApi.d.mts +2 -1
  1045. package/dist/typesContextApi.d.mts.map +1 -1
  1046. package/dist/uiHub.cjs +3 -3
  1047. package/dist/uiHub.d.mts +2 -2
  1048. package/dist/uiHub.mjs +1 -2
  1049. package/dist/voiceTools.cjs +5 -5
  1050. package/dist/voiceTools.d.mts +3 -3
  1051. package/dist/voiceTools.mjs +3 -3
  1052. package/dist/web.cjs +8 -0
  1053. package/dist/web.d.mts +3 -2
  1054. package/dist/web.mjs +2 -1
  1055. package/dist/webCompositions.cjs.map +1 -1
  1056. package/dist/webCompositions.d.mts +7 -7
  1057. package/dist/webCompositions.d.mts.map +1 -1
  1058. package/dist/webCompositions.mjs.map +1 -1
  1059. package/licenses/Codex-Apache-2.0.txt +201 -0
  1060. package/package.json +58 -53
  1061. package/dist/doomPackage.cjs +0 -61
  1062. package/dist/doomPackage.cjs.map +0 -1
  1063. package/dist/doomPackage.d.mts +0 -17
  1064. package/dist/doomPackage.d.mts.map +0 -1
  1065. package/dist/doomPackage.mjs +0 -54
  1066. package/dist/doomPackage.mjs.map +0 -1
  1067. package/dist/jsonlSessionRepo.cjs +0 -44
  1068. package/dist/jsonlSessionRepo.cjs.map +0 -1
  1069. package/dist/jsonlSessionRepo.d.mts +0 -7
  1070. package/dist/jsonlSessionRepo.d.mts.map +0 -1
  1071. package/dist/jsonlSessionRepo.mjs +0 -42
  1072. package/dist/jsonlSessionRepo.mjs.map +0 -1
  1073. package/dist/runtimeJson.cjs.map +0 -1
  1074. package/dist/runtimeJson.d.mts.map +0 -1
  1075. package/dist/runtimeJson.mjs.map +0 -1
  1076. package/dist/runtimePiSettings.cjs.map +0 -1
  1077. package/dist/runtimePiSettings.d.mts.map +0 -1
  1078. package/dist/runtimePiSettings.mjs.map +0 -1
  1079. package/dist/serverFacet.cjs +0 -34
  1080. package/dist/serverFacet.d.mts +0 -10
  1081. package/dist/serverFacet.mjs +0 -9
  1082. package/dist/src/pi/piWebSocketListener.cjs +0 -115
  1083. package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
  1084. package/dist/src/pi/piWebSocketListener.mjs +0 -115
  1085. package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
  1086. package/dist/src/schemas/serverFacet.cjs +0 -111
  1087. package/dist/src/schemas/serverFacet.cjs.map +0 -1
  1088. package/dist/src/schemas/serverFacet.d.mts +0 -152
  1089. package/dist/src/schemas/serverFacet.d.mts.map +0 -1
  1090. package/dist/src/schemas/serverFacet.mjs +0 -101
  1091. package/dist/src/schemas/serverFacet.mjs.map +0 -1
  1092. package/dist/src/schemas/sessionUpdates.d.mts +0 -34
  1093. package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
  1094. package/dist/src/server/headlessProtocol.cjs +0 -382
  1095. package/dist/src/server/headlessProtocol.cjs.map +0 -1
  1096. package/dist/src/server/headlessProtocol.mjs +0 -382
  1097. package/dist/src/server/headlessProtocol.mjs.map +0 -1
  1098. package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
  1099. package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
  1100. package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
  1101. package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
  1102. package/dist/src/server/serverFacetLoader.cjs +0 -214
  1103. package/dist/src/server/serverFacetLoader.cjs.map +0 -1
  1104. package/dist/src/server/serverFacetLoader.d.mts +0 -72
  1105. package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
  1106. package/dist/src/server/serverFacetLoader.mjs +0 -212
  1107. package/dist/src/server/serverFacetLoader.mjs.map +0 -1
  1108. package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
  1109. package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
  1110. package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
  1111. package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
  1112. package/dist/src/services/historyImport/index.cjs +0 -8
  1113. package/dist/src/services/historyImport/index.cjs.map +0 -1
  1114. package/dist/src/services/historyImport/index.d.mts +0 -68
  1115. package/dist/src/services/historyImport/index.d.mts.map +0 -1
  1116. package/dist/src/services/historyImport/index.mjs +0 -8
  1117. package/dist/src/services/historyImport/index.mjs.map +0 -1
  1118. package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
  1119. package/dist/src/services/requestReceipts/index.cjs.map +0 -1
  1120. package/dist/src/services/requestReceipts/index.d.mts +0 -11
  1121. package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
  1122. package/dist/src/services/requestReceipts/index.mjs.map +0 -1
  1123. package/dist/src/services/rpcTranscript/index.cjs +0 -633
  1124. package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
  1125. package/dist/src/services/rpcTranscript/index.d.mts +0 -50
  1126. package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
  1127. package/dist/src/services/rpcTranscript/index.mjs +0 -632
  1128. package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
  1129. package/dist/src/services/serverFacet/index.cjs.map +0 -1
  1130. package/dist/src/services/serverFacet/index.d.mts +0 -31
  1131. package/dist/src/services/serverFacet/index.d.mts.map +0 -1
  1132. package/dist/src/services/serverFacet/index.mjs.map +0 -1
  1133. package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
  1134. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
  1135. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
  1136. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
  1137. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
  1138. package/dist/terminalPiChildSessionService.cjs +0 -324
  1139. package/dist/terminalPiChildSessionService.cjs.map +0 -1
  1140. package/dist/terminalPiChildSessionService.d.mts +0 -46
  1141. package/dist/terminalPiChildSessionService.d.mts.map +0 -1
  1142. package/dist/terminalPiChildSessionService.mjs +0 -318
  1143. package/dist/terminalPiChildSessionService.mjs.map +0 -1
  1144. package/dist/v3Export.cjs +0 -10
  1145. package/dist/v3Export.cjs.map +0 -1
  1146. package/dist/v3Export.d.mts +0 -35
  1147. package/dist/v3Export.d.mts.map +0 -1
  1148. package/dist/v3Export.mjs +0 -9
  1149. package/dist/v3Export.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/sqliteTranscriptReader/index.ts"],"sourcesContent":["import path from 'node:path';\n\nimport type { Context } from '@earendil-works/chord';\nimport { createSession, type Cursor, type EntryRecord } from '@earendil-works/pi-durable';\n\nimport type { TranscriptPageRequest, TranscriptPage } from '../../exports/sessionProtocol';\nimport { DurableNavigationDoc } from '../durableNavigation';\nimport { readSavedExecution } from '../sqliteSessionHistory';\nimport {\n DURABLE_DIRECTORY,\n SessionIdentityDoc,\n SessionMetadataDoc,\n openReadOnlyDurableStorage,\n} from '../sqliteSessionStorage';\nimport { projectDurableEntries, readTranscriptPage } from '../transcriptPages';\n\nexport interface SqliteTranscriptOwnership {\n sessionId: string;\n workspaceRoot: string;\n workspaceId?: string;\n groupingRoot?: string;\n}\n\n/** A completed child is read without admitting a writer or updating the schema. */\nexport async function readSqliteTranscript(\n file: string,\n request: TranscriptPageRequest,\n context: Context,\n ownership?: SqliteTranscriptOwnership,\n): Promise<TranscriptPage> {\n if (path.basename(path.dirname(file)) !== DURABLE_DIRECTORY)\n throw new Error('Legacy SQLite transcripts are unsupported');\n const storage = await openReadOnlyDurableStorage(file);\n const session = createSession(storage);\n try {\n const identity = await session.snapshot(SessionIdentityDoc, context);\n if (\n !identity ||\n identity.id !== path.basename(file, '.sqlite') ||\n (ownership && identity.id !== ownership.sessionId)\n )\n throw new Error('Saved transcript does not belong to this session');\n if (ownership) {\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const execution = readSavedExecution(metadata?.execution, ownership.workspaceRoot);\n if (\n metadata?.workspaceRoot !== ownership.workspaceRoot ||\n !execution ||\n (ownership.workspaceId !== undefined && execution.workspaceId !== ownership.workspaceId) ||\n (ownership.groupingRoot !== undefined && execution.groupingRoot !== ownership.groupingRoot)\n )\n throw new Error('Saved transcript does not belong to this workspace');\n }\n const navigation = await session.snapshot(DurableNavigationDoc, context);\n const conversationId = navigation?.activeConversationId;\n const raw: EntryRecord[] = [];\n if (conversationId !== null && conversationId !== undefined) {\n let cursor: Cursor | undefined;\n do {\n const page = await storage.scanEntries({ conversationId }, 100, cursor, context);\n raw.push(...page.items);\n cursor = page.next;\n } while (cursor);\n }\n const entries = projectDurableEntries(raw.reverse());\n const tip = entries.at(-1)?.id ?? null;\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const laneName = metadata?.laneName ?? 'main';\n const page = await readTranscriptPage(\n {\n sessionId: identity.id,\n laneName,\n lane: {\n getTipId: async () => tip,\n findEntries: async (query) => {\n let rows = entries;\n if (query.start) {\n const index = rows.findIndex((entry) => entry.id === query.start);\n if (index < 0) throw new Error('Transcript references missing entry');\n rows = rows.slice(0, index + 1);\n }\n if (query.cursor)\n rows = rows.filter((entry) =>\n query.order === 'oldestFirst' ? entry.seq > query.cursor!.seq : entry.seq < query.cursor!.seq,\n );\n if (query.type) rows = rows.filter((entry) => entry.type === query.type);\n if (query.customType)\n rows = rows.filter((entry) => entry.type === 'custom' && entry.customType === query.customType);\n if (query.order !== 'oldestFirst') rows = [...rows].reverse();\n return rows.slice(0, query.limit);\n },\n },\n },\n request,\n 0,\n context,\n );\n return { ...page, revision: 0, drafts: [] };\n } finally {\n await session.close(context);\n }\n}\n"],"mappings":";;;;;;;;AAwBA,eAAsB,qBACpB,MACA,SACA,SACA,WACyB;CACzB,IAAI,KAAK,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAA,cAClC,MAAM,IAAI,MAAM,2CAA2C;CAC7D,MAAM,UAAU,MAAM,2BAA2B,IAAI;CACrD,MAAM,UAAU,cAAc,OAAO;CACrC,IAAI;EACF,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoB,OAAO;EACnE,IACE,CAAC,YACD,SAAS,OAAO,KAAK,SAAS,MAAM,SAAS,KAC5C,aAAa,SAAS,OAAO,UAAU,WAExC,MAAM,IAAI,MAAM,kDAAkD;EACpE,IAAI,WAAW;GACb,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoB,OAAO;GACnE,MAAM,YAAY,mBAAmB,UAAU,WAAW,UAAU,aAAa;GACjF,IACE,UAAU,kBAAkB,UAAU,iBACtC,CAAC,aACA,UAAU,gBAAgB,KAAA,KAAa,UAAU,gBAAgB,UAAU,eAC3E,UAAU,iBAAiB,KAAA,KAAa,UAAU,iBAAiB,UAAU,cAE9E,MAAM,IAAI,MAAM,oDAAoD;EACxE;EAEA,MAAM,kBAAiB,MADE,QAAQ,SAAS,sBAAsB,OAAO,EAAA,EACpC;EACnC,MAAM,MAAqB,CAAC;EAC5B,IAAI,mBAAmB,QAAQ,mBAAmB,KAAA,GAAW;GAC3D,IAAI;GACJ,GAAG;IACD,MAAM,OAAO,MAAM,QAAQ,YAAY,EAAE,eAAe,GAAG,KAAK,QAAQ,OAAO;IAC/E,IAAI,KAAK,GAAG,KAAK,KAAK;IACtB,SAAS,KAAK;GAChB,SAAS;EACX;EACA,MAAM,UAAU,sBAAsB,IAAI,QAAQ,CAAC;EACnD,MAAM,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,MAAM;EAElC,MAAM,YAAW,MADM,QAAQ,SAAS,oBAAoB,OAAO,EAAA,EACxC,YAAY;EA8BvC,OAAO;GAAE,GAAG,MA7BO,mBACjB;IACE,WAAW,SAAS;IACpB;IACA,MAAM;KACJ,UAAU,YAAY;KACtB,aAAa,OAAO,UAAU;MAC5B,IAAI,OAAO;MACX,IAAI,MAAM,OAAO;OACf,MAAM,QAAQ,KAAK,WAAW,UAAU,MAAM,OAAO,MAAM,KAAK;OAChE,IAAI,QAAQ,GAAG,MAAM,IAAI,MAAM,qCAAqC;OACpE,OAAO,KAAK,MAAM,GAAG,QAAQ,CAAC;MAChC;MACA,IAAI,MAAM,QACR,OAAO,KAAK,QAAQ,UAClB,MAAM,UAAU,gBAAgB,MAAM,MAAM,MAAM,OAAQ,MAAM,MAAM,MAAM,MAAM,OAAQ,GAC5F;MACF,IAAI,MAAM,MAAM,OAAO,KAAK,QAAQ,UAAU,MAAM,SAAS,MAAM,IAAI;MACvE,IAAI,MAAM,YACR,OAAO,KAAK,QAAQ,UAAU,MAAM,SAAS,YAAY,MAAM,eAAe,MAAM,UAAU;MAChG,IAAI,MAAM,UAAU,eAAe,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;MAC5D,OAAO,KAAK,MAAM,GAAG,MAAM,KAAK;KAClC;IACF;GACF,GACA,SACA,GACA,OACF;GACkB,UAAU;GAAG,QAAQ,CAAC;EAAE;CAC5C,UAAU;EACR,MAAM,QAAQ,MAAM,OAAO;CAC7B;AACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/sqliteTranscriptReader/index.ts"],"sourcesContent":["import type { Context } from '@earendil-works/chord';\nimport { createSession } from '@earendil-works/pi-durable';\n\nimport type { TranscriptPageRequest, TranscriptPage } from '../../exports/sessionProtocol';\nimport type { PoSessionStorageService } from '../../schemas/platform';\nimport { DurableNavigationDoc } from '../durableNavigation/docs';\nimport { IdentityHistoryDoc } from '../durableSession/docs';\nimport { readSavedExecution } from '../sqliteSessionHistory';\nimport { SessionIdentityDoc, SessionMetadataDoc } from '../sqliteSessionStorage';\nimport { durableTranscriptLane, readTranscriptPage } from '../transcriptPages';\n\nexport interface SqliteTranscriptOwnership {\n sessionId: string;\n workspaceRoot: string;\n workspaceId?: string;\n groupingRoot?: string;\n}\n\n/** A stored session is read without admitting a writer or updating the schema. */\nexport async function readSqliteTranscript(\n sessions: PoSessionStorageService,\n sessionId: string,\n request: TranscriptPageRequest,\n context: Context,\n ownership?: SqliteTranscriptOwnership,\n): Promise<TranscriptPage> {\n const storage = await sessions.openReadOnly(sessionId, context);\n const session = createSession(storage);\n try {\n const identity = await session.snapshot(SessionIdentityDoc, context);\n if (!identity || identity.id !== sessionId || (ownership && identity.id !== ownership.sessionId))\n throw new Error('Saved transcript does not belong to this session');\n if (ownership) {\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const execution = readSavedExecution(metadata?.execution, ownership.workspaceRoot);\n if (\n metadata?.workspaceRoot !== ownership.workspaceRoot ||\n !execution ||\n (ownership.workspaceId !== undefined && execution.workspaceId !== ownership.workspaceId) ||\n (ownership.groupingRoot !== undefined && execution.groupingRoot !== ownership.groupingRoot)\n )\n throw new Error('Saved transcript does not belong to this workspace');\n }\n const navigation = await session.snapshot(DurableNavigationDoc, context);\n const conversationId = navigation?.activeConversationId;\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const laneName = metadata?.laneName ?? 'main';\n const page = await readTranscriptPage(\n {\n sessionId: identity.id,\n laneName,\n lane:\n conversationId === null || conversationId === undefined\n ? { findEntries: async () => [], readIdentities: async () => undefined }\n : durableTranscriptLane(\n (query, limit, cursor, scanContext) =>\n storage.scanEntries({ conversationId, ...query }, limit, cursor, scanContext),\n (readContext) => session.snapshot(IdentityHistoryDoc, conversationId, readContext),\n ),\n },\n request,\n 0,\n context,\n );\n return { ...page, revision: 0 };\n } finally {\n await session.close(context);\n }\n}\n"],"mappings":";;;;;;;;AAmBA,eAAsB,qBACpB,UACA,WACA,SACA,SACA,WACyB;CACzB,MAAM,UAAU,MAAM,SAAS,aAAa,WAAW,OAAO;CAC9D,MAAM,UAAU,cAAc,OAAO;CACrC,IAAI;EACF,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoB,OAAO;EACnE,IAAI,CAAC,YAAY,SAAS,OAAO,aAAc,aAAa,SAAS,OAAO,UAAU,WACpF,MAAM,IAAI,MAAM,kDAAkD;EACpE,IAAI,WAAW;GACb,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoB,OAAO;GACnE,MAAM,YAAY,mBAAmB,UAAU,WAAW,UAAU,aAAa;GACjF,IACE,UAAU,kBAAkB,UAAU,iBACtC,CAAC,aACA,UAAU,gBAAgB,KAAA,KAAa,UAAU,gBAAgB,UAAU,eAC3E,UAAU,iBAAiB,KAAA,KAAa,UAAU,iBAAiB,UAAU,cAE9E,MAAM,IAAI,MAAM,oDAAoD;EACxE;EAEA,MAAM,kBAAiB,MADE,QAAQ,SAAS,sBAAsB,OAAO,EAAA,EACpC;EAEnC,MAAM,YAAW,MADM,QAAQ,SAAS,oBAAoB,OAAO,EAAA,EACxC,YAAY;EAkBvC,OAAO;GAAE,GAAG,MAjBO,mBACjB;IACE,WAAW,SAAS;IACpB;IACA,MACE,mBAAmB,QAAQ,mBAAmB,KAAA,IAC1C;KAAE,aAAa,YAAY,CAAC;KAAG,gBAAgB,YAAY,KAAA;IAAU,IACrE,uBACG,OAAO,OAAO,QAAQ,gBACrB,QAAQ,YAAY;KAAE;KAAgB,GAAG;IAAM,GAAG,OAAO,QAAQ,WAAW,IAC7E,gBAAgB,QAAQ,SAAS,oBAAoB,gBAAgB,WAAW,CACnF;GACR,GACA,SACA,GACA,OACF;GACkB,UAAU;EAAE;CAChC,UAAU;EACR,MAAM,QAAQ,MAAM,OAAO;CAC7B;AACF"}
@@ -0,0 +1,162 @@
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_os = require("node:os");
5
+ node_os = require_runtime.__toESM(node_os, 1);
6
+ let node_path = require("node:path");
7
+ node_path = require_runtime.__toESM(node_path, 1);
8
+ let node_url = require("node:url");
9
+ //#region src/services/testMode/index.ts
10
+ const CLI_PACKAGE = "@agimon-ai/po";
11
+ const WEB_PACKAGE = "@agimon-ai/po-web";
12
+ const PACKAGE_PATTERNS = ["packages/*/*/package.json", "layers/*/*/package.json"];
13
+ const TEST_FLAG = "--test";
14
+ const SEEDED_AGENT_FILES = ["auth.json", "models.json"];
15
+ function manifestName(directory) {
16
+ try {
17
+ const manifest = JSON.parse(node_fs.default.readFileSync(node_path.default.join(directory, "package.json"), "utf8"));
18
+ return typeof manifest.name === "string" ? manifest.name : void 0;
19
+ } catch {
20
+ return;
21
+ }
22
+ }
23
+ /** Resolve existing ancestors too, so a not-yet-created test home cannot hide a symlink escape. */
24
+ function canonicalPath(target) {
25
+ const absolute = node_path.default.resolve(target);
26
+ try {
27
+ return node_fs.default.realpathSync(absolute);
28
+ } catch (error) {
29
+ if (error.code !== "ENOENT") throw error;
30
+ const parent = node_path.default.dirname(absolute);
31
+ if (parent === absolute) throw error;
32
+ return node_path.default.join(canonicalPath(parent), node_path.default.basename(absolute));
33
+ }
34
+ }
35
+ function contained(root, target) {
36
+ const relative = node_path.default.relative(root, target);
37
+ return relative !== "" && relative !== ".." && !relative.startsWith(`..${node_path.default.sep}`) && !node_path.default.isAbsolute(relative);
38
+ }
39
+ /** Find a real Po source checkout, not an arbitrary consumer with workspace folders. */
40
+ function discoverPoCheckout(start) {
41
+ let directory = canonicalPath(start);
42
+ while (true) {
43
+ if (node_fs.default.existsSync(node_path.default.join(directory, "pnpm-workspace.yaml")) && manifestName(node_path.default.join(directory, "packages/cli/po")) === CLI_PACKAGE) return directory;
44
+ const parent = node_path.default.dirname(directory);
45
+ if (parent === directory) return void 0;
46
+ directory = parent;
47
+ }
48
+ }
49
+ function checkoutPackages(checkoutRoot) {
50
+ const packages = {};
51
+ for (const manifest of node_fs.default.globSync(PACKAGE_PATTERNS, { cwd: checkoutRoot }).sort()) {
52
+ const directory = node_fs.default.realpathSync(node_path.default.dirname(node_path.default.join(checkoutRoot, manifest)));
53
+ if (!contained(checkoutRoot, directory)) throw new Error(`Po checkout package escapes ${checkoutRoot}: ${manifest}`);
54
+ const name = manifestName(directory);
55
+ if (name) packages[name] = directory;
56
+ }
57
+ return packages;
58
+ }
59
+ function contextEnvironment(checkoutRoot) {
60
+ const packages = checkoutPackages(checkoutRoot);
61
+ if (!packages[CLI_PACKAGE] || !packages[WEB_PACKAGE]) throw new Error("Po test checkout must contain the Po CLI and po-web packages.");
62
+ const poHome = node_path.default.join(checkoutRoot, ".po/test");
63
+ const realHome = canonicalPath(poHome);
64
+ const agent = node_path.default.join(poHome, "agent");
65
+ if (realHome !== poHome || canonicalPath(agent) !== agent || !contained(checkoutRoot, realHome) || !contained(realHome, canonicalPath(agent))) throw new Error(`Po test home must stay inside the checkout without symlinked home or agent directories: ${poHome}`);
66
+ for (const file of SEEDED_AGENT_FILES) {
67
+ const target = node_path.default.join(agent, file);
68
+ try {
69
+ if (node_fs.default.lstatSync(target).isSymbolicLink() || !contained(canonicalPath(agent), canonicalPath(target))) throw new Error(`Po test credentials must be private files inside the test agent directory: ${target}`);
70
+ } catch (error) {
71
+ if (error.code !== "ENOENT") throw error;
72
+ }
73
+ }
74
+ return {
75
+ PO_TEST: "1",
76
+ PO_TEST_ROOT: checkoutRoot,
77
+ PO_HOME: poHome,
78
+ PI_CODING_AGENT_DIR: agent,
79
+ PO_TEST_PACKAGES: JSON.stringify(packages),
80
+ PO_WEB_PACKAGE_ROOT: packages[WEB_PACKAGE],
81
+ PO_SERVER_COMMAND: node_path.default.join(packages[CLI_PACKAGE], "dist/bin/serve.mjs")
82
+ };
83
+ }
84
+ /** Validate inherited test pins before forwarding them to another process. Invalid test mode fails closed. */
85
+ function getValidatedTestContext(environment = process.env) {
86
+ if (environment.PO_TEST !== "1") return void 0;
87
+ const root = environment.PO_TEST_ROOT;
88
+ if (!root || !node_path.default.isAbsolute(root) || canonicalPath(root) !== root || discoverPoCheckout(root) !== root) throw new Error("Invalid PO_TEST_ROOT. Run po --test from a Po checkout to initialize test mode.");
89
+ const expected = contextEnvironment(root);
90
+ for (const [key, value] of Object.entries(expected)) if (key === "PO_TEST_PACKAGES") {
91
+ let packages;
92
+ try {
93
+ packages = JSON.parse(environment[key] ?? "");
94
+ } catch {
95
+ throw new Error("Invalid PO_TEST_PACKAGES. Run po --test to initialize checkout packages.");
96
+ }
97
+ const entries = typeof packages === "object" && packages !== null && !Array.isArray(packages) ? Object.entries(packages) : [];
98
+ const expectedPackages = JSON.parse(value);
99
+ if (entries.length !== Object.keys(expectedPackages).length || entries.some(([name, directory]) => expectedPackages[name] !== directory)) throw new Error("Invalid PO_TEST_PACKAGES: package map must match the pinned Po checkout.");
100
+ } else if (environment[key] !== value) throw new Error(`Invalid ${key}: expected ${value}. Run po --test to initialize test mode.`);
101
+ return {
102
+ checkoutRoot: root,
103
+ env: expected
104
+ };
105
+ }
106
+ /** Initialize checkout-local test mode before any configuration or runtime imports. */
107
+ function initializeTestMode(entryUrl, options = {}) {
108
+ const argv = options.argv ?? process.argv;
109
+ const environment = options.env ?? process.env;
110
+ const end = argv.indexOf("--", 2);
111
+ if (argv.findIndex((argument, index) => index >= 2 && argument === TEST_FLAG && (end === -1 || index < end)) === -1) return getValidatedTestContext(environment)?.checkoutRoot;
112
+ const checkoutRoot = discoverPoCheckout(options.cwd ?? process.cwd()) ?? discoverPoCheckout(node_path.default.dirname((0, node_url.fileURLToPath)(entryUrl)));
113
+ if (!checkoutRoot) throw new Error("po --test requires a Po source checkout. Run it from the checkout or execute its built CLI.");
114
+ const pins = contextEnvironment(checkoutRoot);
115
+ const home = options.homeDir ?? environment.HOME ?? node_os.default.homedir();
116
+ const stableHome = canonicalPath(node_path.default.join(home, ".po"));
117
+ const testHome = canonicalPath(pins.PO_HOME);
118
+ if (testHome === stableHome || contained(stableHome, testHome)) throw new Error("Po test home must not use the stable Po home.");
119
+ let previousRoot;
120
+ try {
121
+ previousRoot = getValidatedTestContext(environment)?.checkoutRoot;
122
+ } catch {
123
+ previousRoot = void 0;
124
+ }
125
+ Object.assign(environment, pins);
126
+ if (previousRoot !== checkoutRoot) environment.PO_TEST_RESET_HARNESS = "1";
127
+ for (let index = (end === -1 ? argv.length : end) - 1; index >= 2; index--) if (argv[index] === TEST_FLAG) argv.splice(index, 1);
128
+ try {
129
+ const agent = pins.PI_CODING_AGENT_DIR;
130
+ node_fs.default.mkdirSync(agent, {
131
+ recursive: true,
132
+ mode: 448
133
+ });
134
+ node_fs.default.chmodSync(agent, 448);
135
+ for (const file of SEEDED_AGENT_FILES) {
136
+ const target = node_path.default.join(agent, file);
137
+ const source = node_path.default.join(stableHome, "agent", file);
138
+ if (node_fs.default.existsSync(target) || !node_fs.default.existsSync(source)) continue;
139
+ node_fs.default.copyFileSync(source, target, node_fs.default.constants.COPYFILE_EXCL);
140
+ node_fs.default.chmodSync(target, 384);
141
+ }
142
+ } catch (error) {
143
+ process.stderr.write(`[po] Could not copy the stable login into ${pins.PO_HOME}: ${error instanceof Error ? error.message : String(error)}\n`);
144
+ }
145
+ return checkoutRoot;
146
+ }
147
+ /** Only repository-owned Po packages are excluded from implicit non-test consumer resolution. */
148
+ function isCheckoutPoPackage(packageRoot) {
149
+ const realRoot = node_fs.default.realpathSync(packageRoot);
150
+ const name = manifestName(realRoot);
151
+ if (name !== CLI_PACKAGE && !name?.startsWith("@agimon-ai/po-")) return false;
152
+ const checkout = discoverPoCheckout(realRoot);
153
+ if (!checkout) return false;
154
+ return /^(packages|layers)\/[^/]+\/[^/]+$/.test(node_path.default.relative(checkout, realRoot).split(node_path.default.sep).join("/"));
155
+ }
156
+ //#endregion
157
+ exports.discoverPoCheckout = discoverPoCheckout;
158
+ exports.getValidatedTestContext = getValidatedTestContext;
159
+ exports.initializeTestMode = initializeTestMode;
160
+ exports.isCheckoutPoPackage = isCheckoutPoPackage;
161
+
162
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["fs","path","fileURLToPath","os"],"sources":["../../../../src/services/testMode/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst CLI_PACKAGE = '@agimon-ai/po';\nconst WEB_PACKAGE = '@agimon-ai/po-web';\nconst PACKAGE_PATTERNS = ['packages/*/*/package.json', 'layers/*/*/package.json'];\nconst TEST_FLAG = '--test';\nconst SEEDED_AGENT_FILES = ['auth.json', 'models.json'];\ntype Environment = Readonly<Record<string, string | undefined>>;\n\nfunction manifestName(directory: string): string | undefined {\n try {\n const manifest = JSON.parse(fs.readFileSync(path.join(directory, 'package.json'), 'utf8')) as { name?: unknown };\n return typeof manifest.name === 'string' ? manifest.name : undefined;\n } catch {\n return undefined; // An absent or malformed manifest cannot identify a checkout package.\n }\n}\n\n/** Resolve existing ancestors too, so a not-yet-created test home cannot hide a symlink escape. */\nfunction canonicalPath(target: string): string {\n const absolute = path.resolve(target);\n try {\n return fs.realpathSync(absolute);\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error;\n const parent = path.dirname(absolute);\n if (parent === absolute) throw error;\n return path.join(canonicalPath(parent), path.basename(absolute));\n }\n}\n\nfunction contained(root: string, target: string): boolean {\n const relative = path.relative(root, target);\n return relative !== '' && relative !== '..' && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);\n}\n\n/** Find a real Po source checkout, not an arbitrary consumer with workspace folders. */\nexport function discoverPoCheckout(start: string): string | undefined {\n let directory = canonicalPath(start);\n while (true) {\n if (\n fs.existsSync(path.join(directory, 'pnpm-workspace.yaml')) &&\n manifestName(path.join(directory, 'packages/cli/po')) === CLI_PACKAGE\n )\n return directory;\n const parent = path.dirname(directory);\n if (parent === directory) return undefined;\n directory = parent;\n }\n}\n\nfunction checkoutPackages(checkoutRoot: string): Record<string, string> {\n const packages: Record<string, string> = {};\n for (const manifest of fs.globSync(PACKAGE_PATTERNS, { cwd: checkoutRoot }).sort()) {\n const directory = fs.realpathSync(path.dirname(path.join(checkoutRoot, manifest)));\n if (!contained(checkoutRoot, directory))\n throw new Error(`Po checkout package escapes ${checkoutRoot}: ${manifest}`);\n const name = manifestName(directory);\n if (name) packages[name] = directory;\n }\n return packages;\n}\n\nfunction contextEnvironment(checkoutRoot: string): Record<string, string> {\n const packages = checkoutPackages(checkoutRoot);\n if (!packages[CLI_PACKAGE] || !packages[WEB_PACKAGE]) {\n throw new Error('Po test checkout must contain the Po CLI and po-web packages.');\n }\n const poHome = path.join(checkoutRoot, '.po/test');\n const realHome = canonicalPath(poHome);\n const agent = path.join(poHome, 'agent');\n if (\n realHome !== poHome ||\n canonicalPath(agent) !== agent ||\n !contained(checkoutRoot, realHome) ||\n !contained(realHome, canonicalPath(agent))\n ) {\n throw new Error(\n `Po test home must stay inside the checkout without symlinked home or agent directories: ${poHome}`,\n );\n }\n for (const file of SEEDED_AGENT_FILES) {\n const target = path.join(agent, file);\n try {\n if (fs.lstatSync(target).isSymbolicLink() || !contained(canonicalPath(agent), canonicalPath(target))) {\n throw new Error(`Po test credentials must be private files inside the test agent directory: ${target}`);\n }\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error;\n // A missing credential is safe to seed with an exclusive copy below.\n }\n }\n return {\n PO_TEST: '1',\n PO_TEST_ROOT: checkoutRoot,\n PO_HOME: poHome,\n PI_CODING_AGENT_DIR: agent,\n PO_TEST_PACKAGES: JSON.stringify(packages),\n PO_WEB_PACKAGE_ROOT: packages[WEB_PACKAGE],\n PO_SERVER_COMMAND: path.join(packages[CLI_PACKAGE], 'dist/bin/serve.mjs'),\n };\n}\n\n/** Validate inherited test pins before forwarding them to another process. Invalid test mode fails closed. */\nexport function getValidatedTestContext(\n environment: Environment = process.env,\n): { checkoutRoot: string; env: Record<string, string> } | undefined {\n if (environment.PO_TEST !== '1') return undefined;\n const root = environment.PO_TEST_ROOT;\n if (!root || !path.isAbsolute(root) || canonicalPath(root) !== root || discoverPoCheckout(root) !== root) {\n throw new Error('Invalid PO_TEST_ROOT. Run po --test from a Po checkout to initialize test mode.');\n }\n const expected = contextEnvironment(root);\n for (const [key, value] of Object.entries(expected)) {\n if (key === 'PO_TEST_PACKAGES') {\n let packages: unknown;\n try {\n packages = JSON.parse(environment[key] ?? '');\n } catch {\n throw new Error('Invalid PO_TEST_PACKAGES. Run po --test to initialize checkout packages.');\n }\n const entries =\n typeof packages === 'object' && packages !== null && !Array.isArray(packages) ? Object.entries(packages) : [];\n const expectedPackages = JSON.parse(value) as Record<string, string>;\n if (\n entries.length !== Object.keys(expectedPackages).length ||\n entries.some(([name, directory]) => expectedPackages[name] !== directory)\n ) {\n throw new Error('Invalid PO_TEST_PACKAGES: package map must match the pinned Po checkout.');\n }\n } else if (environment[key] !== value) {\n throw new Error(`Invalid ${key}: expected ${value}. Run po --test to initialize test mode.`);\n }\n }\n return { checkoutRoot: root, env: expected };\n}\n\n/** Initialize checkout-local test mode before any configuration or runtime imports. */\nexport function initializeTestMode(\n entryUrl: string,\n options: {\n argv?: string[];\n env?: NodeJS.ProcessEnv;\n cwd?: string;\n homeDir?: string;\n } = {},\n): string | undefined {\n const argv = options.argv ?? process.argv;\n const environment = options.env ?? process.env;\n const end = argv.indexOf('--', 2);\n const flag = argv.findIndex((argument, index) => index >= 2 && argument === TEST_FLAG && (end === -1 || index < end));\n if (flag === -1) return getValidatedTestContext(environment)?.checkoutRoot;\n const checkoutRoot =\n discoverPoCheckout(options.cwd ?? process.cwd()) ?? discoverPoCheckout(path.dirname(fileURLToPath(entryUrl)));\n if (!checkoutRoot)\n throw new Error('po --test requires a Po source checkout. Run it from the checkout or execute its built CLI.');\n const pins = contextEnvironment(checkoutRoot);\n const home = options.homeDir ?? environment.HOME ?? os.homedir();\n const stableHome = canonicalPath(path.join(home, '.po'));\n const testHome = canonicalPath(pins.PO_HOME!);\n if (testHome === stableHome || contained(stableHome, testHome))\n throw new Error('Po test home must not use the stable Po home.');\n let previousRoot: string | undefined;\n try {\n previousRoot = getValidatedTestContext(environment)?.checkoutRoot;\n } catch {\n // An explicit flag replaces stale inherited pins instead of trusting their harness state.\n previousRoot = undefined;\n }\n Object.assign(environment, pins);\n if (previousRoot !== checkoutRoot) environment.PO_TEST_RESET_HARNESS = '1';\n // Strip every launcher flag, but preserve command arguments following the separator.\n for (let index = (end === -1 ? argv.length : end) - 1; index >= 2; index--) {\n if (argv[index] === TEST_FLAG) argv.splice(index, 1);\n }\n try {\n const agent = pins.PI_CODING_AGENT_DIR!;\n fs.mkdirSync(agent, { recursive: true, mode: 0o700 });\n fs.chmodSync(agent, 0o700);\n for (const file of SEEDED_AGENT_FILES) {\n const target = path.join(agent, file);\n const source = path.join(stableHome, 'agent', file);\n if (fs.existsSync(target) || !fs.existsSync(source)) continue;\n fs.copyFileSync(source, target, fs.constants.COPYFILE_EXCL);\n fs.chmodSync(target, 0o600);\n }\n } catch (error) {\n process.stderr.write(\n `[po] Could not copy the stable login into ${pins.PO_HOME}: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n }\n return checkoutRoot;\n}\n\n/** Only repository-owned Po packages are excluded from implicit non-test consumer resolution. */\nexport function isCheckoutPoPackage(packageRoot: string): boolean {\n const realRoot = fs.realpathSync(packageRoot);\n const name = manifestName(realRoot);\n if (name !== CLI_PACKAGE && !name?.startsWith('@agimon-ai/po-')) return false;\n const checkout = discoverPoCheckout(realRoot);\n if (!checkout) return false;\n return /^(packages|layers)\\/[^/]+\\/[^/]+$/.test(path.relative(checkout, realRoot).split(path.sep).join('/'));\n}\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ //#region src/services/testMode/index.d.ts
2
+ type Environment = Readonly<Record<string, string | undefined>>;
3
+ /** Validate inherited test pins before forwarding them to another process. Invalid test mode fails closed. */
4
+ export declare function getValidatedTestContext(environment?: Environment): {
5
+ checkoutRoot: string;
6
+ env: Record<string, string>;
7
+ } | undefined;
8
+ /** Initialize checkout-local test mode before any configuration or runtime imports. */
9
+ export declare function initializeTestMode(entryUrl: string, options?: {
10
+ argv?: string[];
11
+ env?: NodeJS.ProcessEnv;
12
+ cwd?: string;
13
+ homeDir?: string;
14
+ }): string | undefined;
15
+ //#endregion
16
+ export {};
17
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/testMode/index.ts"],"mappings":";KAUK,cAAc,SAAS;;wBAiGZ,wBACd,cAAa;EACV;EAAsB,KAAK;;;wBAgChB,mBACd,kBACA;EACE;EACA,MAAM,OAAO;EACb;EACA"}
@@ -0,0 +1,155 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ //#region src/services/testMode/index.ts
6
+ const CLI_PACKAGE = "@agimon-ai/po";
7
+ const WEB_PACKAGE = "@agimon-ai/po-web";
8
+ const PACKAGE_PATTERNS = ["packages/*/*/package.json", "layers/*/*/package.json"];
9
+ const TEST_FLAG = "--test";
10
+ const SEEDED_AGENT_FILES = ["auth.json", "models.json"];
11
+ function manifestName(directory) {
12
+ try {
13
+ const manifest = JSON.parse(fs.readFileSync(path.join(directory, "package.json"), "utf8"));
14
+ return typeof manifest.name === "string" ? manifest.name : void 0;
15
+ } catch {
16
+ return;
17
+ }
18
+ }
19
+ /** Resolve existing ancestors too, so a not-yet-created test home cannot hide a symlink escape. */
20
+ function canonicalPath(target) {
21
+ const absolute = path.resolve(target);
22
+ try {
23
+ return fs.realpathSync(absolute);
24
+ } catch (error) {
25
+ if (error.code !== "ENOENT") throw error;
26
+ const parent = path.dirname(absolute);
27
+ if (parent === absolute) throw error;
28
+ return path.join(canonicalPath(parent), path.basename(absolute));
29
+ }
30
+ }
31
+ function contained(root, target) {
32
+ const relative = path.relative(root, target);
33
+ return relative !== "" && relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);
34
+ }
35
+ /** Find a real Po source checkout, not an arbitrary consumer with workspace folders. */
36
+ function discoverPoCheckout(start) {
37
+ let directory = canonicalPath(start);
38
+ while (true) {
39
+ if (fs.existsSync(path.join(directory, "pnpm-workspace.yaml")) && manifestName(path.join(directory, "packages/cli/po")) === CLI_PACKAGE) return directory;
40
+ const parent = path.dirname(directory);
41
+ if (parent === directory) return void 0;
42
+ directory = parent;
43
+ }
44
+ }
45
+ function checkoutPackages(checkoutRoot) {
46
+ const packages = {};
47
+ for (const manifest of fs.globSync(PACKAGE_PATTERNS, { cwd: checkoutRoot }).sort()) {
48
+ const directory = fs.realpathSync(path.dirname(path.join(checkoutRoot, manifest)));
49
+ if (!contained(checkoutRoot, directory)) throw new Error(`Po checkout package escapes ${checkoutRoot}: ${manifest}`);
50
+ const name = manifestName(directory);
51
+ if (name) packages[name] = directory;
52
+ }
53
+ return packages;
54
+ }
55
+ function contextEnvironment(checkoutRoot) {
56
+ const packages = checkoutPackages(checkoutRoot);
57
+ if (!packages[CLI_PACKAGE] || !packages[WEB_PACKAGE]) throw new Error("Po test checkout must contain the Po CLI and po-web packages.");
58
+ const poHome = path.join(checkoutRoot, ".po/test");
59
+ const realHome = canonicalPath(poHome);
60
+ const agent = path.join(poHome, "agent");
61
+ if (realHome !== poHome || canonicalPath(agent) !== agent || !contained(checkoutRoot, realHome) || !contained(realHome, canonicalPath(agent))) throw new Error(`Po test home must stay inside the checkout without symlinked home or agent directories: ${poHome}`);
62
+ for (const file of SEEDED_AGENT_FILES) {
63
+ const target = path.join(agent, file);
64
+ try {
65
+ if (fs.lstatSync(target).isSymbolicLink() || !contained(canonicalPath(agent), canonicalPath(target))) throw new Error(`Po test credentials must be private files inside the test agent directory: ${target}`);
66
+ } catch (error) {
67
+ if (error.code !== "ENOENT") throw error;
68
+ }
69
+ }
70
+ return {
71
+ PO_TEST: "1",
72
+ PO_TEST_ROOT: checkoutRoot,
73
+ PO_HOME: poHome,
74
+ PI_CODING_AGENT_DIR: agent,
75
+ PO_TEST_PACKAGES: JSON.stringify(packages),
76
+ PO_WEB_PACKAGE_ROOT: packages[WEB_PACKAGE],
77
+ PO_SERVER_COMMAND: path.join(packages[CLI_PACKAGE], "dist/bin/serve.mjs")
78
+ };
79
+ }
80
+ /** Validate inherited test pins before forwarding them to another process. Invalid test mode fails closed. */
81
+ function getValidatedTestContext(environment = process.env) {
82
+ if (environment.PO_TEST !== "1") return void 0;
83
+ const root = environment.PO_TEST_ROOT;
84
+ if (!root || !path.isAbsolute(root) || canonicalPath(root) !== root || discoverPoCheckout(root) !== root) throw new Error("Invalid PO_TEST_ROOT. Run po --test from a Po checkout to initialize test mode.");
85
+ const expected = contextEnvironment(root);
86
+ for (const [key, value] of Object.entries(expected)) if (key === "PO_TEST_PACKAGES") {
87
+ let packages;
88
+ try {
89
+ packages = JSON.parse(environment[key] ?? "");
90
+ } catch {
91
+ throw new Error("Invalid PO_TEST_PACKAGES. Run po --test to initialize checkout packages.");
92
+ }
93
+ const entries = typeof packages === "object" && packages !== null && !Array.isArray(packages) ? Object.entries(packages) : [];
94
+ const expectedPackages = JSON.parse(value);
95
+ if (entries.length !== Object.keys(expectedPackages).length || entries.some(([name, directory]) => expectedPackages[name] !== directory)) throw new Error("Invalid PO_TEST_PACKAGES: package map must match the pinned Po checkout.");
96
+ } else if (environment[key] !== value) throw new Error(`Invalid ${key}: expected ${value}. Run po --test to initialize test mode.`);
97
+ return {
98
+ checkoutRoot: root,
99
+ env: expected
100
+ };
101
+ }
102
+ /** Initialize checkout-local test mode before any configuration or runtime imports. */
103
+ function initializeTestMode(entryUrl, options = {}) {
104
+ const argv = options.argv ?? process.argv;
105
+ const environment = options.env ?? process.env;
106
+ const end = argv.indexOf("--", 2);
107
+ if (argv.findIndex((argument, index) => index >= 2 && argument === TEST_FLAG && (end === -1 || index < end)) === -1) return getValidatedTestContext(environment)?.checkoutRoot;
108
+ const checkoutRoot = discoverPoCheckout(options.cwd ?? process.cwd()) ?? discoverPoCheckout(path.dirname(fileURLToPath(entryUrl)));
109
+ if (!checkoutRoot) throw new Error("po --test requires a Po source checkout. Run it from the checkout or execute its built CLI.");
110
+ const pins = contextEnvironment(checkoutRoot);
111
+ const home = options.homeDir ?? environment.HOME ?? os.homedir();
112
+ const stableHome = canonicalPath(path.join(home, ".po"));
113
+ const testHome = canonicalPath(pins.PO_HOME);
114
+ if (testHome === stableHome || contained(stableHome, testHome)) throw new Error("Po test home must not use the stable Po home.");
115
+ let previousRoot;
116
+ try {
117
+ previousRoot = getValidatedTestContext(environment)?.checkoutRoot;
118
+ } catch {
119
+ previousRoot = void 0;
120
+ }
121
+ Object.assign(environment, pins);
122
+ if (previousRoot !== checkoutRoot) environment.PO_TEST_RESET_HARNESS = "1";
123
+ for (let index = (end === -1 ? argv.length : end) - 1; index >= 2; index--) if (argv[index] === TEST_FLAG) argv.splice(index, 1);
124
+ try {
125
+ const agent = pins.PI_CODING_AGENT_DIR;
126
+ fs.mkdirSync(agent, {
127
+ recursive: true,
128
+ mode: 448
129
+ });
130
+ fs.chmodSync(agent, 448);
131
+ for (const file of SEEDED_AGENT_FILES) {
132
+ const target = path.join(agent, file);
133
+ const source = path.join(stableHome, "agent", file);
134
+ if (fs.existsSync(target) || !fs.existsSync(source)) continue;
135
+ fs.copyFileSync(source, target, fs.constants.COPYFILE_EXCL);
136
+ fs.chmodSync(target, 384);
137
+ }
138
+ } catch (error) {
139
+ process.stderr.write(`[po] Could not copy the stable login into ${pins.PO_HOME}: ${error instanceof Error ? error.message : String(error)}\n`);
140
+ }
141
+ return checkoutRoot;
142
+ }
143
+ /** Only repository-owned Po packages are excluded from implicit non-test consumer resolution. */
144
+ function isCheckoutPoPackage(packageRoot) {
145
+ const realRoot = fs.realpathSync(packageRoot);
146
+ const name = manifestName(realRoot);
147
+ if (name !== CLI_PACKAGE && !name?.startsWith("@agimon-ai/po-")) return false;
148
+ const checkout = discoverPoCheckout(realRoot);
149
+ if (!checkout) return false;
150
+ return /^(packages|layers)\/[^/]+\/[^/]+$/.test(path.relative(checkout, realRoot).split(path.sep).join("/"));
151
+ }
152
+ //#endregion
153
+ export { discoverPoCheckout, getValidatedTestContext, initializeTestMode, isCheckoutPoPackage };
154
+
155
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/testMode/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst CLI_PACKAGE = '@agimon-ai/po';\nconst WEB_PACKAGE = '@agimon-ai/po-web';\nconst PACKAGE_PATTERNS = ['packages/*/*/package.json', 'layers/*/*/package.json'];\nconst TEST_FLAG = '--test';\nconst SEEDED_AGENT_FILES = ['auth.json', 'models.json'];\ntype Environment = Readonly<Record<string, string | undefined>>;\n\nfunction manifestName(directory: string): string | undefined {\n try {\n const manifest = JSON.parse(fs.readFileSync(path.join(directory, 'package.json'), 'utf8')) as { name?: unknown };\n return typeof manifest.name === 'string' ? manifest.name : undefined;\n } catch {\n return undefined; // An absent or malformed manifest cannot identify a checkout package.\n }\n}\n\n/** Resolve existing ancestors too, so a not-yet-created test home cannot hide a symlink escape. */\nfunction canonicalPath(target: string): string {\n const absolute = path.resolve(target);\n try {\n return fs.realpathSync(absolute);\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error;\n const parent = path.dirname(absolute);\n if (parent === absolute) throw error;\n return path.join(canonicalPath(parent), path.basename(absolute));\n }\n}\n\nfunction contained(root: string, target: string): boolean {\n const relative = path.relative(root, target);\n return relative !== '' && relative !== '..' && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);\n}\n\n/** Find a real Po source checkout, not an arbitrary consumer with workspace folders. */\nexport function discoverPoCheckout(start: string): string | undefined {\n let directory = canonicalPath(start);\n while (true) {\n if (\n fs.existsSync(path.join(directory, 'pnpm-workspace.yaml')) &&\n manifestName(path.join(directory, 'packages/cli/po')) === CLI_PACKAGE\n )\n return directory;\n const parent = path.dirname(directory);\n if (parent === directory) return undefined;\n directory = parent;\n }\n}\n\nfunction checkoutPackages(checkoutRoot: string): Record<string, string> {\n const packages: Record<string, string> = {};\n for (const manifest of fs.globSync(PACKAGE_PATTERNS, { cwd: checkoutRoot }).sort()) {\n const directory = fs.realpathSync(path.dirname(path.join(checkoutRoot, manifest)));\n if (!contained(checkoutRoot, directory))\n throw new Error(`Po checkout package escapes ${checkoutRoot}: ${manifest}`);\n const name = manifestName(directory);\n if (name) packages[name] = directory;\n }\n return packages;\n}\n\nfunction contextEnvironment(checkoutRoot: string): Record<string, string> {\n const packages = checkoutPackages(checkoutRoot);\n if (!packages[CLI_PACKAGE] || !packages[WEB_PACKAGE]) {\n throw new Error('Po test checkout must contain the Po CLI and po-web packages.');\n }\n const poHome = path.join(checkoutRoot, '.po/test');\n const realHome = canonicalPath(poHome);\n const agent = path.join(poHome, 'agent');\n if (\n realHome !== poHome ||\n canonicalPath(agent) !== agent ||\n !contained(checkoutRoot, realHome) ||\n !contained(realHome, canonicalPath(agent))\n ) {\n throw new Error(\n `Po test home must stay inside the checkout without symlinked home or agent directories: ${poHome}`,\n );\n }\n for (const file of SEEDED_AGENT_FILES) {\n const target = path.join(agent, file);\n try {\n if (fs.lstatSync(target).isSymbolicLink() || !contained(canonicalPath(agent), canonicalPath(target))) {\n throw new Error(`Po test credentials must be private files inside the test agent directory: ${target}`);\n }\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error;\n // A missing credential is safe to seed with an exclusive copy below.\n }\n }\n return {\n PO_TEST: '1',\n PO_TEST_ROOT: checkoutRoot,\n PO_HOME: poHome,\n PI_CODING_AGENT_DIR: agent,\n PO_TEST_PACKAGES: JSON.stringify(packages),\n PO_WEB_PACKAGE_ROOT: packages[WEB_PACKAGE],\n PO_SERVER_COMMAND: path.join(packages[CLI_PACKAGE], 'dist/bin/serve.mjs'),\n };\n}\n\n/** Validate inherited test pins before forwarding them to another process. Invalid test mode fails closed. */\nexport function getValidatedTestContext(\n environment: Environment = process.env,\n): { checkoutRoot: string; env: Record<string, string> } | undefined {\n if (environment.PO_TEST !== '1') return undefined;\n const root = environment.PO_TEST_ROOT;\n if (!root || !path.isAbsolute(root) || canonicalPath(root) !== root || discoverPoCheckout(root) !== root) {\n throw new Error('Invalid PO_TEST_ROOT. Run po --test from a Po checkout to initialize test mode.');\n }\n const expected = contextEnvironment(root);\n for (const [key, value] of Object.entries(expected)) {\n if (key === 'PO_TEST_PACKAGES') {\n let packages: unknown;\n try {\n packages = JSON.parse(environment[key] ?? '');\n } catch {\n throw new Error('Invalid PO_TEST_PACKAGES. Run po --test to initialize checkout packages.');\n }\n const entries =\n typeof packages === 'object' && packages !== null && !Array.isArray(packages) ? Object.entries(packages) : [];\n const expectedPackages = JSON.parse(value) as Record<string, string>;\n if (\n entries.length !== Object.keys(expectedPackages).length ||\n entries.some(([name, directory]) => expectedPackages[name] !== directory)\n ) {\n throw new Error('Invalid PO_TEST_PACKAGES: package map must match the pinned Po checkout.');\n }\n } else if (environment[key] !== value) {\n throw new Error(`Invalid ${key}: expected ${value}. Run po --test to initialize test mode.`);\n }\n }\n return { checkoutRoot: root, env: expected };\n}\n\n/** Initialize checkout-local test mode before any configuration or runtime imports. */\nexport function initializeTestMode(\n entryUrl: string,\n options: {\n argv?: string[];\n env?: NodeJS.ProcessEnv;\n cwd?: string;\n homeDir?: string;\n } = {},\n): string | undefined {\n const argv = options.argv ?? process.argv;\n const environment = options.env ?? process.env;\n const end = argv.indexOf('--', 2);\n const flag = argv.findIndex((argument, index) => index >= 2 && argument === TEST_FLAG && (end === -1 || index < end));\n if (flag === -1) return getValidatedTestContext(environment)?.checkoutRoot;\n const checkoutRoot =\n discoverPoCheckout(options.cwd ?? process.cwd()) ?? discoverPoCheckout(path.dirname(fileURLToPath(entryUrl)));\n if (!checkoutRoot)\n throw new Error('po --test requires a Po source checkout. Run it from the checkout or execute its built CLI.');\n const pins = contextEnvironment(checkoutRoot);\n const home = options.homeDir ?? environment.HOME ?? os.homedir();\n const stableHome = canonicalPath(path.join(home, '.po'));\n const testHome = canonicalPath(pins.PO_HOME!);\n if (testHome === stableHome || contained(stableHome, testHome))\n throw new Error('Po test home must not use the stable Po home.');\n let previousRoot: string | undefined;\n try {\n previousRoot = getValidatedTestContext(environment)?.checkoutRoot;\n } catch {\n // An explicit flag replaces stale inherited pins instead of trusting their harness state.\n previousRoot = undefined;\n }\n Object.assign(environment, pins);\n if (previousRoot !== checkoutRoot) environment.PO_TEST_RESET_HARNESS = '1';\n // Strip every launcher flag, but preserve command arguments following the separator.\n for (let index = (end === -1 ? argv.length : end) - 1; index >= 2; index--) {\n if (argv[index] === TEST_FLAG) argv.splice(index, 1);\n }\n try {\n const agent = pins.PI_CODING_AGENT_DIR!;\n fs.mkdirSync(agent, { recursive: true, mode: 0o700 });\n fs.chmodSync(agent, 0o700);\n for (const file of SEEDED_AGENT_FILES) {\n const target = path.join(agent, file);\n const source = path.join(stableHome, 'agent', file);\n if (fs.existsSync(target) || !fs.existsSync(source)) continue;\n fs.copyFileSync(source, target, fs.constants.COPYFILE_EXCL);\n fs.chmodSync(target, 0o600);\n }\n } catch (error) {\n process.stderr.write(\n `[po] Could not copy the stable login into ${pins.PO_HOME}: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n }\n return checkoutRoot;\n}\n\n/** Only repository-owned Po packages are excluded from implicit non-test consumer resolution. */\nexport function isCheckoutPoPackage(packageRoot: string): boolean {\n const realRoot = fs.realpathSync(packageRoot);\n const name = manifestName(realRoot);\n if (name !== CLI_PACKAGE && !name?.startsWith('@agimon-ai/po-')) return false;\n const checkout = discoverPoCheckout(realRoot);\n if (!checkout) return false;\n return /^(packages|layers)\\/[^/]+\\/[^/]+$/.test(path.relative(checkout, realRoot).split(path.sep).join('/'));\n}\n"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  //#region src/services/toolOverrides/index.ts
2
2
  function assertNonEmpty(value, field) {
3
- if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);
3
+ if (value.trim().length === 0) throw new Error(`Po tool override ${field} must not be empty.`);
4
4
  }
5
- /** Creates the host-owned tool replacement registry for one Doom runtime. */
6
- function createDoomToolOverridesService(generation) {
7
- if (!generation) throw new Error("Doom tool overrides require a runtime generation.");
5
+ /** Creates the host-owned tool replacement registry for one Po runtime. */
6
+ function createPoToolOverridesService(generation) {
7
+ if (!generation) throw new Error("Po tool overrides require a runtime generation.");
8
8
  const owners = /* @__PURE__ */ new Map();
9
9
  return Object.freeze({
10
10
  generation,
11
11
  claim(claim) {
12
12
  assertNonEmpty(claim.source, "source");
13
- if (claim.tools.length === 0) throw new Error("Doom tool override tools must not be empty.");
13
+ if (claim.tools.length === 0) throw new Error("Po tool override tools must not be empty.");
14
14
  for (const tool of claim.tools) assertNonEmpty(tool, "tool");
15
15
  const tools = Object.freeze([...new Set(claim.tools)]);
16
16
  if (tools.some((tool) => owners.has(tool))) return Object.freeze({
@@ -40,6 +40,6 @@ function createDoomToolOverridesService(generation) {
40
40
  });
41
41
  }
42
42
  //#endregion
43
- exports.createDoomToolOverridesService = createDoomToolOverridesService;
43
+ exports.createPoToolOverridesService = createPoToolOverridesService;
44
44
 
45
45
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"sourcesContent":["import type {\n DoomToolOverrideClaim,\n DoomToolOverrideRegistration,\n DoomToolOverridesService,\n} from '../../schemas/toolOverrides';\n\ninterface StoredClaim {\n readonly source: string;\n readonly tools: readonly string[];\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);\n}\n\n/** Creates the host-owned tool replacement registry for one Doom runtime. */\nexport function createDoomToolOverridesService(generation: string): DoomToolOverridesService {\n if (!generation) throw new Error('Doom tool overrides require a runtime generation.');\n\n const owners = new Map<string, StoredClaim>();\n return Object.freeze({\n generation,\n claim(claim: DoomToolOverrideClaim): DoomToolOverrideRegistration {\n assertNonEmpty(claim.source, 'source');\n if (claim.tools.length === 0) throw new Error('Doom tool override tools must not be empty.');\n for (const tool of claim.tools) assertNonEmpty(tool, 'tool');\n\n const tools = Object.freeze([...new Set(claim.tools)]);\n if (tools.some((tool) => owners.has(tool))) {\n return Object.freeze({ granted: false, tools, dispose: (): void => undefined });\n }\n\n const stored: StoredClaim = Object.freeze({ source: claim.source, tools });\n for (const tool of tools) owners.set(tool, stored);\n\n let disposed = false;\n return Object.freeze({\n granted: true,\n tools,\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const tool of tools) {\n if (owners.get(tool) === stored) owners.delete(tool);\n }\n },\n });\n },\n owner(tool: string): string | undefined {\n return owners.get(tool)?.source;\n },\n });\n}\n"],"mappings":";AAWA,SAAS,eAAe,OAAe,OAAqB;CAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,sBAAsB,MAAM,oBAAoB;AACjG;;AAGA,SAAgB,+BAA+B,YAA8C;CAC3F,IAAI,CAAC,YAAY,MAAM,IAAI,MAAM,mDAAmD;CAEpF,MAAM,yBAAS,IAAI,IAAyB;CAC5C,OAAO,OAAO,OAAO;EACnB;EACA,MAAM,OAA4D;GAChE,eAAe,MAAM,QAAQ,QAAQ;GACrC,IAAI,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,6CAA6C;GAC3F,KAAK,MAAM,QAAQ,MAAM,OAAO,eAAe,MAAM,MAAM;GAE3D,MAAM,QAAQ,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC;GACrD,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,GACvC,OAAO,OAAO,OAAO;IAAE,SAAS;IAAO;IAAO,eAAqB,KAAA;GAAU,CAAC;GAGhF,MAAM,SAAsB,OAAO,OAAO;IAAE,QAAQ,MAAM;IAAQ;GAAM,CAAC;GACzE,KAAK,MAAM,QAAQ,OAAO,OAAO,IAAI,MAAM,MAAM;GAEjD,IAAI,WAAW;GACf,OAAO,OAAO,OAAO;IACnB,SAAS;IACT;IACA,UAAgB;KACd,IAAI,UAAU;KACd,WAAW;KACX,KAAK,MAAM,QAAQ,OACjB,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ,OAAO,OAAO,IAAI;IAEvD;GACF,CAAC;EACH;EACA,MAAM,MAAkC;GACtC,OAAO,OAAO,IAAI,IAAI,CAAC,EAAE;EAC3B;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"sourcesContent":["import type {\n PoToolOverrideClaim,\n PoToolOverrideRegistration,\n PoToolOverridesService,\n} from '../../schemas/toolOverrides';\n\ninterface StoredClaim {\n readonly source: string;\n readonly tools: readonly string[];\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (value.trim().length === 0) throw new Error(`Po tool override ${field} must not be empty.`);\n}\n\n/** Creates the host-owned tool replacement registry for one Po runtime. */\nexport function createPoToolOverridesService(generation: string): PoToolOverridesService {\n if (!generation) throw new Error('Po tool overrides require a runtime generation.');\n\n const owners = new Map<string, StoredClaim>();\n return Object.freeze({\n generation,\n claim(claim: PoToolOverrideClaim): PoToolOverrideRegistration {\n assertNonEmpty(claim.source, 'source');\n if (claim.tools.length === 0) throw new Error('Po tool override tools must not be empty.');\n for (const tool of claim.tools) assertNonEmpty(tool, 'tool');\n\n const tools = Object.freeze([...new Set(claim.tools)]);\n if (tools.some((tool) => owners.has(tool))) {\n return Object.freeze({ granted: false, tools, dispose: (): void => undefined });\n }\n\n const stored: StoredClaim = Object.freeze({ source: claim.source, tools });\n for (const tool of tools) owners.set(tool, stored);\n\n let disposed = false;\n return Object.freeze({\n granted: true,\n tools,\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const tool of tools) {\n if (owners.get(tool) === stored) owners.delete(tool);\n }\n },\n });\n },\n owner(tool: string): string | undefined {\n return owners.get(tool)?.source;\n },\n });\n}\n"],"mappings":";AAWA,SAAS,eAAe,OAAe,OAAqB;CAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,oBAAoB,MAAM,oBAAoB;AAC/F;;AAGA,SAAgB,6BAA6B,YAA4C;CACvF,IAAI,CAAC,YAAY,MAAM,IAAI,MAAM,iDAAiD;CAElF,MAAM,yBAAS,IAAI,IAAyB;CAC5C,OAAO,OAAO,OAAO;EACnB;EACA,MAAM,OAAwD;GAC5D,eAAe,MAAM,QAAQ,QAAQ;GACrC,IAAI,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,2CAA2C;GACzF,KAAK,MAAM,QAAQ,MAAM,OAAO,eAAe,MAAM,MAAM;GAE3D,MAAM,QAAQ,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC;GACrD,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,GACvC,OAAO,OAAO,OAAO;IAAE,SAAS;IAAO;IAAO,eAAqB,KAAA;GAAU,CAAC;GAGhF,MAAM,SAAsB,OAAO,OAAO;IAAE,QAAQ,MAAM;IAAQ;GAAM,CAAC;GACzE,KAAK,MAAM,QAAQ,OAAO,OAAO,IAAI,MAAM,MAAM;GAEjD,IAAI,WAAW;GACf,OAAO,OAAO,OAAO;IACnB,SAAS;IACT;IACA,UAAgB;KACd,IAAI,UAAU;KACd,WAAW;KACX,KAAK,MAAM,QAAQ,OACjB,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ,OAAO,OAAO,IAAI;IAEvD;GACF,CAAC;EACH;EACA,MAAM,MAAkC;GACtC,OAAO,OAAO,IAAI,IAAI,CAAC,EAAE;EAC3B;CACF,CAAC;AACH"}
@@ -1,6 +1,6 @@
1
- import { DoomToolOverridesService } from "../../schemas/toolOverrides.mjs";
1
+ import { PoToolOverridesService } from "../../schemas/toolOverrides.mjs";
2
2
  //#region src/services/toolOverrides/index.d.ts
3
- /** Creates the host-owned tool replacement registry for one Doom runtime. */
4
- export declare function createDoomToolOverridesService(generation: string): DoomToolOverridesService;
3
+ /** Creates the host-owned tool replacement registry for one Po runtime. */
4
+ export declare function createPoToolOverridesService(generation: string): PoToolOverridesService;
5
5
  //#endregion
6
6
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"mappings":";;;wBAgBgB,+BAA+B,qBAAqB"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"mappings":";;;wBAgBgB,6BAA6B,qBAAqB"}
@@ -1,16 +1,16 @@
1
1
  //#region src/services/toolOverrides/index.ts
2
2
  function assertNonEmpty(value, field) {
3
- if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);
3
+ if (value.trim().length === 0) throw new Error(`Po tool override ${field} must not be empty.`);
4
4
  }
5
- /** Creates the host-owned tool replacement registry for one Doom runtime. */
6
- function createDoomToolOverridesService(generation) {
7
- if (!generation) throw new Error("Doom tool overrides require a runtime generation.");
5
+ /** Creates the host-owned tool replacement registry for one Po runtime. */
6
+ function createPoToolOverridesService(generation) {
7
+ if (!generation) throw new Error("Po tool overrides require a runtime generation.");
8
8
  const owners = /* @__PURE__ */ new Map();
9
9
  return Object.freeze({
10
10
  generation,
11
11
  claim(claim) {
12
12
  assertNonEmpty(claim.source, "source");
13
- if (claim.tools.length === 0) throw new Error("Doom tool override tools must not be empty.");
13
+ if (claim.tools.length === 0) throw new Error("Po tool override tools must not be empty.");
14
14
  for (const tool of claim.tools) assertNonEmpty(tool, "tool");
15
15
  const tools = Object.freeze([...new Set(claim.tools)]);
16
16
  if (tools.some((tool) => owners.has(tool))) return Object.freeze({
@@ -40,6 +40,6 @@ function createDoomToolOverridesService(generation) {
40
40
  });
41
41
  }
42
42
  //#endregion
43
- export { createDoomToolOverridesService };
43
+ export { createPoToolOverridesService };
44
44
 
45
45
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"sourcesContent":["import type {\n DoomToolOverrideClaim,\n DoomToolOverrideRegistration,\n DoomToolOverridesService,\n} from '../../schemas/toolOverrides';\n\ninterface StoredClaim {\n readonly source: string;\n readonly tools: readonly string[];\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);\n}\n\n/** Creates the host-owned tool replacement registry for one Doom runtime. */\nexport function createDoomToolOverridesService(generation: string): DoomToolOverridesService {\n if (!generation) throw new Error('Doom tool overrides require a runtime generation.');\n\n const owners = new Map<string, StoredClaim>();\n return Object.freeze({\n generation,\n claim(claim: DoomToolOverrideClaim): DoomToolOverrideRegistration {\n assertNonEmpty(claim.source, 'source');\n if (claim.tools.length === 0) throw new Error('Doom tool override tools must not be empty.');\n for (const tool of claim.tools) assertNonEmpty(tool, 'tool');\n\n const tools = Object.freeze([...new Set(claim.tools)]);\n if (tools.some((tool) => owners.has(tool))) {\n return Object.freeze({ granted: false, tools, dispose: (): void => undefined });\n }\n\n const stored: StoredClaim = Object.freeze({ source: claim.source, tools });\n for (const tool of tools) owners.set(tool, stored);\n\n let disposed = false;\n return Object.freeze({\n granted: true,\n tools,\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const tool of tools) {\n if (owners.get(tool) === stored) owners.delete(tool);\n }\n },\n });\n },\n owner(tool: string): string | undefined {\n return owners.get(tool)?.source;\n },\n });\n}\n"],"mappings":";AAWA,SAAS,eAAe,OAAe,OAAqB;CAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,sBAAsB,MAAM,oBAAoB;AACjG;;AAGA,SAAgB,+BAA+B,YAA8C;CAC3F,IAAI,CAAC,YAAY,MAAM,IAAI,MAAM,mDAAmD;CAEpF,MAAM,yBAAS,IAAI,IAAyB;CAC5C,OAAO,OAAO,OAAO;EACnB;EACA,MAAM,OAA4D;GAChE,eAAe,MAAM,QAAQ,QAAQ;GACrC,IAAI,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,6CAA6C;GAC3F,KAAK,MAAM,QAAQ,MAAM,OAAO,eAAe,MAAM,MAAM;GAE3D,MAAM,QAAQ,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC;GACrD,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,GACvC,OAAO,OAAO,OAAO;IAAE,SAAS;IAAO;IAAO,eAAqB,KAAA;GAAU,CAAC;GAGhF,MAAM,SAAsB,OAAO,OAAO;IAAE,QAAQ,MAAM;IAAQ;GAAM,CAAC;GACzE,KAAK,MAAM,QAAQ,OAAO,OAAO,IAAI,MAAM,MAAM;GAEjD,IAAI,WAAW;GACf,OAAO,OAAO,OAAO;IACnB,SAAS;IACT;IACA,UAAgB;KACd,IAAI,UAAU;KACd,WAAW;KACX,KAAK,MAAM,QAAQ,OACjB,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ,OAAO,OAAO,IAAI;IAEvD;GACF,CAAC;EACH;EACA,MAAM,MAAkC;GACtC,OAAO,OAAO,IAAI,IAAI,CAAC,EAAE;EAC3B;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"sourcesContent":["import type {\n PoToolOverrideClaim,\n PoToolOverrideRegistration,\n PoToolOverridesService,\n} from '../../schemas/toolOverrides';\n\ninterface StoredClaim {\n readonly source: string;\n readonly tools: readonly string[];\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (value.trim().length === 0) throw new Error(`Po tool override ${field} must not be empty.`);\n}\n\n/** Creates the host-owned tool replacement registry for one Po runtime. */\nexport function createPoToolOverridesService(generation: string): PoToolOverridesService {\n if (!generation) throw new Error('Po tool overrides require a runtime generation.');\n\n const owners = new Map<string, StoredClaim>();\n return Object.freeze({\n generation,\n claim(claim: PoToolOverrideClaim): PoToolOverrideRegistration {\n assertNonEmpty(claim.source, 'source');\n if (claim.tools.length === 0) throw new Error('Po tool override tools must not be empty.');\n for (const tool of claim.tools) assertNonEmpty(tool, 'tool');\n\n const tools = Object.freeze([...new Set(claim.tools)]);\n if (tools.some((tool) => owners.has(tool))) {\n return Object.freeze({ granted: false, tools, dispose: (): void => undefined });\n }\n\n const stored: StoredClaim = Object.freeze({ source: claim.source, tools });\n for (const tool of tools) owners.set(tool, stored);\n\n let disposed = false;\n return Object.freeze({\n granted: true,\n tools,\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const tool of tools) {\n if (owners.get(tool) === stored) owners.delete(tool);\n }\n },\n });\n },\n owner(tool: string): string | undefined {\n return owners.get(tool)?.source;\n },\n });\n}\n"],"mappings":";AAWA,SAAS,eAAe,OAAe,OAAqB;CAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,oBAAoB,MAAM,oBAAoB;AAC/F;;AAGA,SAAgB,6BAA6B,YAA4C;CACvF,IAAI,CAAC,YAAY,MAAM,IAAI,MAAM,iDAAiD;CAElF,MAAM,yBAAS,IAAI,IAAyB;CAC5C,OAAO,OAAO,OAAO;EACnB;EACA,MAAM,OAAwD;GAC5D,eAAe,MAAM,QAAQ,QAAQ;GACrC,IAAI,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,2CAA2C;GACzF,KAAK,MAAM,QAAQ,MAAM,OAAO,eAAe,MAAM,MAAM;GAE3D,MAAM,QAAQ,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC;GACrD,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,GACvC,OAAO,OAAO,OAAO;IAAE,SAAS;IAAO;IAAO,eAAqB,KAAA;GAAU,CAAC;GAGhF,MAAM,SAAsB,OAAO,OAAO;IAAE,QAAQ,MAAM;IAAQ;GAAM,CAAC;GACzE,KAAK,MAAM,QAAQ,OAAO,OAAO,IAAI,MAAM,MAAM;GAEjD,IAAI,WAAW;GACf,OAAO,OAAO,OAAO;IACnB,SAAS;IACT;IACA,UAAgB;KACd,IAAI,UAAU;KACd,WAAW;KACX,KAAK,MAAM,QAAQ,OACjB,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ,OAAO,OAAO,IAAI;IAEvD;GACF,CAAC;EACH;EACA,MAAM,MAAkC;GACtC,OAAO,OAAO,IAAI,IAAI,CAAC,EAAE;EAC3B;CACF,CAAC;AACH"}
@@ -0,0 +1,17 @@
1
+ //#region src/services/toolPrompt/index.d.ts
2
+ /**
3
+ * The system-prompt block describing the tools a session currently exposes.
4
+ *
5
+ * Pi's CLI builds this from each tool's `promptSnippet` and `promptGuidelines`.
6
+ * The headless host does not run that builder, so a tool's guidance reached the
7
+ * cost estimate in `toolCost` but never the model. This renders the same two
8
+ * sections, in Pi's shape, from whatever the host has just applied.
9
+ */
10
+ export interface ToolPromptEntry {
11
+ readonly name: string;
12
+ /** One line describing the tool. Pi omits a tool without one, and so does this. */
13
+ readonly promptSnippet?: string;
14
+ readonly promptGuidelines?: readonly string[];
15
+ }
16
+ //#endregion
17
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/toolPrompt/index.ts"],"mappings":";;;;;;;;;iBASiB;WACN;;WAEA;WACA"}
@@ -27,8 +27,8 @@ function sameList(left, right) {
27
27
  if (left.length !== right.length) return false;
28
28
  return left.every((name, index) => name === right[index]);
29
29
  }
30
- function createDoomToolSurface(options) {
31
- const kernel = require_index.createDoomKernel({ activeLayers: options.activeLayers });
30
+ function createPoToolSurface(options) {
31
+ const kernel = require_index.createPoKernel({ activeLayers: options.activeLayers });
32
32
  let pushed;
33
33
  let disposed = false;
34
34
  let inspection = [];
@@ -129,6 +129,6 @@ function createDoomToolSurface(options) {
129
129
  });
130
130
  }
131
131
  //#endregion
132
- exports.createDoomToolSurface = createDoomToolSurface;
132
+ exports.createPoToolSurface = createPoToolSurface;
133
133
 
134
134
  //# sourceMappingURL=index.cjs.map