@agimon-ai/doompi-ui 0.0.1-alpha.7 → 0.0.1-alpha.70

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 (414) hide show
  1. package/README.md +89 -19
  2. package/dist/_virtual/_rolldown/runtime.cjs +1 -1
  3. package/dist/api-contracts.cjs +1 -0
  4. package/dist/api-contracts.d.cts +2 -0
  5. package/dist/api-contracts.d.mts +2 -0
  6. package/dist/api-contracts.mjs +1 -0
  7. package/dist/config-overlay.cjs +1 -0
  8. package/dist/config-overlay.d.cts +2 -0
  9. package/dist/config-overlay.d.mts +2 -0
  10. package/dist/config-overlay.mjs +1 -0
  11. package/dist/config.cjs +1 -2
  12. package/dist/config.d.cts +2 -5
  13. package/dist/config.d.mts +2 -5
  14. package/dist/config.mjs +1 -2
  15. package/dist/constants/header.cjs +2 -0
  16. package/dist/constants/header.cjs.map +1 -0
  17. package/dist/constants/header.mjs +2 -0
  18. package/dist/constants/header.mjs.map +1 -0
  19. package/dist/constants/ui.cjs +2 -0
  20. package/dist/constants/ui.cjs.map +1 -0
  21. package/dist/constants/ui.mjs +2 -0
  22. package/dist/constants/ui.mjs.map +1 -0
  23. package/dist/controllers/sessionInventory.cjs +4 -0
  24. package/dist/controllers/sessionInventory.cjs.map +1 -0
  25. package/dist/controllers/sessionInventory.mjs +4 -0
  26. package/dist/controllers/sessionInventory.mjs.map +1 -0
  27. package/dist/doom-editor.cjs +1 -0
  28. package/dist/doom-editor.d.cts +2 -0
  29. package/dist/doom-editor.d.mts +2 -0
  30. package/dist/doom-editor.mjs +1 -0
  31. package/dist/doom-footer.cjs +1 -0
  32. package/dist/doom-footer.d.cts +2 -0
  33. package/dist/doom-footer.d.mts +2 -0
  34. package/dist/doom-footer.mjs +1 -0
  35. package/dist/doom-header.cjs +1 -0
  36. package/dist/doom-header.d.cts +2 -0
  37. package/dist/doom-header.d.mts +2 -0
  38. package/dist/doom-header.mjs +1 -0
  39. package/dist/doom-overlay.cjs +1 -0
  40. package/dist/doom-overlay.d.cts +2 -0
  41. package/dist/doom-overlay.d.mts +2 -0
  42. package/dist/doom-overlay.mjs +1 -0
  43. package/dist/extensionName.cjs +1 -2
  44. package/dist/extensionName.d.cts +2 -16
  45. package/dist/extensionName.d.mts +2 -16
  46. package/dist/extensionName.mjs +1 -2
  47. package/dist/extensions/pi.cjs +1 -1
  48. package/dist/extensions/pi.cjs.map +1 -1
  49. package/dist/extensions/pi.d.cts +6 -2
  50. package/dist/extensions/pi.d.cts.map +1 -0
  51. package/dist/extensions/pi.d.mts +6 -2
  52. package/dist/extensions/pi.d.mts.map +1 -0
  53. package/dist/extensions/pi.mjs +1 -1
  54. package/dist/extensions/pi.mjs.map +1 -1
  55. package/dist/extensions/server.cjs +2 -0
  56. package/dist/extensions/server.cjs.map +1 -0
  57. package/dist/extensions/server.d.cts +5 -0
  58. package/dist/extensions/server.d.cts.map +1 -0
  59. package/dist/extensions/server.d.mts +5 -0
  60. package/dist/extensions/server.d.mts.map +1 -0
  61. package/dist/extensions/server.mjs +2 -0
  62. package/dist/extensions/server.mjs.map +1 -0
  63. package/dist/footer.cjs +1 -2
  64. package/dist/footer.d.cts +2 -5
  65. package/dist/footer.d.mts +2 -5
  66. package/dist/footer.mjs +1 -2
  67. package/dist/harnessMetadata.cjs +1 -2
  68. package/dist/harnessMetadata.d.cts +2 -21
  69. package/dist/harnessMetadata.d.mts +2 -21
  70. package/dist/harnessMetadata.mjs +1 -2
  71. package/dist/hashlineRendering.cjs +1 -0
  72. package/dist/hashlineRendering.d.cts +2 -0
  73. package/dist/hashlineRendering.d.mts +2 -0
  74. package/dist/hashlineRendering.mjs +1 -0
  75. package/dist/index.cjs +1 -1
  76. package/dist/index.d.cts +15 -25
  77. package/dist/index.d.mts +15 -25
  78. package/dist/index.mjs +1 -1
  79. package/dist/leader-hints.cjs +1 -0
  80. package/dist/leader-hints.d.cts +2 -0
  81. package/dist/leader-hints.d.mts +2 -0
  82. package/dist/leader-hints.mjs +1 -0
  83. package/dist/leader.cjs +0 -1
  84. package/dist/leader.d.cts +2 -2
  85. package/dist/leader.d.mts +2 -2
  86. package/dist/leader.mjs +1 -1
  87. package/dist/leaderRegistry.cjs +1 -2
  88. package/dist/leaderRegistry.d.cts +2 -58
  89. package/dist/leaderRegistry.d.mts +2 -58
  90. package/dist/leaderRegistry.mjs +1 -2
  91. package/dist/logSinkTelemetry.cjs +1 -2
  92. package/dist/logSinkTelemetry.d.cts +2 -29
  93. package/dist/logSinkTelemetry.d.mts +2 -29
  94. package/dist/logSinkTelemetry.mjs +1 -2
  95. package/dist/matrix-picker.cjs +1 -0
  96. package/dist/matrix-picker.d.cts +2 -0
  97. package/dist/matrix-picker.d.mts +2 -0
  98. package/dist/matrix-picker.mjs +1 -0
  99. package/dist/models/uiState.cjs +2 -0
  100. package/dist/models/uiState.cjs.map +1 -0
  101. package/dist/models/uiState.d.cts +39 -0
  102. package/dist/models/uiState.d.cts.map +1 -0
  103. package/dist/models/uiState.d.mts +39 -0
  104. package/dist/models/uiState.d.mts.map +1 -0
  105. package/dist/models/uiState.mjs +2 -0
  106. package/dist/models/uiState.mjs.map +1 -0
  107. package/dist/rendering.cjs +1 -2
  108. package/dist/rendering.d.cts +4 -11
  109. package/dist/rendering.d.mts +4 -11
  110. package/dist/rendering.mjs +1 -2
  111. package/dist/schemas/apiContracts.cjs +2 -0
  112. package/dist/schemas/apiContracts.cjs.map +1 -0
  113. package/dist/schemas/apiContracts.d.cts +53 -0
  114. package/dist/schemas/apiContracts.d.cts.map +1 -0
  115. package/dist/schemas/apiContracts.d.mts +53 -0
  116. package/dist/schemas/apiContracts.d.mts.map +1 -0
  117. package/dist/schemas/apiContracts.mjs +2 -0
  118. package/dist/schemas/apiContracts.mjs.map +1 -0
  119. package/dist/services/extensionSource/index.cjs +2 -0
  120. package/dist/services/extensionSource/index.cjs.map +1 -0
  121. package/dist/services/extensionSource/index.d.cts +25 -0
  122. package/dist/services/extensionSource/index.d.cts.map +1 -0
  123. package/dist/services/extensionSource/index.d.mts +25 -0
  124. package/dist/services/extensionSource/index.d.mts.map +1 -0
  125. package/dist/services/extensionSource/index.mjs +2 -0
  126. package/dist/services/extensionSource/index.mjs.map +1 -0
  127. package/dist/services/leaderRegistry/index.cjs +2 -0
  128. package/dist/services/leaderRegistry/index.cjs.map +1 -0
  129. package/dist/services/leaderRegistry/index.d.cts +58 -0
  130. package/dist/services/leaderRegistry/index.d.cts.map +1 -0
  131. package/dist/services/leaderRegistry/index.d.mts +58 -0
  132. package/dist/services/leaderRegistry/index.d.mts.map +1 -0
  133. package/dist/services/leaderRegistry/index.mjs +2 -0
  134. package/dist/services/leaderRegistry/index.mjs.map +1 -0
  135. package/dist/services/sessionToolInventory/index.cjs +2 -0
  136. package/dist/services/sessionToolInventory/index.cjs.map +1 -0
  137. package/dist/services/sessionToolInventory/index.mjs +2 -0
  138. package/dist/services/sessionToolInventory/index.mjs.map +1 -0
  139. package/dist/services/telemetry/index.cjs +2 -0
  140. package/dist/services/telemetry/index.cjs.map +1 -0
  141. package/dist/services/telemetry/index.d.cts +28 -0
  142. package/dist/services/telemetry/index.d.cts.map +1 -0
  143. package/dist/services/telemetry/index.d.mts +28 -0
  144. package/dist/services/telemetry/index.d.mts.map +1 -0
  145. package/dist/services/telemetry/index.mjs +2 -0
  146. package/dist/services/telemetry/index.mjs.map +1 -0
  147. package/dist/services/uiHub/index.cjs +2 -0
  148. package/dist/services/uiHub/index.cjs.map +1 -0
  149. package/dist/services/uiHub/index.mjs +2 -0
  150. package/dist/services/uiHub/index.mjs.map +1 -0
  151. package/dist/skills.cjs +1 -1
  152. package/dist/skills.d.cts +2 -1
  153. package/dist/skills.d.mts +2 -1
  154. package/dist/skills.mjs +1 -1
  155. package/dist/theme.cjs +1 -2
  156. package/dist/theme.d.cts +2 -95
  157. package/dist/theme.d.mts +2 -95
  158. package/dist/theme.mjs +1 -2
  159. package/dist/toolChrome.cjs +1 -0
  160. package/dist/toolChrome.d.cts +2 -0
  161. package/dist/toolChrome.d.mts +2 -0
  162. package/dist/toolChrome.mjs +1 -0
  163. package/dist/toolInventory.cjs +1 -2
  164. package/dist/toolInventory.d.cts +2 -40
  165. package/dist/toolInventory.d.mts +2 -40
  166. package/dist/toolInventory.mjs +1 -2
  167. package/dist/tools-overlay.cjs +1 -0
  168. package/dist/tools-overlay.d.cts +2 -0
  169. package/dist/tools-overlay.d.mts +2 -0
  170. package/dist/tools-overlay.mjs +1 -0
  171. package/dist/tui/builtinToolRender.cjs +14 -0
  172. package/dist/tui/builtinToolRender.cjs.map +1 -0
  173. package/dist/tui/builtinToolRender.mjs +14 -0
  174. package/dist/tui/builtinToolRender.mjs.map +1 -0
  175. package/dist/tui/builtinTools.cjs +2 -0
  176. package/dist/tui/builtinTools.cjs.map +1 -0
  177. package/dist/tui/builtinTools.mjs +2 -0
  178. package/dist/tui/builtinTools.mjs.map +1 -0
  179. package/dist/tui/codeGutter.cjs +2 -0
  180. package/dist/tui/codeGutter.cjs.map +1 -0
  181. package/dist/tui/codeGutter.d.cts +8 -0
  182. package/dist/tui/codeGutter.d.cts.map +1 -0
  183. package/dist/tui/codeGutter.d.mts +8 -0
  184. package/dist/tui/codeGutter.d.mts.map +1 -0
  185. package/dist/tui/codeGutter.mjs +2 -0
  186. package/dist/tui/codeGutter.mjs.map +1 -0
  187. package/dist/tui/configOverlay.cjs +0 -0
  188. package/dist/tui/configOverlay.cjs.map +1 -0
  189. package/dist/{components → tui}/configOverlay.d.cts +0 -0
  190. package/dist/tui/configOverlay.d.cts.map +1 -0
  191. package/dist/{components → tui}/configOverlay.d.mts +0 -0
  192. package/dist/tui/configOverlay.d.mts.map +1 -0
  193. package/dist/tui/configOverlay.mjs +0 -0
  194. package/dist/tui/configOverlay.mjs.map +1 -0
  195. package/dist/tui/diffRender.cjs +4 -0
  196. package/dist/tui/diffRender.cjs.map +1 -0
  197. package/dist/tui/diffRender.d.cts +8 -0
  198. package/dist/tui/diffRender.d.cts.map +1 -0
  199. package/dist/tui/diffRender.d.mts +8 -0
  200. package/dist/tui/diffRender.d.mts.map +1 -0
  201. package/dist/tui/diffRender.mjs +4 -0
  202. package/dist/tui/diffRender.mjs.map +1 -0
  203. package/dist/tui/doomEditor.cjs +2 -0
  204. package/dist/tui/doomEditor.cjs.map +1 -0
  205. package/dist/{components → tui}/doomEditor.d.cts +9 -6
  206. package/dist/tui/doomEditor.d.cts.map +1 -0
  207. package/dist/{components → tui}/doomEditor.d.mts +11 -8
  208. package/dist/tui/doomEditor.d.mts.map +1 -0
  209. package/dist/tui/doomEditor.mjs +2 -0
  210. package/dist/tui/doomEditor.mjs.map +1 -0
  211. package/dist/tui/doomFooter.cjs +2 -0
  212. package/dist/tui/doomFooter.cjs.map +1 -0
  213. package/dist/{components → tui}/doomFooter.d.cts +18 -6
  214. package/dist/tui/doomFooter.d.cts.map +1 -0
  215. package/dist/{components → tui}/doomFooter.d.mts +19 -7
  216. package/dist/tui/doomFooter.d.mts.map +1 -0
  217. package/dist/tui/doomFooter.mjs +2 -0
  218. package/dist/tui/doomFooter.mjs.map +1 -0
  219. package/dist/tui/doomHeader.cjs +2 -0
  220. package/dist/tui/doomHeader.cjs.map +1 -0
  221. package/dist/{components → tui}/doomHeader.d.cts +3 -4
  222. package/dist/tui/doomHeader.d.cts.map +1 -0
  223. package/dist/{components → tui}/doomHeader.d.mts +4 -5
  224. package/dist/tui/doomHeader.d.mts.map +1 -0
  225. package/dist/tui/doomHeader.mjs +2 -0
  226. package/dist/tui/doomHeader.mjs.map +1 -0
  227. package/dist/tui/doomOverlay.cjs +2 -0
  228. package/dist/tui/doomOverlay.cjs.map +1 -0
  229. package/dist/{components → tui}/doomOverlay.d.cts +14 -10
  230. package/dist/tui/doomOverlay.d.cts.map +1 -0
  231. package/dist/{components → tui}/doomOverlay.d.mts +15 -11
  232. package/dist/tui/doomOverlay.d.mts.map +1 -0
  233. package/dist/tui/doomOverlay.mjs +2 -0
  234. package/dist/tui/doomOverlay.mjs.map +1 -0
  235. package/dist/tui/hashlineRendering.cjs +8 -0
  236. package/dist/tui/hashlineRendering.cjs.map +1 -0
  237. package/dist/tui/hashlineRendering.d.cts +20 -0
  238. package/dist/tui/hashlineRendering.d.cts.map +1 -0
  239. package/dist/tui/hashlineRendering.d.mts +20 -0
  240. package/dist/tui/hashlineRendering.d.mts.map +1 -0
  241. package/dist/tui/hashlineRendering.mjs +8 -0
  242. package/dist/tui/hashlineRendering.mjs.map +1 -0
  243. package/dist/tui/leaderHints.cjs +2 -0
  244. package/dist/tui/leaderHints.cjs.map +1 -0
  245. package/dist/{components → tui}/leaderHints.d.cts +18 -6
  246. package/dist/tui/leaderHints.d.cts.map +1 -0
  247. package/dist/{components → tui}/leaderHints.d.mts +19 -7
  248. package/dist/tui/leaderHints.d.mts.map +1 -0
  249. package/dist/tui/leaderHints.mjs +2 -0
  250. package/dist/tui/leaderHints.mjs.map +1 -0
  251. package/dist/tui/matrixPicker.cjs +2 -0
  252. package/dist/tui/matrixPicker.cjs.map +1 -0
  253. package/dist/tui/matrixPicker.d.cts +53 -0
  254. package/dist/tui/matrixPicker.d.cts.map +1 -0
  255. package/dist/tui/matrixPicker.d.mts +53 -0
  256. package/dist/tui/matrixPicker.d.mts.map +1 -0
  257. package/dist/tui/matrixPicker.mjs +2 -0
  258. package/dist/tui/matrixPicker.mjs.map +1 -0
  259. package/dist/tui/rendering.cjs +2 -0
  260. package/dist/tui/rendering.cjs.map +1 -0
  261. package/dist/tui/rendering.d.cts +15 -0
  262. package/dist/tui/rendering.d.cts.map +1 -0
  263. package/dist/tui/rendering.d.mts +15 -0
  264. package/dist/tui/rendering.d.mts.map +1 -0
  265. package/dist/tui/rendering.mjs +2 -0
  266. package/dist/tui/rendering.mjs.map +1 -0
  267. package/dist/tui/theme.cjs +2 -0
  268. package/dist/tui/theme.cjs.map +1 -0
  269. package/dist/tui/theme.d.cts +102 -0
  270. package/dist/tui/theme.d.cts.map +1 -0
  271. package/dist/tui/theme.d.mts +102 -0
  272. package/dist/tui/theme.d.mts.map +1 -0
  273. package/dist/tui/theme.mjs +2 -0
  274. package/dist/tui/theme.mjs.map +1 -0
  275. package/dist/tui/toolChrome.cjs +2 -0
  276. package/dist/tui/toolChrome.cjs.map +1 -0
  277. package/dist/tui/toolChrome.d.cts +43 -0
  278. package/dist/tui/toolChrome.d.cts.map +1 -0
  279. package/dist/tui/toolChrome.d.mts +43 -0
  280. package/dist/tui/toolChrome.d.mts.map +1 -0
  281. package/dist/tui/toolChrome.mjs +2 -0
  282. package/dist/tui/toolChrome.mjs.map +1 -0
  283. package/dist/tui/toolsOverlay.cjs +2 -0
  284. package/dist/tui/toolsOverlay.cjs.map +1 -0
  285. package/dist/{components → tui}/toolsOverlay.d.cts +4 -5
  286. package/dist/tui/toolsOverlay.d.cts.map +1 -0
  287. package/dist/{components → tui}/toolsOverlay.d.mts +4 -5
  288. package/dist/tui/toolsOverlay.d.mts.map +1 -0
  289. package/dist/tui/toolsOverlay.mjs +2 -0
  290. package/dist/tui/toolsOverlay.mjs.map +1 -0
  291. package/dist/tui/uiRuntime.cjs +2 -0
  292. package/dist/tui/uiRuntime.cjs.map +1 -0
  293. package/dist/tui/uiRuntime.mjs +2 -0
  294. package/dist/tui/uiRuntime.mjs.map +1 -0
  295. package/dist/types/harnessMetadata.cjs +2 -0
  296. package/dist/types/harnessMetadata.cjs.map +1 -0
  297. package/dist/types/harnessMetadata.d.cts +20 -0
  298. package/dist/types/harnessMetadata.d.cts.map +1 -0
  299. package/dist/types/harnessMetadata.d.mts +20 -0
  300. package/dist/types/harnessMetadata.d.mts.map +1 -0
  301. package/dist/types/harnessMetadata.mjs +2 -0
  302. package/dist/types/harnessMetadata.mjs.map +1 -0
  303. package/dist/uiState.cjs +1 -2
  304. package/dist/uiState.d.cts +2 -37
  305. package/dist/uiState.d.mts +2 -37
  306. package/dist/uiState.mjs +1 -2
  307. package/package.json +131 -59
  308. package/src/extensions/web.ts +22 -0
  309. package/src/web/components/FindToolMessage.tsx +33 -0
  310. package/src/web/components/ListingBody.tsx +58 -0
  311. package/src/web/components/LsToolMessage.tsx +33 -0
  312. package/src/web/components/WriteToolMessage.tsx +99 -0
  313. package/src/web/lib/builtinToolView.ts +127 -0
  314. package/src/web/tsconfig.json +23 -0
  315. package/themes/doom-pi-dark.json +32 -30
  316. package/dist/_virtual/_rolldown/runtime.mjs +0 -1
  317. package/dist/components/configOverlay.cjs +0 -0
  318. package/dist/components/configOverlay.cjs.map +0 -1
  319. package/dist/components/configOverlay.d.cts.map +0 -1
  320. package/dist/components/configOverlay.d.mts.map +0 -1
  321. package/dist/components/configOverlay.mjs +0 -0
  322. package/dist/components/configOverlay.mjs.map +0 -1
  323. package/dist/components/doomEditor.cjs +0 -2
  324. package/dist/components/doomEditor.cjs.map +0 -1
  325. package/dist/components/doomEditor.d.cts.map +0 -1
  326. package/dist/components/doomEditor.d.mts.map +0 -1
  327. package/dist/components/doomEditor.mjs +0 -2
  328. package/dist/components/doomEditor.mjs.map +0 -1
  329. package/dist/components/doomFooter.cjs +0 -2
  330. package/dist/components/doomFooter.cjs.map +0 -1
  331. package/dist/components/doomFooter.d.cts.map +0 -1
  332. package/dist/components/doomFooter.d.mts.map +0 -1
  333. package/dist/components/doomFooter.mjs +0 -2
  334. package/dist/components/doomFooter.mjs.map +0 -1
  335. package/dist/components/doomHeader.cjs +0 -2
  336. package/dist/components/doomHeader.cjs.map +0 -1
  337. package/dist/components/doomHeader.d.cts.map +0 -1
  338. package/dist/components/doomHeader.d.mts.map +0 -1
  339. package/dist/components/doomHeader.mjs +0 -2
  340. package/dist/components/doomHeader.mjs.map +0 -1
  341. package/dist/components/doomOverlay.cjs +0 -2
  342. package/dist/components/doomOverlay.cjs.map +0 -1
  343. package/dist/components/doomOverlay.d.cts.map +0 -1
  344. package/dist/components/doomOverlay.d.mts.map +0 -1
  345. package/dist/components/doomOverlay.mjs +0 -2
  346. package/dist/components/doomOverlay.mjs.map +0 -1
  347. package/dist/components/leaderHints.cjs +0 -2
  348. package/dist/components/leaderHints.cjs.map +0 -1
  349. package/dist/components/leaderHints.d.cts.map +0 -1
  350. package/dist/components/leaderHints.d.mts.map +0 -1
  351. package/dist/components/leaderHints.mjs +0 -2
  352. package/dist/components/leaderHints.mjs.map +0 -1
  353. package/dist/components/toolsOverlay.cjs +0 -2
  354. package/dist/components/toolsOverlay.cjs.map +0 -1
  355. package/dist/components/toolsOverlay.d.cts.map +0 -1
  356. package/dist/components/toolsOverlay.d.mts.map +0 -1
  357. package/dist/components/toolsOverlay.mjs +0 -2
  358. package/dist/components/toolsOverlay.mjs.map +0 -1
  359. package/dist/config.cjs.map +0 -1
  360. package/dist/config.d.cts.map +0 -1
  361. package/dist/config.d.mts.map +0 -1
  362. package/dist/config.mjs.map +0 -1
  363. package/dist/extension.cjs +0 -2
  364. package/dist/extension.cjs.map +0 -1
  365. package/dist/extension.d.cts +0 -7
  366. package/dist/extension.d.cts.map +0 -1
  367. package/dist/extension.d.mts +0 -7
  368. package/dist/extension.d.mts.map +0 -1
  369. package/dist/extension.mjs +0 -2
  370. package/dist/extension.mjs.map +0 -1
  371. package/dist/extensionName.cjs.map +0 -1
  372. package/dist/extensionName.d.cts.map +0 -1
  373. package/dist/extensionName.d.mts.map +0 -1
  374. package/dist/extensionName.mjs.map +0 -1
  375. package/dist/footer.cjs.map +0 -1
  376. package/dist/footer.d.cts.map +0 -1
  377. package/dist/footer.d.mts.map +0 -1
  378. package/dist/footer.mjs.map +0 -1
  379. package/dist/harnessMetadata.cjs.map +0 -1
  380. package/dist/harnessMetadata.d.cts.map +0 -1
  381. package/dist/harnessMetadata.d.mts.map +0 -1
  382. package/dist/harnessMetadata.mjs.map +0 -1
  383. package/dist/leaderRegistry.cjs.map +0 -1
  384. package/dist/leaderRegistry.d.cts.map +0 -1
  385. package/dist/leaderRegistry.d.mts.map +0 -1
  386. package/dist/leaderRegistry.mjs.map +0 -1
  387. package/dist/logSinkTelemetry.cjs.map +0 -1
  388. package/dist/logSinkTelemetry.d.cts.map +0 -1
  389. package/dist/logSinkTelemetry.d.mts.map +0 -1
  390. package/dist/logSinkTelemetry.mjs.map +0 -1
  391. package/dist/mode.cjs +0 -2
  392. package/dist/mode.cjs.map +0 -1
  393. package/dist/mode.d.cts +0 -5
  394. package/dist/mode.d.cts.map +0 -1
  395. package/dist/mode.d.mts +0 -5
  396. package/dist/mode.d.mts.map +0 -1
  397. package/dist/mode.mjs +0 -2
  398. package/dist/mode.mjs.map +0 -1
  399. package/dist/rendering.cjs.map +0 -1
  400. package/dist/rendering.d.cts.map +0 -1
  401. package/dist/rendering.d.mts.map +0 -1
  402. package/dist/rendering.mjs.map +0 -1
  403. package/dist/theme.cjs.map +0 -1
  404. package/dist/theme.d.cts.map +0 -1
  405. package/dist/theme.d.mts.map +0 -1
  406. package/dist/theme.mjs.map +0 -1
  407. package/dist/toolInventory.cjs.map +0 -1
  408. package/dist/toolInventory.d.cts.map +0 -1
  409. package/dist/toolInventory.d.mts.map +0 -1
  410. package/dist/toolInventory.mjs.map +0 -1
  411. package/dist/uiState.cjs.map +0 -1
  412. package/dist/uiState.d.cts.map +0 -1
  413. package/dist/uiState.d.mts.map +0 -1
  414. package/dist/uiState.mjs.map +0 -1
package/README.md CHANGED
@@ -1,40 +1,110 @@
1
1
  # @agimon-ai/doompi-ui
2
2
 
3
- Doom-inspired interactive UI extension for Pi.
3
+ DoomPi's shared terminal interface, Leader Space host, theme, overlays, and UI registries.
4
4
 
5
- Owns the leader state machine, rendering, conflict handling, and the core key bindings.
6
- Space opens the leader only when the draft is empty, so a half-written prompt is never lost
7
- to a keystroke.
5
+ The [DoomPi distribution](https://www.npmjs.com/package/@agimon-ai/doompi) loads this package as
6
+ core. Extension authors can depend on its public contracts without adopting the full distribution.
8
7
 
9
- Part of [Doompi](https://www.npmjs.com/package/@agimon-ai/doompi), a coding agent that loads
10
- only the skills and tools you name. This package is composed by Doompi and is not usually
11
- installed on its own.
8
+ > **Alpha:** UI and contribution contracts may change between releases.
9
+
10
+ ## Requirements
11
+
12
+ - Node.js 22.19.0 or newer
13
+ - Pi 0.85.0
14
+ - Pi TUI 0.85.0
12
15
 
13
16
  ## Install
14
17
 
18
+ To load the UI directly in Pi:
19
+
15
20
  ```bash
16
- npm install @agimon-ai/doompi-ui
21
+ pi install npm:@agimon-ai/doompi-ui
17
22
  ```
18
23
 
19
- ## How it loads
24
+ DoomPi users should not add it to a layer; the distribution loads it before layer contributions.
25
+
26
+ ## Commands and keys
27
+
28
+ | Input | Behavior |
29
+ | ------------ | ---------------------------------------------------------------------------------- |
30
+ | `Ctrl+Space` | Opens Leader Space from anywhere in the editor |
31
+ | `SPC` | Opens Leader Space only when the current draft is empty; otherwise inserts a space |
32
+ | `/tools` | Opens the current tool and MCP inventory |
33
+ | `/config` | Opens settings contributed by active extensions |
34
+
35
+ The registry rejects or diagnoses conflicting Leader contributions instead of silently replacing
36
+ an existing binding. Diagnostics are recorded through telemetry and shown as TUI warnings when a
37
+ UI is attached.
38
+
39
+ ## Contribute to Leader Space
40
+
41
+ ```ts
42
+ import { DOOM_UI_HUB_SERVICE, requireDoomUiHub } from '@agimon-ai/doompi-core/ui-hub';
43
+ import type { Context } from '@deepseek-ai/cordis';
44
+
45
+ export function reviewPlugin(ctx: Context): void {
46
+ ctx.inject([DOOM_UI_HUB_SERVICE], (uiContext) => {
47
+ const contribution = requireDoomUiHub(uiContext).registerLeader({
48
+ source: '@example/review-extension',
49
+ bindings: [
50
+ {
51
+ id: 'review.open',
52
+ path: [{ key: 'r', label: 'review', detail: 'open review tools' }],
53
+ command: { name: 'review' },
54
+ },
55
+ ],
56
+ });
57
+ return () => contribution.dispose();
58
+ });
59
+ }
60
+ ```
61
+
62
+ Mount this plugin beneath the shared Doom Cordis host. Cordis retracts the registration when either
63
+ the contributor or UI provider disappears, so reloads cannot retain stale bindings.
64
+
65
+ ## TUI and headless sessions
66
+
67
+ The editor, header, footer, overlays, Leader menu, and notifications require an interactive TUI.
68
+ The underlying typed contribution registries can still be installed and queried in headless
69
+ sessions, but UI-only commands have no panel to render. Provide a tool, RPC, or CLI route when a
70
+ capability must also work headlessly.
20
71
 
21
- Doompi loads this unconditionally. It is core, not a layer, so it does not appear in
22
- `.doom/modes.yaml`: making it optional would only create broken configurations.
72
+ ## Extension lifecycle
23
73
 
24
- Extension entry: `@agimon-ai/doompi-ui/extensions/pi`
74
+ `src/extensions/pi.ts` declares the Pi plugin, and `src/extensions/server.ts` declares the session inventory plugin. The browser entry is `src/extensions/web.ts`. Public modules stay flat under `src/exports`; Component exports use flat kebab-case subpaths such as `@agimon-ai/doompi-ui/doom-overlay` and `@agimon-ai/doompi-ui/matrix-picker`.
25
75
 
26
- ## Leader
76
+ The Pi helper installs the UI hub service before commands, native event handlers, and tool declarations. Optional minor-mode catalog bindings follow their provider lifetime. `onStop` clears the shell and shuts down telemetry; idempotent `onDispose` also handles registration failure. The TUI runtime owns presentation callbacks, `models/uiState.ts` owns state, and each service has its own `services/<name>/index.ts` entry.
27
77
 
28
- `SPC e c` opens the config panel, once the extension is loaded.
78
+ Native builtin tools use `definePiTool` to retain their schema and renderer detail types. Composed sessions install their renderers directly; standalone sessions install each replacement only after its override claim is granted.
29
79
 
30
- ## Notes
80
+ ## Theme
31
81
 
32
- Other extensions contribute bindings through the public `@agimon-ai/doompi-ui/leader` API
33
- rather than hardcoding chords.
82
+ The package publishes `@agimon-ai/doompi-ui/themes/doom-pi-dark.json`. DoomPi synchronizes that
83
+ resource and selects it by default. Set `DOOMPI_THEME` to select another available Pi theme for the
84
+ UI extension.
34
85
 
35
- ## Entry points
86
+ ## Public API
87
+
88
+ Declared exports cover UI state, rendering, tool chrome, header/footer/editor components,
89
+ configuration and tools overlays, telemetry integration, and theme helpers. Contribution schemas
90
+ and the direct UI hub service live in extension contracts. Use these exports rather than importing
91
+ generated `dist` paths.
92
+
93
+ ```ts
94
+ import { DOOM_UI_HUB_SERVICE } from '@agimon-ai/doompi-core/ui-hub';
95
+ import { DEFAULT_THEME_NAME } from '@agimon-ai/doompi-ui/theme';
96
+ ```
97
+
98
+ ## Development
99
+
100
+ ```bash
101
+ pnpm build
102
+ pnpm typecheck
103
+ pnpm test
104
+ pnpm lint
105
+ ```
36
106
 
37
- 24 subpaths are declared in the `exports` field of `package.json`.
107
+ Maintained by [Agimon](https://agimon.ai/about).
38
108
 
39
109
  ## License
40
110
 
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(e,t,n)=>(s(e,t,`default`),n&&s(n,t,`default`)),l=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));exports.__exportAll=o,exports.__reExport=c,exports.__toESM=l;
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));exports.__toESM=s;
@@ -0,0 +1 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./schemas/apiContracts.cjs");exports.apiContracts=e.apiContracts,exports.default=e.apiContracts;
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./schemas/apiContracts.cjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./schemas/apiContracts.mjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1 @@
1
+ import{apiContracts as e}from"./schemas/apiContracts.mjs";export{e as apiContracts,e as default};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./tui/configOverlay.cjs");exports.ConfigOverlayComponent=e.ConfigOverlayComponent,exports.openConfigOverlay=e.openConfigOverlay;
@@ -0,0 +1,2 @@
1
+ import { ConfigOverlayComponent, DoomConfigStoreView, openConfigOverlay } from "./tui/configOverlay.cjs";
2
+ export { ConfigOverlayComponent, type DoomConfigStoreView, openConfigOverlay };
@@ -0,0 +1,2 @@
1
+ import { ConfigOverlayComponent, DoomConfigStoreView, openConfigOverlay } from "./tui/configOverlay.mjs";
2
+ export { ConfigOverlayComponent, type DoomConfigStoreView, openConfigOverlay };
@@ -0,0 +1 @@
1
+ import{ConfigOverlayComponent as e,openConfigOverlay as t}from"./tui/configOverlay.mjs";export{e as ConfigOverlayComponent,t as openConfigOverlay};
package/dist/config.cjs CHANGED
@@ -1,2 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./_virtual/_rolldown/runtime.cjs");var t=e.__exportAll({});e.__reExport(t,require("@agimon-ai/doompi-extension-contracts/config")),Object.defineProperty(exports,"config_exports",{enumerable:!0,get:function(){return t}});var n=require("@agimon-ai/doompi-extension-contracts/config");Object.keys(n).forEach(function(e){e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return n[e]}})});
2
- //# sourceMappingURL=config.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@agimon-ai/doompi-core/config");Object.defineProperty(exports,"CONFIG_ACTION",{enumerable:!0,get:function(){return e.CONFIG_ACTION}}),Object.defineProperty(exports,"ConfigActionSchema",{enumerable:!0,get:function(){return e.ConfigActionSchema}}),Object.defineProperty(exports,"ConfigChoiceSchema",{enumerable:!0,get:function(){return e.ConfigChoiceSchema}}),Object.defineProperty(exports,"ConfigFieldKindSchema",{enumerable:!0,get:function(){return e.ConfigFieldKindSchema}}),Object.defineProperty(exports,"ConfigFieldSchema",{enumerable:!0,get:function(){return e.ConfigFieldSchema}}),Object.defineProperty(exports,"ConfigProgressSchema",{enumerable:!0,get:function(){return e.ConfigProgressSchema}}),Object.defineProperty(exports,"ConfigSectionSchema",{enumerable:!0,get:function(){return e.ConfigSectionSchema}}),Object.defineProperty(exports,"ConfigSourceSchema",{enumerable:!0,get:function(){return e.ConfigSourceSchema}}),Object.defineProperty(exports,"ConfigStatusSchema",{enumerable:!0,get:function(){return e.ConfigStatusSchema}}),Object.defineProperty(exports,"ConfigStepSchema",{enumerable:!0,get:function(){return e.ConfigStepSchema}});
package/dist/config.d.cts CHANGED
@@ -1,5 +1,2 @@
1
- export * from "@agimon-ai/doompi-extension-contracts/config";
2
- import * as import__agimon_ai_doompi_extension_contracts_config from "@agimon-ai/doompi-extension-contracts/config";
3
- //#endregion
4
- export { import__agimon_ai_doompi_extension_contracts_config as config_d_exports };
5
- //# sourceMappingURL=config.d.cts.map
1
+ import { CONFIG_ACTION, ConfigAction, ConfigActionSchema, ConfigChoice, ConfigChoiceSchema, ConfigField, ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, ConfigProgress, ConfigProgressSchema, ConfigSection, ConfigSectionSchema, ConfigSnapshot, ConfigSourceRef, ConfigSourceSchema, ConfigStatus, ConfigStatusSchema, ConfigStep, ConfigStepSchema, DoomConfigActionInput, DoomConfigContributionHandle, DoomConfigContributionOptions, DoomConfigInvocation, DoomConfigSectionView, DoomExtensionContext } from "@agimon-ai/doompi-core/config";
2
+ export { CONFIG_ACTION, type ConfigAction, ConfigActionSchema, type ConfigChoice, ConfigChoiceSchema, type ConfigField, type ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, type ConfigProgress, ConfigProgressSchema, type ConfigSection, ConfigSectionSchema, type ConfigSnapshot, type ConfigSourceRef, ConfigSourceSchema, type ConfigStatus, ConfigStatusSchema, type ConfigStep, ConfigStepSchema, type DoomConfigActionInput, type DoomConfigContributionHandle, type DoomConfigContributionOptions, type DoomConfigInvocation, type DoomConfigSectionView, type DoomExtensionContext };
package/dist/config.d.mts CHANGED
@@ -1,5 +1,2 @@
1
- export * from "@agimon-ai/doompi-extension-contracts/config";
2
- import * as import__agimon_ai_doompi_extension_contracts_config from "@agimon-ai/doompi-extension-contracts/config";
3
- //#endregion
4
- export { import__agimon_ai_doompi_extension_contracts_config as config_d_exports };
5
- //# sourceMappingURL=config.d.mts.map
1
+ import { CONFIG_ACTION, ConfigAction, ConfigActionSchema, ConfigChoice, ConfigChoiceSchema, ConfigField, ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, ConfigProgress, ConfigProgressSchema, ConfigSection, ConfigSectionSchema, ConfigSnapshot, ConfigSourceRef, ConfigSourceSchema, ConfigStatus, ConfigStatusSchema, ConfigStep, ConfigStepSchema, DoomConfigActionInput, DoomConfigContributionHandle, DoomConfigContributionOptions, DoomConfigInvocation, DoomConfigSectionView, DoomExtensionContext } from "@agimon-ai/doompi-core/config";
2
+ export { CONFIG_ACTION, type ConfigAction, ConfigActionSchema, type ConfigChoice, ConfigChoiceSchema, type ConfigField, type ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, type ConfigProgress, ConfigProgressSchema, type ConfigSection, ConfigSectionSchema, type ConfigSnapshot, type ConfigSourceRef, ConfigSourceSchema, type ConfigStatus, ConfigStatusSchema, type ConfigStep, ConfigStepSchema, type DoomConfigActionInput, type DoomConfigContributionHandle, type DoomConfigContributionOptions, type DoomConfigInvocation, type DoomConfigSectionView, type DoomExtensionContext };
package/dist/config.mjs CHANGED
@@ -1,2 +1 @@
1
- import{__exportAll as e,__reExport as t}from"./_virtual/_rolldown/runtime.mjs";export*from"@agimon-ai/doompi-extension-contracts/config";var n=e({});import*as r from"@agimon-ai/doompi-extension-contracts/config";t(n,r);export{n as config_exports};
2
- //# sourceMappingURL=config.mjs.map
1
+ import{CONFIG_ACTION as e,ConfigActionSchema as t,ConfigChoiceSchema as n,ConfigFieldKindSchema as r,ConfigFieldSchema as i,ConfigProgressSchema as a,ConfigSectionSchema as o,ConfigSourceSchema as s,ConfigStatusSchema as c,ConfigStepSchema as l}from"@agimon-ai/doompi-core/config";export{e as CONFIG_ACTION,t as ConfigActionSchema,n as ConfigChoiceSchema,r as ConfigFieldKindSchema,i as ConfigFieldSchema,a as ConfigProgressSchema,o as ConfigSectionSchema,s as ConfigSourceSchema,c as ConfigStatusSchema,l as ConfigStepSchema};
@@ -0,0 +1,2 @@
1
+ exports.EMPTY_STATE_GUIDANCE=`Describe the work below. Pi keeps your existing config and session history.`;
2
+ //# sourceMappingURL=header.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.cjs","names":[],"sources":["../../src/constants/header.ts"],"sourcesContent":["export const EMPTY_STATE_GUIDANCE = 'Describe the work below. Pi keeps your existing config and session history.';\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ const e=`Describe the work below. Pi keeps your existing config and session history.`;export{e as EMPTY_STATE_GUIDANCE};
2
+ //# sourceMappingURL=header.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.mjs","names":[],"sources":["../../src/constants/header.ts"],"sourcesContent":["export const EMPTY_STATE_GUIDANCE = 'Describe the work below. Pi keeps your existing config and session history.';\n"],"mappings":"AAAA,MAAa,EAAuB"}
@@ -0,0 +1,2 @@
1
+ const e=`hotkeys`,t=[e];exports.BUILTIN_LEADER_COMMANDS=t,exports.CONFIG_COMMAND=`config`,exports.HOTKEYS_COMMAND=e,exports.INPUT_EVENT=`input`,exports.INTERACTIVE_INPUT_SOURCE=`interactive`,exports.LEADER_WIDGET_KEY=`doom-pi-leader`,exports.PACKAGE_SOURCE=`@agimon-ai/doompi-ui`,exports.SESSION_MESSAGE_ENTRY=`message`,exports.SESSION_START_EVENT=`session_start`,exports.THEME_ENVIRONMENT_KEY=`DOOMPI_THEME`,exports.TITLE_PREFIX=`doom-pi`,exports.TOOLS_COMMAND=`tools`,exports.WARNING_STYLE=`warning`,exports.WIDGET_PLACEMENT=`belowEditor`;
2
+ //# sourceMappingURL=ui.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.cjs","names":[],"sources":["../../src/constants/ui.ts"],"sourcesContent":["export const LEADER_WIDGET_KEY = 'doom-pi-leader';\nexport const TUI_MODE = 'tui';\nexport const WIDGET_PLACEMENT = 'belowEditor';\nexport const WARNING_STYLE = 'warning';\nexport const THEME_ENVIRONMENT_KEY = 'DOOMPI_THEME';\nexport const HOTKEYS_COMMAND = 'hotkeys';\nexport const TOOLS_COMMAND = 'tools';\nexport const CONFIG_COMMAND = 'config';\nexport const SESSION_START_EVENT = 'session_start';\nexport const SESSION_MESSAGE_ENTRY = 'message';\nexport const INPUT_EVENT = 'input';\nexport const INTERACTIVE_INPUT_SOURCE = 'interactive';\nexport const TITLE_MESSAGE_MAX_LENGTH = 64;\nexport const TITLE_PREFIX = 'doom-pi';\nexport const BUILTIN_LEADER_COMMANDS: readonly string[] = [HOTKEYS_COMMAND];\nexport const PACKAGE_SOURCE = '@agimon-ai/doompi-ui';\n"],"mappings":"AAAA,MAKa,EAAkB,UASlB,EAA6C,CAAC,CAAe"}
@@ -0,0 +1,2 @@
1
+ const e=`doom-pi-leader`,t=`belowEditor`,n=`warning`,r=`DOOMPI_THEME`,i=`hotkeys`,a=`tools`,o=`config`,s=`session_start`,c=`message`,l=`input`,u=`interactive`,d=`doom-pi`,f=[i],p=`@agimon-ai/doompi-ui`;export{f as BUILTIN_LEADER_COMMANDS,o as CONFIG_COMMAND,i as HOTKEYS_COMMAND,l as INPUT_EVENT,u as INTERACTIVE_INPUT_SOURCE,e as LEADER_WIDGET_KEY,p as PACKAGE_SOURCE,c as SESSION_MESSAGE_ENTRY,s as SESSION_START_EVENT,r as THEME_ENVIRONMENT_KEY,d as TITLE_PREFIX,a as TOOLS_COMMAND,n as WARNING_STYLE,t as WIDGET_PLACEMENT};
2
+ //# sourceMappingURL=ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.mjs","names":[],"sources":["../../src/constants/ui.ts"],"sourcesContent":["export const LEADER_WIDGET_KEY = 'doom-pi-leader';\nexport const TUI_MODE = 'tui';\nexport const WIDGET_PLACEMENT = 'belowEditor';\nexport const WARNING_STYLE = 'warning';\nexport const THEME_ENVIRONMENT_KEY = 'DOOMPI_THEME';\nexport const HOTKEYS_COMMAND = 'hotkeys';\nexport const TOOLS_COMMAND = 'tools';\nexport const CONFIG_COMMAND = 'config';\nexport const SESSION_START_EVENT = 'session_start';\nexport const SESSION_MESSAGE_ENTRY = 'message';\nexport const INPUT_EVENT = 'input';\nexport const INTERACTIVE_INPUT_SOURCE = 'interactive';\nexport const TITLE_MESSAGE_MAX_LENGTH = 64;\nexport const TITLE_PREFIX = 'doom-pi';\nexport const BUILTIN_LEADER_COMMANDS: readonly string[] = [HOTKEYS_COMMAND];\nexport const PACKAGE_SOURCE = '@agimon-ai/doompi-ui';\n"],"mappings":"AAAA,MAAa,EAAoB,iBAEpB,EAAmB,cACnB,EAAgB,UAChB,EAAwB,eACxB,EAAkB,UAClB,EAAgB,QAChB,EAAiB,SACjB,EAAsB,gBACtB,EAAwB,UACxB,EAAc,QACd,EAA2B,cAE3B,EAAe,UACf,EAA6C,CAAC,CAAe,EAC7D,EAAiB"}
@@ -0,0 +1,4 @@
1
+ const e=require("../constants/ui.cjs"),t=require("../services/sessionToolInventory/index.cjs");function n(){return{resources:[{name:`doompi/tool-inventory`,kind:`context`,read:async e=>{let n=t.toolNames(await e.session.entries({type:`message`}));return n.length>0?n.join(`
2
+ `):`(no tool calls recorded in this session)`}}],commands:[{name:e.TOOLS_COMMAND,description:`Show tools observed in this headless session. TUI rendering remains unavailable.`,async execute(e,n){await n.client.notify({title:`DoomPi tools`,body:t.toolNames(await n.session.entries({type:`message`})).join(`
3
+ `)||`(no tool calls recorded in this session)`,level:`info`})}}]}}exports.createUiServerContributions=n;
4
+ //# sourceMappingURL=sessionInventory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionInventory.cjs","names":["toolNames","TOOLS_COMMAND"],"sources":["../../src/controllers/sessionInventory.ts"],"sourcesContent":["import type { DoomHeadlessCommand } from '@agimon-ai/doompi-core/headless';\nimport type { DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { TOOLS_COMMAND } from '../constants/ui';\nimport { toolNames } from '../services/sessionToolInventory';\n\n/**\n * The TUI shell itself stays Pi-only. Inventory is the shared part and is exposed\n * from session data rather than silently installing a fake editor/widget host.\n */\nexport function createUiServerContributions(): DoomServerSessionPlugin {\n return {\n resources: [\n {\n name: 'doompi/tool-inventory',\n kind: 'context',\n read: async (execution) => {\n const names = toolNames(await execution.session.entries({ type: 'message' }));\n return names.length > 0 ? names.join('\\n') : '(no tool calls recorded in this session)';\n },\n },\n ],\n commands: [\n {\n name: TOOLS_COMMAND,\n description: 'Show tools observed in this headless session. TUI rendering remains unavailable.',\n async execute(_args, execution) {\n await execution.client.notify({\n title: 'DoomPi tools',\n body:\n toolNames(await execution.session.entries({ type: 'message' })).join('\\n') ||\n '(no tool calls recorded in this session)',\n level: 'info',\n });\n },\n } satisfies DoomHeadlessCommand,\n ],\n };\n}\n"],"mappings":"+FAUA,SAAgB,GAAuD,CACrE,MAAO,CACL,UAAW,CACT,CACE,KAAM,wBACN,KAAM,UACN,KAAM,KAAO,IAAc,CACzB,IAAM,EAAQA,EAAAA,UAAU,MAAM,EAAU,QAAQ,QAAQ,CAAE,KAAM,SAAU,CAAC,CAAC,EAC5E,OAAO,EAAM,OAAS,EAAI,EAAM,KAAK;CAAI,EAAI,0CAC/C,CACF,CACF,EACA,SAAU,CACR,CACE,KAAMC,EAAAA,cACN,YAAa,mFACb,MAAM,QAAQ,EAAO,EAAW,CAC9B,MAAM,EAAU,OAAO,OAAO,CAC5B,MAAO,eACP,KACED,EAAAA,UAAU,MAAM,EAAU,QAAQ,QAAQ,CAAE,KAAM,SAAU,CAAC,CAAC,CAAC,CAAC,KAAK;CAAI,GACzE,2CACF,MAAO,MACT,CAAC,CACH,CACF,CACF,CACF,CACF"}
@@ -0,0 +1,4 @@
1
+ import{TOOLS_COMMAND as e}from"../constants/ui.mjs";import{toolNames as t}from"../services/sessionToolInventory/index.mjs";function n(){return{resources:[{name:`doompi/tool-inventory`,kind:`context`,read:async e=>{let n=t(await e.session.entries({type:`message`}));return n.length>0?n.join(`
2
+ `):`(no tool calls recorded in this session)`}}],commands:[{name:e,description:`Show tools observed in this headless session. TUI rendering remains unavailable.`,async execute(e,n){await n.client.notify({title:`DoomPi tools`,body:t(await n.session.entries({type:`message`})).join(`
3
+ `)||`(no tool calls recorded in this session)`,level:`info`})}}]}}export{n as createUiServerContributions};
4
+ //# sourceMappingURL=sessionInventory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionInventory.mjs","names":[],"sources":["../../src/controllers/sessionInventory.ts"],"sourcesContent":["import type { DoomHeadlessCommand } from '@agimon-ai/doompi-core/headless';\nimport type { DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { TOOLS_COMMAND } from '../constants/ui';\nimport { toolNames } from '../services/sessionToolInventory';\n\n/**\n * The TUI shell itself stays Pi-only. Inventory is the shared part and is exposed\n * from session data rather than silently installing a fake editor/widget host.\n */\nexport function createUiServerContributions(): DoomServerSessionPlugin {\n return {\n resources: [\n {\n name: 'doompi/tool-inventory',\n kind: 'context',\n read: async (execution) => {\n const names = toolNames(await execution.session.entries({ type: 'message' }));\n return names.length > 0 ? names.join('\\n') : '(no tool calls recorded in this session)';\n },\n },\n ],\n commands: [\n {\n name: TOOLS_COMMAND,\n description: 'Show tools observed in this headless session. TUI rendering remains unavailable.',\n async execute(_args, execution) {\n await execution.client.notify({\n title: 'DoomPi tools',\n body:\n toolNames(await execution.session.entries({ type: 'message' })).join('\\n') ||\n '(no tool calls recorded in this session)',\n level: 'info',\n });\n },\n } satisfies DoomHeadlessCommand,\n ],\n };\n}\n"],"mappings":"2HAUA,SAAgB,GAAuD,CACrE,MAAO,CACL,UAAW,CACT,CACE,KAAM,wBACN,KAAM,UACN,KAAM,KAAO,IAAc,CACzB,IAAM,EAAQ,EAAU,MAAM,EAAU,QAAQ,QAAQ,CAAE,KAAM,SAAU,CAAC,CAAC,EAC5E,OAAO,EAAM,OAAS,EAAI,EAAM,KAAK;CAAI,EAAI,0CAC/C,CACF,CACF,EACA,SAAU,CACR,CACE,KAAM,EACN,YAAa,mFACb,MAAM,QAAQ,EAAO,EAAW,CAC9B,MAAM,EAAU,OAAO,OAAO,CAC5B,MAAO,eACP,KACE,EAAU,MAAM,EAAU,QAAQ,QAAQ,CAAE,KAAM,SAAU,CAAC,CAAC,CAAC,CAAC,KAAK;CAAI,GACzE,2CACF,MAAO,MACT,CAAC,CACH,CACF,CACF,CACF,CACF"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./tui/doomEditor.cjs");exports.DoomEditor=e.DoomEditor;
@@ -0,0 +1,2 @@
1
+ import { DoomEditor, DoomEditorLeaderOptions } from "./tui/doomEditor.cjs";
2
+ export { DoomEditor, type DoomEditorLeaderOptions };
@@ -0,0 +1,2 @@
1
+ import { DoomEditor, DoomEditorLeaderOptions } from "./tui/doomEditor.mjs";
2
+ export { DoomEditor, type DoomEditorLeaderOptions };
@@ -0,0 +1 @@
1
+ import{DoomEditor as e}from"./tui/doomEditor.mjs";export{e as DoomEditor};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./tui/doomFooter.cjs");exports.DoomFooter=e.DoomFooter;
@@ -0,0 +1,2 @@
1
+ import { DoomFooter, DoomFooterStatusView } from "./tui/doomFooter.cjs";
2
+ export { DoomFooter, type DoomFooterStatusView };
@@ -0,0 +1,2 @@
1
+ import { DoomFooter, DoomFooterStatusView } from "./tui/doomFooter.mjs";
2
+ export { DoomFooter, type DoomFooterStatusView };
@@ -0,0 +1 @@
1
+ import{DoomFooter as e}from"./tui/doomFooter.mjs";export{e as DoomFooter};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./tui/doomHeader.cjs");exports.DoomHeader=e.DoomHeader;
@@ -0,0 +1,2 @@
1
+ import { DoomHeader } from "./tui/doomHeader.cjs";
2
+ export { DoomHeader };
@@ -0,0 +1,2 @@
1
+ import { DoomHeader } from "./tui/doomHeader.mjs";
2
+ export { DoomHeader };
@@ -0,0 +1 @@
1
+ import{DoomHeader as e}from"./tui/doomHeader.mjs";export{e as DoomHeader};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./tui/doomOverlay.cjs");exports.DOOM_FULLSCREEN_UI_OPTIONS=e.DOOM_FULLSCREEN_UI_OPTIONS,exports.DOOM_NAVIGATION_KEYS=e.DOOM_NAVIGATION_KEYS,exports.DOOM_OVERLAY_ACCENT=e.DOOM_OVERLAY_ACCENT,exports.DoomOverlay=e.DoomOverlay;
@@ -0,0 +1,2 @@
1
+ import { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, DoomOverlayChrome, DoomOverlayTui } from "./tui/doomOverlay.cjs";
2
+ export { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, type DoomOverlayChrome, type DoomOverlayTui };
@@ -0,0 +1,2 @@
1
+ import { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, DoomOverlayChrome, DoomOverlayTui } from "./tui/doomOverlay.mjs";
2
+ export { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, type DoomOverlayChrome, type DoomOverlayTui };
@@ -0,0 +1 @@
1
+ import{DOOM_FULLSCREEN_UI_OPTIONS as e,DOOM_NAVIGATION_KEYS as t,DOOM_OVERLAY_ACCENT as n,DoomOverlay as r}from"./tui/doomOverlay.mjs";export{e as DOOM_FULLSCREEN_UI_OPTIONS,t as DOOM_NAVIGATION_KEYS,n as DOOM_OVERLAY_ACCENT,r as DoomOverlay};
@@ -1,2 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./_virtual/_rolldown/runtime.cjs");let t=require("node:path");t=e.__toESM(t,1);let n=require("node:fs");n=e.__toESM(n,1);const r=new Map,i=`__doompiExtensionToolSources__`;function a(){let e=globalThis,t=e[i];if(t)return t;let n=new Map;return e[i]=n,n}function o(e,t){let n=Reflect.get(e,t,e);return typeof n==`function`?n.bind(e):n}function s(e,t){return new Proxy(e,{get(e,n){return n===`registerTool`?n=>{e.registerTool(n),a().set(n.name,t)}:o(e,n)}})}function c(e){return a().get(e)}function l(e){let r=e;for(;;){try{let e=JSON.parse(n.default.readFileSync(t.default.join(r,`package.json`),`utf8`));if(typeof e.name==`string`&&e.name.length>0)return e.name}catch{}let e=t.default.dirname(r);if(e===r)return;r=e}}function u(e){let n=r.get(e);if(n!==void 0)return n;let i=l(t.default.dirname(e)),a=i?i.split(`/`).pop()??i:t.default.basename(e,t.default.extname(e));return r.set(e,a),a}exports.extensionName=u,exports.extensionToolSource=c,exports.withExtensionSource=s;
2
- //# sourceMappingURL=extensionName.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/extensionSource/index.cjs");exports.extensionName=e.extensionName,exports.extensionPackageName=e.extensionPackageName,exports.extensionToolSource=e.extensionToolSource,exports.withExtensionSource=e.withExtensionSource;
@@ -1,16 +1,2 @@
1
- import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- //#region src/extensionName.d.ts
3
- /**
4
- * Gives one composed extension a Pi API that remembers which tools it registers.
5
- *
6
- * Pi attributes every factory inside a compiled Doom bundle to the outer bundle.
7
- * The compiler still knows each original entry path, so it calls factories through
8
- * this boundary and preserves that identity before the information is lost.
9
- */
10
- declare function withExtensionSource(pi: ExtensionAPI, entryPath: string): ExtensionAPI;
11
- /** Original extension entry that registered a tool inside a composed bundle. */
12
- declare function extensionToolSource(toolName: string): string | undefined;
13
- declare function extensionName(entryPath: string): string;
14
- //#endregion
15
- export { extensionName, extensionToolSource, withExtensionSource };
16
- //# sourceMappingURL=extensionName.d.cts.map
1
+ import { extensionName, extensionPackageName, extensionToolSource, withExtensionSource } from "./services/extensionSource/index.cjs";
2
+ export { extensionName, extensionPackageName, extensionToolSource, withExtensionSource };
@@ -1,16 +1,2 @@
1
- import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- //#region src/extensionName.d.ts
3
- /**
4
- * Gives one composed extension a Pi API that remembers which tools it registers.
5
- *
6
- * Pi attributes every factory inside a compiled Doom bundle to the outer bundle.
7
- * The compiler still knows each original entry path, so it calls factories through
8
- * this boundary and preserves that identity before the information is lost.
9
- */
10
- declare function withExtensionSource(pi: ExtensionAPI, entryPath: string): ExtensionAPI;
11
- /** Original extension entry that registered a tool inside a composed bundle. */
12
- declare function extensionToolSource(toolName: string): string | undefined;
13
- declare function extensionName(entryPath: string): string;
14
- //#endregion
15
- export { extensionName, extensionToolSource, withExtensionSource };
16
- //# sourceMappingURL=extensionName.d.mts.map
1
+ import { extensionName, extensionPackageName, extensionToolSource, withExtensionSource } from "./services/extensionSource/index.mjs";
2
+ export { extensionName, extensionPackageName, extensionToolSource, withExtensionSource };
@@ -1,2 +1 @@
1
- import e from"node:path";import t from"node:fs";const n=new Map,r=`__doompiExtensionToolSources__`;function i(){let e=globalThis,t=e[r];if(t)return t;let n=new Map;return e[r]=n,n}function a(e,t){let n=Reflect.get(e,t,e);return typeof n==`function`?n.bind(e):n}function o(e,t){return new Proxy(e,{get(e,n){return n===`registerTool`?n=>{e.registerTool(n),i().set(n.name,t)}:a(e,n)}})}function s(e){return i().get(e)}function c(n){let r=n;for(;;){try{let n=JSON.parse(t.readFileSync(e.join(r,`package.json`),`utf8`));if(typeof n.name==`string`&&n.name.length>0)return n.name}catch{}let n=e.dirname(r);if(n===r)return;r=n}}function l(t){let r=n.get(t);if(r!==void 0)return r;let i=c(e.dirname(t)),a=i?i.split(`/`).pop()??i:e.basename(t,e.extname(t));return n.set(t,a),a}export{l as extensionName,s as extensionToolSource,o as withExtensionSource};
2
- //# sourceMappingURL=extensionName.mjs.map
1
+ import{extensionName as e,extensionPackageName as t,extensionToolSource as n,withExtensionSource as r}from"./services/extensionSource/index.mjs";export{e as extensionName,t as extensionPackageName,n as extensionToolSource,r as withExtensionSource};
@@ -1,2 +1,2 @@
1
- var e=require("../extension.cjs").doomPiUiExtension;module.exports=e;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../services/telemetry/index.cjs"),t=require("../models/uiState.cjs"),n=require("../constants/ui.cjs"),r=require("../tui/builtinTools.cjs"),i=require("../tui/uiRuntime.cjs");let a=require("@agimon-ai/doompi-core/ui-hub"),o=require("@agimon-ai/doompi-core/pi-extension"),s=require("@agimon-ai/doompi-minor-mode");const c=(0,o.definePiExtension)(n.PACKAGE_SOURCE,({context:o,pi:c,options:l,runtime:u})=>{if(!u)throw Error(`This Pi extension requires the Cordis runtime metadata.`);let d=i.createUiRuntime(o,{pi:c,telemetry:l??e.createUiTelemetry()}),f=r.createBuiltinTools(process.cwd());return{services:[e=>{e.provide(a.DOOM_UI_HUB_SERVICE,d.hub),e.inject([s.DOOM_MINOR_MODE_CATALOG_SERVICE],e=>{let n=(0,s.createMinorModeCatalogClient)((0,s.requireMinorModeCatalog)(e)),r=()=>d.uiState.setModes(t.projectMinorModeRecords(n.list())),i=n.subscribe(r);return r(),()=>{i(),d.uiState.setModes([])}})}],commands:d.commands,events:d.events,tools:u.mode===`composed`?f:[],toolOverrides:u.mode===`composed`?[]:f.map(e=>({source:n.PACKAGE_SOURCE,tools:[e.name],replacements:[e]})),onStop:()=>d.dispose(),onDispose:()=>d.dispose()}});exports.default=c,exports.doomPiUiExtension=c;
2
2
  //# sourceMappingURL=pi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.cjs","names":["doomPiUiExtension"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { doomPiUiExtension } from '../extension.ts';\n\nexport default doomPiUiExtension;\n"],"mappings":"AAEA,IAAA,4BAAeA,CAAAA,CAAAA"}
1
+ {"version":3,"file":"pi.cjs","names":["definePiExtension","PACKAGE_SOURCE","createUiRuntime","createUiTelemetry","createBuiltinTools","DOOM_UI_HUB_SERVICE","DOOM_MINOR_MODE_CATALOG_SERVICE","createMinorModeCatalogClient","requireMinorModeCatalog","projectMinorModeRecords"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension } from '@agimon-ai/doompi-core/pi-extension';\nimport { DOOM_UI_HUB_SERVICE } from '@agimon-ai/doompi-core/ui-hub';\nimport {\n DOOM_MINOR_MODE_CATALOG_SERVICE,\n createMinorModeCatalogClient,\n requireMinorModeCatalog,\n} from '@agimon-ai/doompi-minor-mode';\n\nimport { PACKAGE_SOURCE } from '../constants/ui';\nimport { projectMinorModeRecords } from '../models/uiState';\nimport { createUiTelemetry, type UiTelemetry } from '../services/telemetry';\nimport { createBuiltinTools } from '../tui/builtinTools';\nimport { createUiRuntime } from '../tui/uiRuntime';\n\nexport const doomPiUiExtension = definePiExtension<UiTelemetry>(PACKAGE_SOURCE, ({ context, pi, options, runtime }) => {\n if (!runtime) throw new Error('This Pi extension requires the Cordis runtime metadata.');\n const ui = createUiRuntime(context, { pi, telemetry: options ?? createUiTelemetry() });\n const tools = createBuiltinTools(process.cwd());\n return {\n services: [\n (owner) => {\n owner.provide(DOOM_UI_HUB_SERVICE, ui.hub);\n owner.inject([DOOM_MINOR_MODE_CATALOG_SERVICE], (modeContext) => {\n const catalog = createMinorModeCatalogClient(requireMinorModeCatalog(modeContext));\n const update = (): void => ui.uiState.setModes(projectMinorModeRecords(catalog.list()));\n const unsubscribe = catalog.subscribe(update);\n update();\n return () => {\n unsubscribe();\n ui.uiState.setModes([]);\n };\n });\n },\n ],\n commands: ui.commands,\n events: ui.events,\n tools: runtime.mode === 'composed' ? tools : [],\n toolOverrides:\n runtime.mode === 'composed'\n ? []\n : tools.map((tool) => ({\n source: PACKAGE_SOURCE,\n tools: [tool.name],\n replacements: [tool],\n })),\n onStop: () => ui.dispose(),\n onDispose: () => ui.dispose(),\n };\n});\n\nexport default doomPiUiExtension;\n"],"mappings":"uaAcA,MAAa,GAAA,EAAoBA,EAAAA,kBAAAA,CAA+BC,EAAAA,gBAAiB,CAAE,UAAS,KAAI,UAAS,aAAc,CACrH,GAAI,CAAC,EAAS,MAAU,MAAM,yDAAyD,EACvF,IAAM,EAAKC,EAAAA,gBAAgB,EAAS,CAAE,KAAI,UAAW,GAAWC,EAAAA,kBAAkB,CAAE,CAAC,EAC/E,EAAQC,EAAAA,mBAAmB,QAAQ,IAAI,CAAC,EAC9C,MAAO,CACL,SAAU,CACP,GAAU,CACT,EAAM,QAAQC,EAAAA,oBAAqB,EAAG,GAAG,EACzC,EAAM,OAAO,CAACC,EAAAA,+BAA+B,EAAI,GAAgB,CAC/D,IAAM,GAAA,EAAUC,EAAAA,6BAAAA,EAAAA,EAA6BC,EAAAA,wBAAAA,CAAwB,CAAW,CAAC,EAC3E,MAAqB,EAAG,QAAQ,SAASC,EAAAA,wBAAwB,EAAQ,KAAK,CAAC,CAAC,EAChF,EAAc,EAAQ,UAAU,CAAM,EAE5C,OADA,EAAO,MACM,CACX,EAAY,EACZ,EAAG,QAAQ,SAAS,CAAC,CAAC,CACxB,CACF,CAAC,CACH,CACF,EACA,SAAU,EAAG,SACb,OAAQ,EAAG,OACX,MAAO,EAAQ,OAAS,WAAa,EAAQ,CAAC,EAC9C,cACE,EAAQ,OAAS,WACb,CAAC,EACD,EAAM,IAAK,IAAU,CACnB,OAAQR,EAAAA,eACR,MAAO,CAAC,EAAK,IAAI,EACjB,aAAc,CAAC,CAAI,CACrB,EAAE,EACR,WAAc,EAAG,QAAQ,EACzB,cAAiB,EAAG,QAAQ,CAC9B,CACF,CAAC"}
@@ -1,2 +1,6 @@
1
- import { doomPiUiExtension } from "../extension.cjs";
2
- export = doomPiUiExtension;
1
+ import { UiTelemetry } from "../services/telemetry/index.cjs";
2
+ //#region src/extensions/pi.d.ts
3
+ export declare const doomPiUiExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<UiTelemetry>;
4
+ //#endregion
5
+ export { doomPiUiExtension as default };
6
+ //# sourceMappingURL=pi.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.cts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAca,yEAAiB,mBAAA"}
@@ -1,2 +1,6 @@
1
- import { doomPiUiExtension } from "../extension.mjs";
2
- export { doomPiUiExtension as default };
1
+ import { UiTelemetry } from "../services/telemetry/index.mjs";
2
+ //#region src/extensions/pi.d.ts
3
+ export declare const doomPiUiExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<UiTelemetry>;
4
+ //#endregion
5
+ export { doomPiUiExtension as default };
6
+ //# sourceMappingURL=pi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.mts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAca,yEAAiB,mBAAA"}
@@ -1,2 +1,2 @@
1
- import{doomPiUiExtension as e}from"../extension.mjs";var t=e;export{t as default};
1
+ import{createUiTelemetry as e}from"../services/telemetry/index.mjs";import{projectMinorModeRecords as t}from"../models/uiState.mjs";import{PACKAGE_SOURCE as n}from"../constants/ui.mjs";import{createBuiltinTools as r}from"../tui/builtinTools.mjs";import{createUiRuntime as i}from"../tui/uiRuntime.mjs";import{DOOM_UI_HUB_SERVICE as a}from"@agimon-ai/doompi-core/ui-hub";import{definePiExtension as o}from"@agimon-ai/doompi-core/pi-extension";import{DOOM_MINOR_MODE_CATALOG_SERVICE as s,createMinorModeCatalogClient as c,requireMinorModeCatalog as l}from"@agimon-ai/doompi-minor-mode";const u=o(n,({context:o,pi:u,options:d,runtime:f})=>{if(!f)throw Error(`This Pi extension requires the Cordis runtime metadata.`);let p=i(o,{pi:u,telemetry:d??e()}),m=r(process.cwd());return{services:[e=>{e.provide(a,p.hub),e.inject([s],e=>{let n=c(l(e)),r=()=>p.uiState.setModes(t(n.list())),i=n.subscribe(r);return r(),()=>{i(),p.uiState.setModes([])}})}],commands:p.commands,events:p.events,tools:f.mode===`composed`?m:[],toolOverrides:f.mode===`composed`?[]:m.map(e=>({source:n,tools:[e.name],replacements:[e]})),onStop:()=>p.dispose(),onDispose:()=>p.dispose()}});export{u as default,u as doomPiUiExtension};
2
2
  //# sourceMappingURL=pi.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { doomPiUiExtension } from '../extension.ts';\n\nexport default doomPiUiExtension;\n"],"mappings":"qDAEA,IAAA,EAAe"}
1
+ {"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension } from '@agimon-ai/doompi-core/pi-extension';\nimport { DOOM_UI_HUB_SERVICE } from '@agimon-ai/doompi-core/ui-hub';\nimport {\n DOOM_MINOR_MODE_CATALOG_SERVICE,\n createMinorModeCatalogClient,\n requireMinorModeCatalog,\n} from '@agimon-ai/doompi-minor-mode';\n\nimport { PACKAGE_SOURCE } from '../constants/ui';\nimport { projectMinorModeRecords } from '../models/uiState';\nimport { createUiTelemetry, type UiTelemetry } from '../services/telemetry';\nimport { createBuiltinTools } from '../tui/builtinTools';\nimport { createUiRuntime } from '../tui/uiRuntime';\n\nexport const doomPiUiExtension = definePiExtension<UiTelemetry>(PACKAGE_SOURCE, ({ context, pi, options, runtime }) => {\n if (!runtime) throw new Error('This Pi extension requires the Cordis runtime metadata.');\n const ui = createUiRuntime(context, { pi, telemetry: options ?? createUiTelemetry() });\n const tools = createBuiltinTools(process.cwd());\n return {\n services: [\n (owner) => {\n owner.provide(DOOM_UI_HUB_SERVICE, ui.hub);\n owner.inject([DOOM_MINOR_MODE_CATALOG_SERVICE], (modeContext) => {\n const catalog = createMinorModeCatalogClient(requireMinorModeCatalog(modeContext));\n const update = (): void => ui.uiState.setModes(projectMinorModeRecords(catalog.list()));\n const unsubscribe = catalog.subscribe(update);\n update();\n return () => {\n unsubscribe();\n ui.uiState.setModes([]);\n };\n });\n },\n ],\n commands: ui.commands,\n events: ui.events,\n tools: runtime.mode === 'composed' ? tools : [],\n toolOverrides:\n runtime.mode === 'composed'\n ? []\n : tools.map((tool) => ({\n source: PACKAGE_SOURCE,\n tools: [tool.name],\n replacements: [tool],\n })),\n onStop: () => ui.dispose(),\n onDispose: () => ui.dispose(),\n };\n});\n\nexport default doomPiUiExtension;\n"],"mappings":"ukBAcA,MAAa,EAAoB,EAA+B,GAAiB,CAAE,UAAS,KAAI,UAAS,aAAc,CACrH,GAAI,CAAC,EAAS,MAAU,MAAM,yDAAyD,EACvF,IAAM,EAAK,EAAgB,EAAS,CAAE,KAAI,UAAW,GAAW,EAAkB,CAAE,CAAC,EAC/E,EAAQ,EAAmB,QAAQ,IAAI,CAAC,EAC9C,MAAO,CACL,SAAU,CACP,GAAU,CACT,EAAM,QAAQ,EAAqB,EAAG,GAAG,EACzC,EAAM,OAAO,CAAC,CAA+B,EAAI,GAAgB,CAC/D,IAAM,EAAU,EAA6B,EAAwB,CAAW,CAAC,EAC3E,MAAqB,EAAG,QAAQ,SAAS,EAAwB,EAAQ,KAAK,CAAC,CAAC,EAChF,EAAc,EAAQ,UAAU,CAAM,EAE5C,OADA,EAAO,MACM,CACX,EAAY,EACZ,EAAG,QAAQ,SAAS,CAAC,CAAC,CACxB,CACF,CAAC,CACH,CACF,EACA,SAAU,EAAG,SACb,OAAQ,EAAG,OACX,MAAO,EAAQ,OAAS,WAAa,EAAQ,CAAC,EAC9C,cACE,EAAQ,OAAS,WACb,CAAC,EACD,EAAM,IAAK,IAAU,CACnB,OAAQ,EACR,MAAO,CAAC,EAAK,IAAI,EACjB,aAAc,CAAC,CAAI,CACrB,EAAE,EACR,WAAc,EAAG,QAAQ,EACzB,cAAiB,EAAG,QAAQ,CAC9B,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../constants/ui.cjs"),t=require("../controllers/sessionInventory.cjs"),n=(0,require("@agimon-ai/doompi-core/server-facet").defineServerPlugin)({name:e.PACKAGE_SOURCE,session:()=>t.createUiServerContributions()});exports.default=n,exports.uiServerFacet=n;
2
+ //# sourceMappingURL=server.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.cjs","names":["defineServerPlugin","PACKAGE_SOURCE","createUiServerContributions"],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { PACKAGE_SOURCE } from '../constants/ui';\nimport { createUiServerContributions } from '../controllers/sessionInventory';\n\nexport const uiServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => createUiServerContributions(),\n});\nexport default uiServerFacet;\n"],"mappings":"uLAKa,GAAA,+CAAgBA,CAAAA,CAAAA,mBAAAA,CAAmB,CAC9C,KAAMC,EAAAA,eACN,YAAeC,EAAAA,4BAA4B,CAC7C,CAAC"}
@@ -0,0 +1,5 @@
1
+ //#region src/extensions/server.d.ts
2
+ export declare const uiServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
+ //#endregion
4
+ export { uiServerFacet as default };
5
+ //# sourceMappingURL=server.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.cts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAKa,6DAAa"}
@@ -0,0 +1,5 @@
1
+ //#region src/extensions/server.d.ts
2
+ export declare const uiServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
+ //#endregion
4
+ export { uiServerFacet as default };
5
+ //# sourceMappingURL=server.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.mts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAKa,6DAAa"}
@@ -0,0 +1,2 @@
1
+ import{PACKAGE_SOURCE as e}from"../constants/ui.mjs";import{createUiServerContributions as t}from"../controllers/sessionInventory.mjs";import{defineServerPlugin as n}from"@agimon-ai/doompi-core/server-facet";const r=n({name:e,session:()=>t()});export{r as default,r as uiServerFacet};
2
+ //# sourceMappingURL=server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.mjs","names":[],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { PACKAGE_SOURCE } from '../constants/ui';\nimport { createUiServerContributions } from '../controllers/sessionInventory';\n\nexport const uiServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => createUiServerContributions(),\n});\nexport default uiServerFacet;\n"],"mappings":"gNAKA,MAAa,EAAgB,EAAmB,CAC9C,KAAM,EACN,YAAe,EAA4B,CAC7C,CAAC"}
package/dist/footer.cjs CHANGED
@@ -1,2 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./_virtual/_rolldown/runtime.cjs");var t=e.__exportAll({});e.__reExport(t,require("@agimon-ai/doompi-extension-contracts/footer")),Object.defineProperty(exports,"footer_exports",{enumerable:!0,get:function(){return t}});var n=require("@agimon-ai/doompi-extension-contracts/footer");Object.keys(n).forEach(function(e){e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return n[e]}})});
2
- //# sourceMappingURL=footer.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@agimon-ai/doompi-core/footer");Object.defineProperty(exports,"FooterStatusItemSchema",{enumerable:!0,get:function(){return e.FooterStatusItemSchema}}),Object.defineProperty(exports,"FooterStatusPlacementSchema",{enumerable:!0,get:function(){return e.FooterStatusPlacementSchema}}),Object.defineProperty(exports,"FooterTextColorSchema",{enumerable:!0,get:function(){return e.FooterTextColorSchema}}),Object.defineProperty(exports,"FooterTextSegmentSchema",{enumerable:!0,get:function(){return e.FooterTextSegmentSchema}});
package/dist/footer.d.cts CHANGED
@@ -1,5 +1,2 @@
1
- export * from "@agimon-ai/doompi-extension-contracts/footer";
2
- import * as import__agimon_ai_doompi_extension_contracts_footer from "@agimon-ai/doompi-extension-contracts/footer";
3
- //#endregion
4
- export { import__agimon_ai_doompi_extension_contracts_footer as footer_d_exports };
5
- //# sourceMappingURL=footer.d.cts.map
1
+ import { DoomFooterContributionDefinition, DoomFooterContributionHandle, DoomFooterContributionValue, DoomFooterStatus, FooterStatusItem, FooterStatusItemSchema, FooterStatusPlacement, FooterStatusPlacementSchema, FooterTextColor, FooterTextColorSchema, FooterTextSegment, FooterTextSegmentSchema } from "@agimon-ai/doompi-core/footer";
2
+ export { type DoomFooterContributionDefinition, type DoomFooterContributionHandle, type DoomFooterContributionValue, type DoomFooterStatus, type FooterStatusItem, FooterStatusItemSchema, type FooterStatusPlacement, FooterStatusPlacementSchema, type FooterTextColor, FooterTextColorSchema, type FooterTextSegment, FooterTextSegmentSchema };
package/dist/footer.d.mts CHANGED
@@ -1,5 +1,2 @@
1
- export * from "@agimon-ai/doompi-extension-contracts/footer";
2
- import * as import__agimon_ai_doompi_extension_contracts_footer from "@agimon-ai/doompi-extension-contracts/footer";
3
- //#endregion
4
- export { import__agimon_ai_doompi_extension_contracts_footer as footer_d_exports };
5
- //# sourceMappingURL=footer.d.mts.map
1
+ import { DoomFooterContributionDefinition, DoomFooterContributionHandle, DoomFooterContributionValue, DoomFooterStatus, FooterStatusItem, FooterStatusItemSchema, FooterStatusPlacement, FooterStatusPlacementSchema, FooterTextColor, FooterTextColorSchema, FooterTextSegment, FooterTextSegmentSchema } from "@agimon-ai/doompi-core/footer";
2
+ export { type DoomFooterContributionDefinition, type DoomFooterContributionHandle, type DoomFooterContributionValue, type DoomFooterStatus, type FooterStatusItem, FooterStatusItemSchema, type FooterStatusPlacement, FooterStatusPlacementSchema, type FooterTextColor, FooterTextColorSchema, type FooterTextSegment, FooterTextSegmentSchema };
package/dist/footer.mjs CHANGED
@@ -1,2 +1 @@
1
- import{__exportAll as e,__reExport as t}from"./_virtual/_rolldown/runtime.mjs";export*from"@agimon-ai/doompi-extension-contracts/footer";var n=e({});import*as r from"@agimon-ai/doompi-extension-contracts/footer";t(n,r);export{n as footer_exports};
2
- //# sourceMappingURL=footer.mjs.map
1
+ import{FooterStatusItemSchema as e,FooterStatusPlacementSchema as t,FooterTextColorSchema as n,FooterTextSegmentSchema as r}from"@agimon-ai/doompi-core/footer";export{e as FooterStatusItemSchema,t as FooterStatusPlacementSchema,n as FooterTextColorSchema,r as FooterTextSegmentSchema};
@@ -1,2 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){return e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[]}function t(t=process.env){return{root:t.DOOMPI_ROOT,majorMode:t.DOOMPI_MAJOR_MODE?.trim()||`copilot`,domains:e(t.DOOMPI_DOMAINS),layers:e(t.DOOMPI_LAYERS),profile:t.DOOMPI_PROFILE?.trim()||void 0}}exports.readDoomHarnessMetadata=t;
2
- //# sourceMappingURL=harnessMetadata.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./types/harnessMetadata.cjs");exports.readDoomHarnessMetadata=e.readDoomHarnessMetadata;
@@ -1,21 +1,2 @@
1
- //#region src/harnessMetadata.d.ts
2
- /**
3
- * The slice of harness state the header renders.
4
- *
5
- * A projection of the store rather than its own reader. This used to
6
- * re-implement five of the state keys with its own list parser and its own
7
- * default mode, which is two definitions of one protocol to keep in step.
8
- */
9
- interface DoomHarnessMetadata {
10
- root?: string;
11
- /** The one named major mode this session runs under. */
12
- majorMode: string;
13
- domains: string[];
14
- /** The layer components the major mode resolved to. */
15
- layers: string[];
16
- profile?: string;
17
- }
18
- declare function readDoomHarnessMetadata(environment?: NodeJS.ProcessEnv): DoomHarnessMetadata;
19
- //#endregion
20
- export { DoomHarnessMetadata, readDoomHarnessMetadata };
21
- //# sourceMappingURL=harnessMetadata.d.cts.map
1
+ import { DoomHarnessMetadata, readDoomHarnessMetadata } from "./types/harnessMetadata.cjs";
2
+ export { type DoomHarnessMetadata, readDoomHarnessMetadata };