@agimon-ai/doompi 0.0.1-alpha.76 → 0.0.1-alpha.78

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 (836) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/dist/antigravity.cjs +5 -0
  3. package/dist/antigravity.d.cts +2 -0
  4. package/dist/antigravity.d.mts +2 -0
  5. package/dist/antigravity.mjs +2 -0
  6. package/dist/api-contracts.cjs +11 -0
  7. package/dist/api-contracts.cjs.map +1 -0
  8. package/dist/api-contracts.d.cts +52 -0
  9. package/dist/api-contracts.d.cts.map +1 -0
  10. package/dist/api-contracts.d.mts +52 -0
  11. package/dist/api-contracts.d.mts.map +1 -0
  12. package/dist/api-contracts.mjs +7 -0
  13. package/dist/api-contracts.mjs.map +1 -0
  14. package/dist/base-command.cjs +3 -0
  15. package/dist/base-command.d.cts +2 -0
  16. package/dist/base-command.d.mts +2 -0
  17. package/dist/base-command.mjs +2 -0
  18. package/dist/bin/cli.cjs +29 -0
  19. package/dist/bin/cli.cjs.map +1 -0
  20. package/dist/bin/cli.d.cts +1 -0
  21. package/dist/bin/cli.d.mts +1 -0
  22. package/dist/bin/cli.mjs +30 -0
  23. package/dist/bin/cli.mjs.map +1 -0
  24. package/dist/bin/doomRunner.cjs +39 -0
  25. package/dist/bin/doomRunner.cjs.map +1 -0
  26. package/dist/bin/doomRunner.d.cts +12 -0
  27. package/dist/bin/doomRunner.d.cts.map +1 -0
  28. package/dist/bin/doomRunner.d.mts +12 -0
  29. package/dist/bin/doomRunner.d.mts.map +1 -0
  30. package/dist/bin/doomRunner.mjs +38 -0
  31. package/dist/bin/doomRunner.mjs.map +1 -0
  32. package/dist/bin/dpi.cjs +12 -0
  33. package/dist/bin/dpi.cjs.map +1 -0
  34. package/dist/bin/dpi.d.cts +1 -0
  35. package/dist/bin/dpi.d.mts +1 -0
  36. package/dist/bin/dpi.mjs +14 -0
  37. package/dist/bin/dpi.mjs.map +1 -0
  38. package/dist/bin/serve.cjs +11 -0
  39. package/dist/bin/serve.cjs.map +1 -0
  40. package/dist/bin/serve.d.cts +1 -0
  41. package/dist/bin/serve.d.mts +1 -0
  42. package/dist/bin/serve.mjs +13 -0
  43. package/dist/bin/serve.mjs.map +1 -0
  44. package/dist/builders/apiContractExport/index.cjs +81 -0
  45. package/dist/builders/apiContractExport/index.cjs.map +1 -0
  46. package/dist/builders/apiContractExport/index.mjs +77 -0
  47. package/dist/builders/apiContractExport/index.mjs.map +1 -0
  48. package/dist/builders/apiContracts/index.cjs +87 -0
  49. package/dist/builders/apiContracts/index.cjs.map +1 -0
  50. package/dist/builders/apiContracts/index.mjs +82 -0
  51. package/dist/builders/apiContracts/index.mjs.map +1 -0
  52. package/dist/builders/cli/bootstrapClaim.cjs +53 -0
  53. package/dist/builders/cli/bootstrapClaim.cjs.map +1 -0
  54. package/dist/builders/cli/bootstrapClaim.mjs +51 -0
  55. package/dist/builders/cli/bootstrapClaim.mjs.map +1 -0
  56. package/dist/builders/cli/bootstrapLocator/index.cjs +204 -0
  57. package/dist/builders/cli/bootstrapLocator/index.cjs.map +1 -0
  58. package/dist/builders/cli/bootstrapLocator/index.d.cts +5 -0
  59. package/dist/builders/cli/bootstrapLocator/index.d.cts.map +1 -0
  60. package/dist/builders/cli/bootstrapLocator/index.d.mts +5 -0
  61. package/dist/builders/cli/bootstrapLocator/index.d.mts.map +1 -0
  62. package/dist/builders/cli/bootstrapLocator/index.mjs +196 -0
  63. package/dist/builders/cli/bootstrapLocator/index.mjs.map +1 -0
  64. package/dist/builders/cli/composition.cjs +378 -0
  65. package/dist/builders/cli/composition.cjs.map +1 -0
  66. package/dist/builders/cli/composition.d.cts +119 -0
  67. package/dist/builders/cli/composition.d.cts.map +1 -0
  68. package/dist/builders/cli/composition.d.mts +119 -0
  69. package/dist/builders/cli/composition.d.mts.map +1 -0
  70. package/dist/builders/cli/composition.mjs +351 -0
  71. package/dist/builders/cli/composition.mjs.map +1 -0
  72. package/dist/builders/cli/compositionState.cjs +33 -0
  73. package/dist/builders/cli/compositionState.cjs.map +1 -0
  74. package/dist/builders/cli/compositionState.d.cts +9 -0
  75. package/dist/builders/cli/compositionState.d.cts.map +1 -0
  76. package/dist/builders/cli/compositionState.d.mts +9 -0
  77. package/dist/builders/cli/compositionState.d.mts.map +1 -0
  78. package/dist/builders/cli/compositionState.mjs +30 -0
  79. package/dist/builders/cli/compositionState.mjs.map +1 -0
  80. package/dist/builders/cli/constants.cjs +20 -0
  81. package/dist/builders/cli/constants.cjs.map +1 -0
  82. package/dist/builders/cli/constants.d.cts +17 -0
  83. package/dist/builders/cli/constants.d.cts.map +1 -0
  84. package/dist/builders/cli/constants.d.mts +17 -0
  85. package/dist/builders/cli/constants.d.mts.map +1 -0
  86. package/dist/builders/cli/constants.mjs +19 -0
  87. package/dist/builders/cli/constants.mjs.map +1 -0
  88. package/dist/builders/cli/contextCatalog.cjs +130 -0
  89. package/dist/builders/cli/contextCatalog.cjs.map +1 -0
  90. package/dist/builders/cli/contextCatalog.mjs +130 -0
  91. package/dist/builders/cli/contextCatalog.mjs.map +1 -0
  92. package/dist/builders/cli/dpiSettings.cjs +118 -0
  93. package/dist/builders/cli/dpiSettings.cjs.map +1 -0
  94. package/dist/builders/cli/dpiSettings.mjs +111 -0
  95. package/dist/builders/cli/dpiSettings.mjs.map +1 -0
  96. package/dist/builders/cli/entryResolution.cjs +23 -0
  97. package/dist/builders/cli/entryResolution.cjs.map +1 -0
  98. package/dist/builders/cli/entryResolution.d.cts +5 -0
  99. package/dist/builders/cli/entryResolution.d.cts.map +1 -0
  100. package/dist/builders/cli/entryResolution.d.mts +5 -0
  101. package/dist/builders/cli/entryResolution.d.mts.map +1 -0
  102. package/dist/builders/cli/entryResolution.mjs +20 -0
  103. package/dist/builders/cli/entryResolution.mjs.map +1 -0
  104. package/dist/builders/cli/extensionAssembler/index.cjs +386 -0
  105. package/dist/builders/cli/extensionAssembler/index.cjs.map +1 -0
  106. package/dist/builders/cli/extensionAssembler/index.d.cts +113 -0
  107. package/dist/builders/cli/extensionAssembler/index.d.cts.map +1 -0
  108. package/dist/builders/cli/extensionAssembler/index.d.mts +113 -0
  109. package/dist/builders/cli/extensionAssembler/index.d.mts.map +1 -0
  110. package/dist/builders/cli/extensionAssembler/index.mjs +376 -0
  111. package/dist/builders/cli/extensionAssembler/index.mjs.map +1 -0
  112. package/dist/builders/cli/harnessContext.cjs +186 -0
  113. package/dist/builders/cli/harnessContext.cjs.map +1 -0
  114. package/dist/builders/cli/harnessContext.d.cts +51 -0
  115. package/dist/builders/cli/harnessContext.d.cts.map +1 -0
  116. package/dist/builders/cli/harnessContext.d.mts +51 -0
  117. package/dist/builders/cli/harnessContext.d.mts.map +1 -0
  118. package/dist/builders/cli/harnessContext.mjs +179 -0
  119. package/dist/builders/cli/harnessContext.mjs.map +1 -0
  120. package/dist/builders/cli/index.cjs +151 -0
  121. package/dist/builders/cli/index.cjs.map +1 -0
  122. package/dist/builders/cli/index.d.cts +22 -0
  123. package/dist/builders/cli/index.d.cts.map +1 -0
  124. package/dist/builders/cli/index.d.mts +22 -0
  125. package/dist/builders/cli/index.d.mts.map +1 -0
  126. package/dist/builders/cli/index.mjs +147 -0
  127. package/dist/builders/cli/index.mjs.map +1 -0
  128. package/dist/builders/cli/launchPlan/index.cjs +102 -0
  129. package/dist/builders/cli/launchPlan/index.cjs.map +1 -0
  130. package/dist/builders/cli/launchPlan/index.d.cts +43 -0
  131. package/dist/builders/cli/launchPlan/index.d.cts.map +1 -0
  132. package/dist/builders/cli/launchPlan/index.d.mts +43 -0
  133. package/dist/builders/cli/launchPlan/index.d.mts.map +1 -0
  134. package/dist/builders/cli/launchPlan/index.mjs +100 -0
  135. package/dist/builders/cli/launchPlan/index.mjs.map +1 -0
  136. package/dist/builders/cli/launcherComposition/index.cjs +84 -0
  137. package/dist/builders/cli/launcherComposition/index.cjs.map +1 -0
  138. package/dist/builders/cli/launcherComposition/index.mjs +80 -0
  139. package/dist/builders/cli/launcherComposition/index.mjs.map +1 -0
  140. package/dist/builders/cli/piExtensionAlias/index.cjs +40 -0
  141. package/dist/builders/cli/piExtensionAlias/index.cjs.map +1 -0
  142. package/dist/builders/cli/piExtensionAlias/index.mjs +35 -0
  143. package/dist/builders/cli/piExtensionAlias/index.mjs.map +1 -0
  144. package/dist/builders/cli/piExtensionDispatcher/index.cjs +205 -0
  145. package/dist/builders/cli/piExtensionDispatcher/index.cjs.map +1 -0
  146. package/dist/builders/cli/piExtensionDispatcher/index.mjs +198 -0
  147. package/dist/builders/cli/piExtensionDispatcher/index.mjs.map +1 -0
  148. package/dist/builders/cli/prepare.cjs +64 -0
  149. package/dist/builders/cli/prepare.cjs.map +1 -0
  150. package/dist/builders/cli/prepare.mjs +62 -0
  151. package/dist/builders/cli/prepare.mjs.map +1 -0
  152. package/dist/builders/cli/projectSettings.cjs +155 -0
  153. package/dist/builders/cli/projectSettings.cjs.map +1 -0
  154. package/dist/builders/cli/projectSettings.d.cts +27 -0
  155. package/dist/builders/cli/projectSettings.d.cts.map +1 -0
  156. package/dist/builders/cli/projectSettings.d.mts +27 -0
  157. package/dist/builders/cli/projectSettings.d.mts.map +1 -0
  158. package/dist/builders/cli/projectSettings.mjs +144 -0
  159. package/dist/builders/cli/projectSettings.mjs.map +1 -0
  160. package/dist/builders/cli/runtimeBundle/index.cjs +130 -0
  161. package/dist/builders/cli/runtimeBundle/index.cjs.map +1 -0
  162. package/dist/builders/cli/runtimeBundle/index.d.cts +21 -0
  163. package/dist/builders/cli/runtimeBundle/index.d.cts.map +1 -0
  164. package/dist/builders/cli/runtimeBundle/index.d.mts +21 -0
  165. package/dist/builders/cli/runtimeBundle/index.d.mts.map +1 -0
  166. package/dist/builders/cli/runtimeBundle/index.mjs +126 -0
  167. package/dist/builders/cli/runtimeBundle/index.mjs.map +1 -0
  168. package/dist/builders/server/index.cjs +184 -0
  169. package/dist/builders/server/index.cjs.map +1 -0
  170. package/dist/builders/server/index.mjs +181 -0
  171. package/dist/builders/server/index.mjs.map +1 -0
  172. package/dist/builders/server/runtime.cjs +603 -0
  173. package/dist/builders/server/runtime.cjs.map +1 -0
  174. package/dist/builders/server/runtime.mjs +595 -0
  175. package/dist/builders/server/runtime.mjs.map +1 -0
  176. package/dist/builders/server/selectionStatus.cjs +12 -0
  177. package/dist/builders/server/selectionStatus.cjs.map +1 -0
  178. package/dist/builders/server/selectionStatus.mjs +12 -0
  179. package/dist/builders/server/selectionStatus.mjs.map +1 -0
  180. package/dist/builders/server/sessionArguments.cjs +22 -0
  181. package/dist/builders/server/sessionArguments.cjs.map +1 -0
  182. package/dist/builders/server/sessionArguments.mjs +22 -0
  183. package/dist/builders/server/sessionArguments.mjs.map +1 -0
  184. package/dist/builders/web/bundle.cjs +110 -0
  185. package/dist/builders/web/bundle.cjs.map +1 -0
  186. package/dist/builders/web/bundle.d.cts +29 -0
  187. package/dist/builders/web/bundle.d.cts.map +1 -0
  188. package/dist/builders/web/bundle.d.mts +29 -0
  189. package/dist/builders/web/bundle.d.mts.map +1 -0
  190. package/dist/builders/web/bundle.mjs +107 -0
  191. package/dist/builders/web/bundle.mjs.map +1 -0
  192. package/dist/builders/web/bundleAssetPolicy.cjs +96 -0
  193. package/dist/builders/web/bundleAssetPolicy.cjs.map +1 -0
  194. package/dist/builders/web/bundleAssetPolicy.d.cts +22 -0
  195. package/dist/builders/web/bundleAssetPolicy.d.cts.map +1 -0
  196. package/dist/builders/web/bundleAssetPolicy.d.mts +22 -0
  197. package/dist/builders/web/bundleAssetPolicy.d.mts.map +1 -0
  198. package/dist/builders/web/bundleAssetPolicy.mjs +95 -0
  199. package/dist/builders/web/bundleAssetPolicy.mjs.map +1 -0
  200. package/dist/builders/web/index.cjs +75 -0
  201. package/dist/builders/web/index.cjs.map +1 -0
  202. package/dist/builders/web/index.d.cts +29 -0
  203. package/dist/builders/web/index.d.cts.map +1 -0
  204. package/dist/builders/web/index.d.mts +29 -0
  205. package/dist/builders/web/index.d.mts.map +1 -0
  206. package/dist/builders/web/index.mjs +72 -0
  207. package/dist/builders/web/index.mjs.map +1 -0
  208. package/dist/builders/web/webDevRoots.cjs +27 -0
  209. package/dist/builders/web/webDevRoots.cjs.map +1 -0
  210. package/dist/builders/web/webDevRoots.d.cts +22 -0
  211. package/dist/builders/web/webDevRoots.d.cts.map +1 -0
  212. package/dist/builders/web/webDevRoots.d.mts +22 -0
  213. package/dist/builders/web/webDevRoots.d.mts.map +1 -0
  214. package/dist/builders/web/webDevRoots.mjs +25 -0
  215. package/dist/builders/web/webDevRoots.mjs.map +1 -0
  216. package/dist/builders/web/webPluginGenerate.cjs +113 -0
  217. package/dist/builders/web/webPluginGenerate.cjs.map +1 -0
  218. package/dist/builders/web/webPluginGenerate.d.cts +28 -0
  219. package/dist/builders/web/webPluginGenerate.d.cts.map +1 -0
  220. package/dist/builders/web/webPluginGenerate.d.mts +28 -0
  221. package/dist/builders/web/webPluginGenerate.d.mts.map +1 -0
  222. package/dist/builders/web/webPluginGenerate.mjs +106 -0
  223. package/dist/builders/web/webPluginGenerate.mjs.map +1 -0
  224. package/dist/builders/web/webPluginManifest.cjs +92 -0
  225. package/dist/builders/web/webPluginManifest.cjs.map +1 -0
  226. package/dist/builders/web/webPluginManifest.d.cts +44 -0
  227. package/dist/builders/web/webPluginManifest.d.cts.map +1 -0
  228. package/dist/builders/web/webPluginManifest.d.mts +44 -0
  229. package/dist/builders/web/webPluginManifest.d.mts.map +1 -0
  230. package/dist/builders/web/webPluginManifest.mjs +88 -0
  231. package/dist/builders/web/webPluginManifest.mjs.map +1 -0
  232. package/dist/builders/web/webPluginScan.cjs +53 -0
  233. package/dist/builders/web/webPluginScan.cjs.map +1 -0
  234. package/dist/builders/web/webPluginScan.d.cts +16 -0
  235. package/dist/builders/web/webPluginScan.d.cts.map +1 -0
  236. package/dist/builders/web/webPluginScan.d.mts +16 -0
  237. package/dist/builders/web/webPluginScan.d.mts.map +1 -0
  238. package/dist/builders/web/webPluginScan.mjs +50 -0
  239. package/dist/builders/web/webPluginScan.mjs.map +1 -0
  240. package/dist/builders/web/webPluginVite.cjs +124 -0
  241. package/dist/builders/web/webPluginVite.cjs.map +1 -0
  242. package/dist/builders/web/webPluginVite.d.cts +36 -0
  243. package/dist/builders/web/webPluginVite.d.cts.map +1 -0
  244. package/dist/builders/web/webPluginVite.d.mts +36 -0
  245. package/dist/builders/web/webPluginVite.d.mts.map +1 -0
  246. package/dist/builders/web/webPluginVite.mjs +116 -0
  247. package/dist/builders/web/webPluginVite.mjs.map +1 -0
  248. package/dist/builders/web.cjs +33 -0
  249. package/dist/builders/web.d.cts +9 -0
  250. package/dist/builders/web.d.mts +9 -0
  251. package/dist/builders/web.mjs +9 -0
  252. package/dist/cli/cliApp.cjs +177 -0
  253. package/dist/cli/cliApp.cjs.map +1 -0
  254. package/dist/cli/cliApp.d.cts +25 -0
  255. package/dist/cli/cliApp.d.cts.map +1 -0
  256. package/dist/cli/cliApp.d.mts +25 -0
  257. package/dist/cli/cliApp.d.mts.map +1 -0
  258. package/dist/cli/cliApp.mjs +175 -0
  259. package/dist/cli/cliApp.mjs.map +1 -0
  260. package/dist/cli/commands/api-export/index.cjs +65 -0
  261. package/dist/cli/commands/api-export/index.cjs.map +1 -0
  262. package/dist/cli/commands/api-export/index.mjs +61 -0
  263. package/dist/cli/commands/api-export/index.mjs.map +1 -0
  264. package/dist/cli/commands/baseCommand.cjs +16 -0
  265. package/dist/cli/commands/baseCommand.cjs.map +1 -0
  266. package/dist/cli/commands/baseCommand.d.cts +24 -0
  267. package/dist/cli/commands/baseCommand.d.cts.map +1 -0
  268. package/dist/cli/commands/baseCommand.d.mts +24 -0
  269. package/dist/cli/commands/baseCommand.d.mts.map +1 -0
  270. package/dist/cli/commands/baseCommand.mjs +16 -0
  271. package/dist/cli/commands/baseCommand.mjs.map +1 -0
  272. package/dist/cli/commands/compat/context.cjs +115 -0
  273. package/dist/cli/commands/compat/context.cjs.map +1 -0
  274. package/dist/cli/commands/compat/context.d.cts +22 -0
  275. package/dist/cli/commands/compat/context.d.cts.map +1 -0
  276. package/dist/cli/commands/compat/context.d.mts +22 -0
  277. package/dist/cli/commands/compat/context.d.mts.map +1 -0
  278. package/dist/cli/commands/compat/context.mjs +110 -0
  279. package/dist/cli/commands/compat/context.mjs.map +1 -0
  280. package/dist/cli/commands/compat/help.cjs +26 -0
  281. package/dist/cli/commands/compat/help.cjs.map +1 -0
  282. package/dist/cli/commands/compat/help.d.cts +4 -0
  283. package/dist/cli/commands/compat/help.d.cts.map +1 -0
  284. package/dist/cli/commands/compat/help.d.mts +4 -0
  285. package/dist/cli/commands/compat/help.d.mts.map +1 -0
  286. package/dist/cli/commands/compat/help.mjs +25 -0
  287. package/dist/cli/commands/compat/help.mjs.map +1 -0
  288. package/dist/cli/commands/compat/index.cjs +73 -0
  289. package/dist/cli/commands/compat/index.cjs.map +1 -0
  290. package/dist/cli/commands/compat/index.d.cts +14 -0
  291. package/dist/cli/commands/compat/index.d.cts.map +1 -0
  292. package/dist/cli/commands/compat/index.d.mts +14 -0
  293. package/dist/cli/commands/compat/index.d.mts.map +1 -0
  294. package/dist/cli/commands/compat/index.mjs +70 -0
  295. package/dist/cli/commands/compat/index.mjs.map +1 -0
  296. package/dist/cli/commands/compat/options.cjs +88 -0
  297. package/dist/cli/commands/compat/options.cjs.map +1 -0
  298. package/dist/cli/commands/compat/options.d.cts +15 -0
  299. package/dist/cli/commands/compat/options.d.cts.map +1 -0
  300. package/dist/cli/commands/compat/options.d.mts +15 -0
  301. package/dist/cli/commands/compat/options.d.mts.map +1 -0
  302. package/dist/cli/commands/compat/options.mjs +86 -0
  303. package/dist/cli/commands/compat/options.mjs.map +1 -0
  304. package/dist/cli/commands/compat/providers/antigravity.cjs +294 -0
  305. package/dist/cli/commands/compat/providers/antigravity.cjs.map +1 -0
  306. package/dist/cli/commands/compat/providers/antigravity.d.cts +9 -0
  307. package/dist/cli/commands/compat/providers/antigravity.d.cts.map +1 -0
  308. package/dist/cli/commands/compat/providers/antigravity.d.mts +9 -0
  309. package/dist/cli/commands/compat/providers/antigravity.d.mts.map +1 -0
  310. package/dist/cli/commands/compat/providers/antigravity.mjs +289 -0
  311. package/dist/cli/commands/compat/providers/antigravity.mjs.map +1 -0
  312. package/dist/cli/commands/compat/providers/codex.cjs +178 -0
  313. package/dist/cli/commands/compat/providers/codex.cjs.map +1 -0
  314. package/dist/cli/commands/compat/providers/codex.d.cts +17 -0
  315. package/dist/cli/commands/compat/providers/codex.d.cts.map +1 -0
  316. package/dist/cli/commands/compat/providers/codex.d.mts +17 -0
  317. package/dist/cli/commands/compat/providers/codex.d.mts.map +1 -0
  318. package/dist/cli/commands/compat/providers/codex.mjs +170 -0
  319. package/dist/cli/commands/compat/providers/codex.mjs.map +1 -0
  320. package/dist/cli/commands/compat/providers/index.cjs +65 -0
  321. package/dist/cli/commands/compat/providers/index.cjs.map +1 -0
  322. package/dist/cli/commands/compat/providers/index.d.cts +15 -0
  323. package/dist/cli/commands/compat/providers/index.d.cts.map +1 -0
  324. package/dist/cli/commands/compat/providers/index.d.mts +15 -0
  325. package/dist/cli/commands/compat/providers/index.d.mts.map +1 -0
  326. package/dist/cli/commands/compat/providers/index.mjs +45 -0
  327. package/dist/cli/commands/compat/providers/index.mjs.map +1 -0
  328. package/dist/cli/commands/compat/providers/process.cjs +172 -0
  329. package/dist/cli/commands/compat/providers/process.cjs.map +1 -0
  330. package/dist/cli/commands/compat/providers/process.d.cts +33 -0
  331. package/dist/cli/commands/compat/providers/process.d.cts.map +1 -0
  332. package/dist/cli/commands/compat/providers/process.d.mts +33 -0
  333. package/dist/cli/commands/compat/providers/process.d.mts.map +1 -0
  334. package/dist/cli/commands/compat/providers/process.mjs +159 -0
  335. package/dist/cli/commands/compat/providers/process.mjs.map +1 -0
  336. package/dist/cli/commands/compat/providers/shared.cjs +76 -0
  337. package/dist/cli/commands/compat/providers/shared.cjs.map +1 -0
  338. package/dist/cli/commands/compat/providers/shared.d.cts +40 -0
  339. package/dist/cli/commands/compat/providers/shared.d.cts.map +1 -0
  340. package/dist/cli/commands/compat/providers/shared.d.mts +40 -0
  341. package/dist/cli/commands/compat/providers/shared.d.mts.map +1 -0
  342. package/dist/cli/commands/compat/providers/shared.mjs +61 -0
  343. package/dist/cli/commands/compat/providers/shared.mjs.map +1 -0
  344. package/dist/cli/commands/compat/types.d.cts +31 -0
  345. package/dist/cli/commands/compat/types.d.cts.map +1 -0
  346. package/dist/cli/commands/compat/types.d.mts +31 -0
  347. package/dist/cli/commands/compat/types.d.mts.map +1 -0
  348. package/dist/cli/commands/doctor/help.cjs +19 -0
  349. package/dist/cli/commands/doctor/help.cjs.map +1 -0
  350. package/dist/cli/commands/doctor/help.d.cts +4 -0
  351. package/dist/cli/commands/doctor/help.d.cts.map +1 -0
  352. package/dist/cli/commands/doctor/help.d.mts +4 -0
  353. package/dist/cli/commands/doctor/help.d.mts.map +1 -0
  354. package/dist/cli/commands/doctor/help.mjs +19 -0
  355. package/dist/cli/commands/doctor/help.mjs.map +1 -0
  356. package/dist/cli/commands/doctor/index.cjs +116 -0
  357. package/dist/cli/commands/doctor/index.cjs.map +1 -0
  358. package/dist/cli/commands/doctor/index.d.cts +12 -0
  359. package/dist/cli/commands/doctor/index.d.cts.map +1 -0
  360. package/dist/cli/commands/doctor/index.d.mts +12 -0
  361. package/dist/cli/commands/doctor/index.d.mts.map +1 -0
  362. package/dist/cli/commands/doctor/index.mjs +112 -0
  363. package/dist/cli/commands/doctor/index.mjs.map +1 -0
  364. package/dist/cli/commands/emit-mcp/index.cjs +32 -0
  365. package/dist/cli/commands/emit-mcp/index.cjs.map +1 -0
  366. package/dist/cli/commands/emit-mcp/index.d.cts +19 -0
  367. package/dist/cli/commands/emit-mcp/index.d.cts.map +1 -0
  368. package/dist/cli/commands/emit-mcp/index.d.mts +19 -0
  369. package/dist/cli/commands/emit-mcp/index.d.mts.map +1 -0
  370. package/dist/cli/commands/emit-mcp/index.mjs +31 -0
  371. package/dist/cli/commands/emit-mcp/index.mjs.map +1 -0
  372. package/dist/cli/commands/explain/index.cjs +155 -0
  373. package/dist/cli/commands/explain/index.cjs.map +1 -0
  374. package/dist/cli/commands/explain/index.d.cts +57 -0
  375. package/dist/cli/commands/explain/index.d.cts.map +1 -0
  376. package/dist/cli/commands/explain/index.d.mts +57 -0
  377. package/dist/cli/commands/explain/index.d.mts.map +1 -0
  378. package/dist/cli/commands/explain/index.mjs +150 -0
  379. package/dist/cli/commands/explain/index.mjs.map +1 -0
  380. package/dist/cli/commands/history-export/help.cjs +18 -0
  381. package/dist/cli/commands/history-export/help.cjs.map +1 -0
  382. package/dist/cli/commands/history-export/help.d.cts +4 -0
  383. package/dist/cli/commands/history-export/help.d.cts.map +1 -0
  384. package/dist/cli/commands/history-export/help.d.mts +4 -0
  385. package/dist/cli/commands/history-export/help.d.mts.map +1 -0
  386. package/dist/cli/commands/history-export/help.mjs +18 -0
  387. package/dist/cli/commands/history-export/help.mjs.map +1 -0
  388. package/dist/cli/commands/history-export/index.cjs +76 -0
  389. package/dist/cli/commands/history-export/index.cjs.map +1 -0
  390. package/dist/cli/commands/history-export/index.mjs +74 -0
  391. package/dist/cli/commands/history-export/index.mjs.map +1 -0
  392. package/dist/cli/commands/history-import/help.cjs +20 -0
  393. package/dist/cli/commands/history-import/help.cjs.map +1 -0
  394. package/dist/cli/commands/history-import/help.d.cts +4 -0
  395. package/dist/cli/commands/history-import/help.d.cts.map +1 -0
  396. package/dist/cli/commands/history-import/help.d.mts +4 -0
  397. package/dist/cli/commands/history-import/help.d.mts.map +1 -0
  398. package/dist/cli/commands/history-import/help.mjs +20 -0
  399. package/dist/cli/commands/history-import/help.mjs.map +1 -0
  400. package/dist/cli/commands/history-import/index.cjs +78 -0
  401. package/dist/cli/commands/history-import/index.cjs.map +1 -0
  402. package/dist/cli/commands/history-import/index.mjs +75 -0
  403. package/dist/cli/commands/history-import/index.mjs.map +1 -0
  404. package/dist/cli/commands/init/constants.cjs +11 -0
  405. package/dist/cli/commands/init/constants.cjs.map +1 -0
  406. package/dist/cli/commands/init/constants.mjs +11 -0
  407. package/dist/cli/commands/init/constants.mjs.map +1 -0
  408. package/dist/cli/commands/init/help.cjs +17 -0
  409. package/dist/cli/commands/init/help.cjs.map +1 -0
  410. package/dist/cli/commands/init/help.d.cts +4 -0
  411. package/dist/cli/commands/init/help.d.cts.map +1 -0
  412. package/dist/cli/commands/init/help.d.mts +4 -0
  413. package/dist/cli/commands/init/help.d.mts.map +1 -0
  414. package/dist/cli/commands/init/help.mjs +17 -0
  415. package/dist/cli/commands/init/help.mjs.map +1 -0
  416. package/dist/cli/commands/init/index.cjs +87 -0
  417. package/dist/cli/commands/init/index.cjs.map +1 -0
  418. package/dist/cli/commands/init/index.d.cts +12 -0
  419. package/dist/cli/commands/init/index.d.cts.map +1 -0
  420. package/dist/cli/commands/init/index.d.mts +12 -0
  421. package/dist/cli/commands/init/index.d.mts.map +1 -0
  422. package/dist/cli/commands/init/index.mjs +83 -0
  423. package/dist/cli/commands/init/index.mjs.map +1 -0
  424. package/dist/cli/commands/init/presenter.cjs +170 -0
  425. package/dist/cli/commands/init/presenter.cjs.map +1 -0
  426. package/dist/cli/commands/init/presenter.d.cts +8 -0
  427. package/dist/cli/commands/init/presenter.d.cts.map +1 -0
  428. package/dist/cli/commands/init/presenter.d.mts +8 -0
  429. package/dist/cli/commands/init/presenter.d.mts.map +1 -0
  430. package/dist/cli/commands/init/presenter.mjs +170 -0
  431. package/dist/cli/commands/init/presenter.mjs.map +1 -0
  432. package/dist/cli/commands/launch/index.cjs +128 -0
  433. package/dist/cli/commands/launch/index.cjs.map +1 -0
  434. package/dist/cli/commands/launch/index.d.cts +29 -0
  435. package/dist/cli/commands/launch/index.d.cts.map +1 -0
  436. package/dist/cli/commands/launch/index.d.mts +29 -0
  437. package/dist/cli/commands/launch/index.d.mts.map +1 -0
  438. package/dist/cli/commands/launch/index.mjs +122 -0
  439. package/dist/cli/commands/launch/index.mjs.map +1 -0
  440. package/dist/cli/commands/sandbox/args.cjs +50 -0
  441. package/dist/cli/commands/sandbox/args.cjs.map +1 -0
  442. package/dist/cli/commands/sandbox/args.mjs +50 -0
  443. package/dist/cli/commands/sandbox/args.mjs.map +1 -0
  444. package/dist/cli/commands/sandbox/harness.cjs +61 -0
  445. package/dist/cli/commands/sandbox/harness.cjs.map +1 -0
  446. package/dist/cli/commands/sandbox/harness.mjs +60 -0
  447. package/dist/cli/commands/sandbox/harness.mjs.map +1 -0
  448. package/dist/cli/commands/sandbox/index.cjs +57 -0
  449. package/dist/cli/commands/sandbox/index.cjs.map +1 -0
  450. package/dist/cli/commands/sandbox/index.mjs +56 -0
  451. package/dist/cli/commands/sandbox/index.mjs.map +1 -0
  452. package/dist/cli/commands/sync/help.cjs +31 -0
  453. package/dist/cli/commands/sync/help.cjs.map +1 -0
  454. package/dist/cli/commands/sync/help.d.cts +4 -0
  455. package/dist/cli/commands/sync/help.d.cts.map +1 -0
  456. package/dist/cli/commands/sync/help.d.mts +4 -0
  457. package/dist/cli/commands/sync/help.d.mts.map +1 -0
  458. package/dist/cli/commands/sync/help.mjs +31 -0
  459. package/dist/cli/commands/sync/help.mjs.map +1 -0
  460. package/dist/cli/commands/sync/index.cjs +577 -0
  461. package/dist/cli/commands/sync/index.cjs.map +1 -0
  462. package/dist/cli/commands/sync/index.d.cts +65 -0
  463. package/dist/cli/commands/sync/index.d.cts.map +1 -0
  464. package/dist/cli/commands/sync/index.d.mts +65 -0
  465. package/dist/cli/commands/sync/index.d.mts.map +1 -0
  466. package/dist/cli/commands/sync/index.mjs +560 -0
  467. package/dist/cli/commands/sync/index.mjs.map +1 -0
  468. package/dist/cli/commands/sync/prepare.cjs +43 -0
  469. package/dist/cli/commands/sync/prepare.cjs.map +1 -0
  470. package/dist/cli/commands/sync/prepare.mjs +40 -0
  471. package/dist/cli/commands/sync/prepare.mjs.map +1 -0
  472. package/dist/cli/commands/sync/presenter.cjs +58 -0
  473. package/dist/cli/commands/sync/presenter.cjs.map +1 -0
  474. package/dist/cli/commands/sync/presenter.d.cts +16 -0
  475. package/dist/cli/commands/sync/presenter.d.cts.map +1 -0
  476. package/dist/cli/commands/sync/presenter.d.mts +16 -0
  477. package/dist/cli/commands/sync/presenter.d.mts.map +1 -0
  478. package/dist/cli/commands/sync/presenter.mjs +57 -0
  479. package/dist/cli/commands/sync/presenter.mjs.map +1 -0
  480. package/dist/cli/commands/sync/workflow.cjs +99 -0
  481. package/dist/cli/commands/sync/workflow.cjs.map +1 -0
  482. package/dist/cli/commands/sync/workflow.mjs +96 -0
  483. package/dist/cli/commands/sync/workflow.mjs.map +1 -0
  484. package/dist/cli/dpi.cjs +98 -0
  485. package/dist/cli/dpi.cjs.map +1 -0
  486. package/dist/cli/dpi.mjs +91 -0
  487. package/dist/cli/dpi.mjs.map +1 -0
  488. package/dist/cli/harnessOptions.cjs +60 -0
  489. package/dist/cli/harnessOptions.cjs.map +1 -0
  490. package/dist/cli/harnessOptions.d.cts +24 -0
  491. package/dist/cli/harnessOptions.d.cts.map +1 -0
  492. package/dist/cli/harnessOptions.d.mts +24 -0
  493. package/dist/cli/harnessOptions.d.mts.map +1 -0
  494. package/dist/cli/harnessOptions.mjs +57 -0
  495. package/dist/cli/harnessOptions.mjs.map +1 -0
  496. package/dist/cli/help.cjs +89 -0
  497. package/dist/cli/help.cjs.map +1 -0
  498. package/dist/cli/help.d.cts +12 -0
  499. package/dist/cli/help.d.cts.map +1 -0
  500. package/dist/cli/help.d.mts +12 -0
  501. package/dist/cli/help.d.mts.map +1 -0
  502. package/dist/cli/help.mjs +83 -0
  503. package/dist/cli/help.mjs.map +1 -0
  504. package/dist/cli/matrixOptions.cjs +178 -0
  505. package/dist/cli/matrixOptions.cjs.map +1 -0
  506. package/dist/cli/matrixOptions.d.cts +90 -0
  507. package/dist/cli/matrixOptions.d.cts.map +1 -0
  508. package/dist/cli/matrixOptions.d.mts +90 -0
  509. package/dist/cli/matrixOptions.d.mts.map +1 -0
  510. package/dist/cli/matrixOptions.mjs +151 -0
  511. package/dist/cli/matrixOptions.mjs.map +1 -0
  512. package/dist/cli/options.cjs +306 -0
  513. package/dist/cli/options.cjs.map +1 -0
  514. package/dist/cli/options.d.cts +5 -0
  515. package/dist/cli/options.d.cts.map +1 -0
  516. package/dist/cli/options.d.mts +5 -0
  517. package/dist/cli/options.d.mts.map +1 -0
  518. package/dist/cli/options.mjs +304 -0
  519. package/dist/cli/options.mjs.map +1 -0
  520. package/dist/cli/router.cjs +59 -0
  521. package/dist/cli/router.cjs.map +1 -0
  522. package/dist/cli/router.d.cts +32 -0
  523. package/dist/cli/router.d.cts.map +1 -0
  524. package/dist/cli/router.d.mts +32 -0
  525. package/dist/cli/router.d.mts.map +1 -0
  526. package/dist/cli/router.mjs +56 -0
  527. package/dist/cli/router.mjs.map +1 -0
  528. package/dist/cli/server/options.cjs +71 -0
  529. package/dist/cli/server/options.cjs.map +1 -0
  530. package/dist/cli/server/options.mjs +70 -0
  531. package/dist/cli/server/options.mjs.map +1 -0
  532. package/dist/cli/server/run.cjs +45 -0
  533. package/dist/cli/server/run.cjs.map +1 -0
  534. package/dist/cli/server/run.mjs +45 -0
  535. package/dist/cli/server/run.mjs.map +1 -0
  536. package/dist/cli-app.cjs +5 -0
  537. package/dist/cli-app.d.cts +2 -0
  538. package/dist/cli-app.d.mts +2 -0
  539. package/dist/cli-app.mjs +2 -0
  540. package/dist/cli.cjs +28 -0
  541. package/dist/cli.d.cts +11 -0
  542. package/dist/cli.d.mts +11 -0
  543. package/dist/cli.mjs +11 -0
  544. package/dist/codex.cjs +8 -0
  545. package/dist/codex.d.cts +2 -0
  546. package/dist/codex.d.mts +2 -0
  547. package/dist/codex.mjs +2 -0
  548. package/dist/commands.cjs +23 -0
  549. package/dist/commands.d.cts +9 -0
  550. package/dist/commands.d.mts +9 -0
  551. package/dist/commands.mjs +9 -0
  552. package/dist/compatibility-command.cjs +4 -0
  553. package/dist/compatibility-command.d.cts +2 -0
  554. package/dist/compatibility-command.d.mts +2 -0
  555. package/dist/compatibility-command.mjs +2 -0
  556. package/dist/compatibility-context.cjs +3 -0
  557. package/dist/compatibility-context.d.cts +2 -0
  558. package/dist/compatibility-context.d.mts +2 -0
  559. package/dist/compatibility-context.mjs +2 -0
  560. package/dist/compatibility-options.cjs +5 -0
  561. package/dist/compatibility-options.d.cts +2 -0
  562. package/dist/compatibility-options.d.mts +2 -0
  563. package/dist/compatibility-options.mjs +2 -0
  564. package/dist/compatibility.cjs +27 -0
  565. package/dist/compatibility.d.cts +6 -0
  566. package/dist/compatibility.d.mts +6 -0
  567. package/dist/compatibility.mjs +6 -0
  568. package/dist/compiler/cache.cjs +331 -0
  569. package/dist/compiler/cache.cjs.map +1 -0
  570. package/dist/compiler/cache.mjs +323 -0
  571. package/dist/compiler/cache.mjs.map +1 -0
  572. package/dist/compiler/index.cjs +996 -0
  573. package/dist/compiler/index.cjs.map +1 -0
  574. package/dist/compiler/index.mjs +988 -0
  575. package/dist/compiler/index.mjs.map +1 -0
  576. package/dist/compiler/inputs.cjs +83 -0
  577. package/dist/compiler/inputs.cjs.map +1 -0
  578. package/dist/compiler/inputs.mjs +78 -0
  579. package/dist/compiler/inputs.mjs.map +1 -0
  580. package/dist/composer.cjs +28 -0
  581. package/dist/composer.d.cts +4 -0
  582. package/dist/composer.d.mts +4 -0
  583. package/dist/composer.mjs +4 -0
  584. package/dist/composition/harnessState/index.cjs +48 -0
  585. package/dist/composition/harnessState/index.cjs.map +1 -0
  586. package/dist/composition/harnessState/index.d.cts +19 -0
  587. package/dist/composition/harnessState/index.d.cts.map +1 -0
  588. package/dist/composition/harnessState/index.d.mts +19 -0
  589. package/dist/composition/harnessState/index.d.mts.map +1 -0
  590. package/dist/composition/harnessState/index.mjs +34 -0
  591. package/dist/composition/harnessState/index.mjs.map +1 -0
  592. package/dist/composition/layerPackageInstaller/index.cjs +342 -0
  593. package/dist/composition/layerPackageInstaller/index.cjs.map +1 -0
  594. package/dist/composition/layerPackageInstaller/index.d.cts +45 -0
  595. package/dist/composition/layerPackageInstaller/index.d.cts.map +1 -0
  596. package/dist/composition/layerPackageInstaller/index.d.mts +45 -0
  597. package/dist/composition/layerPackageInstaller/index.d.mts.map +1 -0
  598. package/dist/composition/layerPackageInstaller/index.mjs +334 -0
  599. package/dist/composition/layerPackageInstaller/index.mjs.map +1 -0
  600. package/dist/composition/projectTrust/index.cjs +51 -0
  601. package/dist/composition/projectTrust/index.cjs.map +1 -0
  602. package/dist/composition/projectTrust/index.d.cts +22 -0
  603. package/dist/composition/projectTrust/index.d.cts.map +1 -0
  604. package/dist/composition/projectTrust/index.d.mts +22 -0
  605. package/dist/composition/projectTrust/index.d.mts.map +1 -0
  606. package/dist/composition/projectTrust/index.mjs +48 -0
  607. package/dist/composition/projectTrust/index.mjs.map +1 -0
  608. package/dist/composition/repository/index.cjs +69 -0
  609. package/dist/composition/repository/index.cjs.map +1 -0
  610. package/dist/composition/repository/index.d.cts +22 -0
  611. package/dist/composition/repository/index.d.cts.map +1 -0
  612. package/dist/composition/repository/index.d.mts +22 -0
  613. package/dist/composition/repository/index.d.mts.map +1 -0
  614. package/dist/composition/repository/index.mjs +64 -0
  615. package/dist/composition/repository/index.mjs.map +1 -0
  616. package/dist/composition/syncDrift/index.cjs +160 -0
  617. package/dist/composition/syncDrift/index.cjs.map +1 -0
  618. package/dist/composition/syncDrift/index.d.cts +41 -0
  619. package/dist/composition/syncDrift/index.d.cts.map +1 -0
  620. package/dist/composition/syncDrift/index.d.mts +41 -0
  621. package/dist/composition/syncDrift/index.d.mts.map +1 -0
  622. package/dist/composition/syncDrift/index.mjs +152 -0
  623. package/dist/composition/syncDrift/index.mjs.map +1 -0
  624. package/dist/composition/syncState/index.cjs +593 -0
  625. package/dist/composition/syncState/index.cjs.map +1 -0
  626. package/dist/composition/syncState/index.d.cts +188 -0
  627. package/dist/composition/syncState/index.d.cts.map +1 -0
  628. package/dist/composition/syncState/index.d.mts +188 -0
  629. package/dist/composition/syncState/index.d.mts.map +1 -0
  630. package/dist/composition/syncState/index.mjs +559 -0
  631. package/dist/composition/syncState/index.mjs.map +1 -0
  632. package/dist/composition/transitionLayers.cjs +17 -0
  633. package/dist/composition/transitionLayers.cjs.map +1 -0
  634. package/dist/composition/transitionLayers.d.cts +6 -0
  635. package/dist/composition/transitionLayers.d.cts.map +1 -0
  636. package/dist/composition/transitionLayers.d.mts +6 -0
  637. package/dist/composition/transitionLayers.d.mts.map +1 -0
  638. package/dist/composition/transitionLayers.mjs +16 -0
  639. package/dist/composition/transitionLayers.mjs.map +1 -0
  640. package/dist/composition/types/harness.d.cts +49 -0
  641. package/dist/composition/types/harness.d.cts.map +1 -0
  642. package/dist/composition/types/harness.d.mts +49 -0
  643. package/dist/composition/types/harness.d.mts.map +1 -0
  644. package/dist/config.cjs +163 -0
  645. package/dist/config.d.cts +7 -0
  646. package/dist/config.d.mts +7 -0
  647. package/dist/config.mjs +7 -0
  648. package/dist/emit-mcp-command.cjs +4 -0
  649. package/dist/emit-mcp-command.d.cts +2 -0
  650. package/dist/emit-mcp-command.d.mts +2 -0
  651. package/dist/emit-mcp-command.mjs +2 -0
  652. package/dist/explain-command.cjs +5 -0
  653. package/dist/explain-command.d.cts +2 -0
  654. package/dist/explain-command.d.mts +2 -0
  655. package/dist/explain-command.mjs +2 -0
  656. package/dist/extensions/agent-model.cjs +41 -0
  657. package/dist/extensions/agent-model.cjs.map +1 -0
  658. package/dist/extensions/agent-model.d.cts +22 -0
  659. package/dist/extensions/agent-model.d.cts.map +1 -0
  660. package/dist/extensions/agent-model.d.mts +22 -0
  661. package/dist/extensions/agent-model.d.mts.map +1 -0
  662. package/dist/extensions/agent-model.mjs +35 -0
  663. package/dist/extensions/agent-model.mjs.map +1 -0
  664. package/dist/extensions/composed-pi.cjs +46 -0
  665. package/dist/extensions/composed-pi.cjs.map +1 -0
  666. package/dist/extensions/composed-pi.d.cts +13 -0
  667. package/dist/extensions/composed-pi.d.cts.map +1 -0
  668. package/dist/extensions/composed-pi.d.mts +13 -0
  669. package/dist/extensions/composed-pi.d.mts.map +1 -0
  670. package/dist/extensions/composed-pi.mjs +41 -0
  671. package/dist/extensions/composed-pi.mjs.map +1 -0
  672. package/dist/extensions/context-catalog.cjs +96 -0
  673. package/dist/extensions/context-catalog.cjs.map +1 -0
  674. package/dist/extensions/context-catalog.d.cts +4 -0
  675. package/dist/extensions/context-catalog.d.cts.map +1 -0
  676. package/dist/extensions/context-catalog.d.mts +5 -0
  677. package/dist/extensions/context-catalog.d.mts.map +1 -0
  678. package/dist/extensions/context-catalog.mjs +96 -0
  679. package/dist/extensions/context-catalog.mjs.map +1 -0
  680. package/dist/extensions/cordis-finalizer.cjs +24 -0
  681. package/dist/extensions/cordis-finalizer.cjs.map +1 -0
  682. package/dist/extensions/cordis-finalizer.d.cts +7 -0
  683. package/dist/extensions/cordis-finalizer.d.cts.map +1 -0
  684. package/dist/extensions/cordis-finalizer.d.mts +7 -0
  685. package/dist/extensions/cordis-finalizer.d.mts.map +1 -0
  686. package/dist/extensions/cordis-finalizer.mjs +19 -0
  687. package/dist/extensions/cordis-finalizer.mjs.map +1 -0
  688. package/dist/extensions/cordis-host.cjs +19 -0
  689. package/dist/extensions/cordis-host.cjs.map +1 -0
  690. package/dist/extensions/cordis-host.d.cts +7 -0
  691. package/dist/extensions/cordis-host.d.cts.map +1 -0
  692. package/dist/extensions/cordis-host.d.mts +7 -0
  693. package/dist/extensions/cordis-host.d.mts.map +1 -0
  694. package/dist/extensions/cordis-host.mjs +14 -0
  695. package/dist/extensions/cordis-host.mjs.map +1 -0
  696. package/dist/extensions/effort.cjs +54 -0
  697. package/dist/extensions/effort.cjs.map +1 -0
  698. package/dist/extensions/effort.d.cts +8 -0
  699. package/dist/extensions/effort.d.cts.map +1 -0
  700. package/dist/extensions/effort.d.mts +8 -0
  701. package/dist/extensions/effort.d.mts.map +1 -0
  702. package/dist/extensions/effort.mjs +48 -0
  703. package/dist/extensions/effort.mjs.map +1 -0
  704. package/dist/extensions/launcher-bootstrap.cjs +38 -0
  705. package/dist/extensions/launcher-bootstrap.cjs.map +1 -0
  706. package/dist/extensions/launcher-bootstrap.d.cts +16 -0
  707. package/dist/extensions/launcher-bootstrap.d.cts.map +1 -0
  708. package/dist/extensions/launcher-bootstrap.d.mts +16 -0
  709. package/dist/extensions/launcher-bootstrap.d.mts.map +1 -0
  710. package/dist/extensions/launcher-bootstrap.mjs +33 -0
  711. package/dist/extensions/launcher-bootstrap.mjs.map +1 -0
  712. package/dist/extensions/ollama-provider.cjs +32 -0
  713. package/dist/extensions/ollama-provider.cjs.map +1 -0
  714. package/dist/extensions/ollama-provider.d.cts +5 -0
  715. package/dist/extensions/ollama-provider.d.cts.map +1 -0
  716. package/dist/extensions/ollama-provider.d.mts +5 -0
  717. package/dist/extensions/ollama-provider.d.mts.map +1 -0
  718. package/dist/extensions/ollama-provider.mjs +32 -0
  719. package/dist/extensions/ollama-provider.mjs.map +1 -0
  720. package/dist/extensions/pi.cjs +63 -0
  721. package/dist/extensions/pi.cjs.map +1 -0
  722. package/dist/extensions/pi.d.cts +7 -0
  723. package/dist/extensions/pi.d.cts.map +1 -0
  724. package/dist/extensions/pi.d.mts +7 -0
  725. package/dist/extensions/pi.d.mts.map +1 -0
  726. package/dist/extensions/pi.mjs +58 -0
  727. package/dist/extensions/pi.mjs.map +1 -0
  728. package/dist/extensions/server.cjs +20 -0
  729. package/dist/extensions/server.cjs.map +1 -0
  730. package/dist/extensions/server.d.cts +5 -0
  731. package/dist/extensions/server.d.cts.map +1 -0
  732. package/dist/extensions/server.d.mts +5 -0
  733. package/dist/extensions/server.d.mts.map +1 -0
  734. package/dist/extensions/server.mjs +15 -0
  735. package/dist/extensions/server.mjs.map +1 -0
  736. package/dist/extensions/style-system.cjs +234 -0
  737. package/dist/extensions/style-system.cjs.map +1 -0
  738. package/dist/extensions/style-system.d.cts +32 -0
  739. package/dist/extensions/style-system.d.cts.map +1 -0
  740. package/dist/extensions/style-system.d.mts +32 -0
  741. package/dist/extensions/style-system.d.mts.map +1 -0
  742. package/dist/extensions/style-system.mjs +219 -0
  743. package/dist/extensions/style-system.mjs.map +1 -0
  744. package/dist/extensions/terminal-child-session.cjs +76 -0
  745. package/dist/extensions/terminal-child-session.cjs.map +1 -0
  746. package/dist/extensions/terminal-child-session.d.cts +7 -0
  747. package/dist/extensions/terminal-child-session.d.cts.map +1 -0
  748. package/dist/extensions/terminal-child-session.d.mts +7 -0
  749. package/dist/extensions/terminal-child-session.d.mts.map +1 -0
  750. package/dist/extensions/terminal-child-session.mjs +69 -0
  751. package/dist/extensions/terminal-child-session.mjs.map +1 -0
  752. package/dist/extensions/transition-coordinator.cjs +154 -0
  753. package/dist/extensions/transition-coordinator.cjs.map +1 -0
  754. package/dist/extensions/transition-coordinator.d.cts +8 -0
  755. package/dist/extensions/transition-coordinator.d.cts.map +1 -0
  756. package/dist/extensions/transition-coordinator.d.mts +8 -0
  757. package/dist/extensions/transition-coordinator.d.mts.map +1 -0
  758. package/dist/extensions/transition-coordinator.mjs +146 -0
  759. package/dist/extensions/transition-coordinator.mjs.map +1 -0
  760. package/dist/harness-context.cjs +5 -0
  761. package/dist/harness-context.d.cts +2 -0
  762. package/dist/harness-context.d.mts +2 -0
  763. package/dist/harness-context.mjs +2 -0
  764. package/dist/harness-state.cjs +19 -0
  765. package/dist/harness-state.d.cts +2 -0
  766. package/dist/harness-state.d.mts +2 -0
  767. package/dist/harness-state.mjs +2 -0
  768. package/dist/help.cjs +16 -0
  769. package/dist/help.d.cts +8 -0
  770. package/dist/help.d.mts +8 -0
  771. package/dist/help.mjs +8 -0
  772. package/dist/index.cjs +368 -0
  773. package/dist/index.d.cts +49 -0
  774. package/dist/index.d.mts +49 -0
  775. package/dist/index.mjs +46 -0
  776. package/dist/init-command.cjs +4 -0
  777. package/dist/init-command.d.cts +2 -0
  778. package/dist/init-command.d.mts +2 -0
  779. package/dist/init-command.mjs +2 -0
  780. package/dist/launch-command.cjs +7 -0
  781. package/dist/launch-command.d.cts +2 -0
  782. package/dist/launch-command.d.mts +2 -0
  783. package/dist/launch-command.mjs +2 -0
  784. package/dist/matrix-options.cjs +28 -0
  785. package/dist/matrix-options.d.cts +2 -0
  786. package/dist/matrix-options.d.mts +2 -0
  787. package/dist/matrix-options.mjs +2 -0
  788. package/dist/matrix-switcher.cjs +11 -0
  789. package/dist/matrix-switcher.d.cts +3 -0
  790. package/dist/matrix-switcher.d.mts +3 -0
  791. package/dist/matrix-switcher.mjs +3 -0
  792. package/dist/mcp-filter.cjs +9 -0
  793. package/dist/mcp-filter.d.cts +1 -0
  794. package/dist/mcp-filter.d.mts +1 -0
  795. package/dist/mcp-filter.mjs +2 -0
  796. package/dist/options.cjs +3 -0
  797. package/dist/options.d.cts +2 -0
  798. package/dist/options.d.mts +2 -0
  799. package/dist/options.mjs +2 -0
  800. package/dist/process.cjs +12 -0
  801. package/dist/process.d.cts +2 -0
  802. package/dist/process.d.mts +2 -0
  803. package/dist/process.mjs +2 -0
  804. package/dist/project-trust.cjs +6 -0
  805. package/dist/project-trust.d.cts +2 -0
  806. package/dist/project-trust.d.mts +2 -0
  807. package/dist/project-trust.mjs +2 -0
  808. package/dist/repository.cjs +5 -0
  809. package/dist/repository.d.cts +2 -0
  810. package/dist/repository.d.mts +2 -0
  811. package/dist/repository.mjs +2 -0
  812. package/dist/resource-collector.cjs +9 -0
  813. package/dist/resource-collector.d.cts +1 -0
  814. package/dist/resource-collector.d.mts +1 -0
  815. package/dist/resource-collector.mjs +2 -0
  816. package/dist/services.cjs +154 -0
  817. package/dist/services.d.cts +21 -0
  818. package/dist/services.d.mts +21 -0
  819. package/dist/services.mjs +21 -0
  820. package/dist/shared.cjs +18 -0
  821. package/dist/shared.d.cts +2 -0
  822. package/dist/shared.d.mts +2 -0
  823. package/dist/shared.mjs +2 -0
  824. package/dist/sync-command.cjs +13 -0
  825. package/dist/sync-command.d.cts +2 -0
  826. package/dist/sync-command.d.mts +2 -0
  827. package/dist/sync-command.mjs +2 -0
  828. package/dist/sync-state.cjs +33 -0
  829. package/dist/sync-state.d.cts +2 -0
  830. package/dist/sync-state.d.mts +2 -0
  831. package/dist/sync-state.mjs +2 -0
  832. package/dist/utils.cjs +6 -0
  833. package/dist/utils.d.cts +3 -0
  834. package/dist/utils.d.mts +3 -0
  835. package/dist/utils.mjs +3 -0
  836. package/package.json +16 -16
@@ -0,0 +1,170 @@
1
+ const require_constants = require("./constants.cjs");
2
+ let _agimon_ai_doompi_core_runtime_pi_settings = require("@agimon-ai/doompi-core/runtime-pi-settings");
3
+ let _agimon_ai_doompi_ui_theme = require("@agimon-ai/doompi-ui/theme");
4
+ let _agimon_ai_doompi_config = require("@agimon-ai/doompi-config");
5
+ //#region src/cli/commands/init/presenter.ts
6
+ const FORCE_COLOR_ENV = "FORCE_COLOR";
7
+ const NO_COLOR_ENV = "NO_COLOR";
8
+ const DUMB_TERMINAL = "dumb";
9
+ const ANSI_PREFIX = "\x1B[";
10
+ const ANSI_RESET = `${ANSI_PREFIX}0m`;
11
+ const SECTION_RULE = "─".repeat(72);
12
+ const READY_RULE = "━━━━━━━━";
13
+ const SETTINGS_KEYS = [
14
+ "extensions",
15
+ "themes",
16
+ "theme",
17
+ "quietStartup"
18
+ ];
19
+ function colorEnabled(output, environment) {
20
+ const forced = environment[FORCE_COLOR_ENV];
21
+ if (forced === "0") return false;
22
+ if (forced !== void 0) return true;
23
+ if (environment[NO_COLOR_ENV] !== void 0) return false;
24
+ return output.isTTY === true && environment.TERM !== DUMB_TERMINAL;
25
+ }
26
+ function rgbCode(prefix, hex) {
27
+ const value = Number.parseInt(hex.slice(1), 16);
28
+ const red = value >> 16 & 255;
29
+ const green = value >> 8 & 255;
30
+ const blue = value & 255;
31
+ return `${String(prefix)};2;${String(red)};${String(green)};${String(blue)}`;
32
+ }
33
+ function painter(enabled, foreground, options = {}) {
34
+ if (!enabled) return (text) => text;
35
+ const codes = [rgbCode(38, foreground)];
36
+ if (options.background) codes.push(rgbCode(48, options.background));
37
+ if (options.bold) codes.unshift("1");
38
+ const opening = `${ANSI_PREFIX}${codes.join(";")}m`;
39
+ return (text) => `${opening}${text}${ANSI_RESET}`;
40
+ }
41
+ function createPalette(enabled) {
42
+ const { vars } = _agimon_ai_doompi_ui_theme.DEFAULT_THEME;
43
+ const accent = painter(enabled, vars.blue);
44
+ const badgePaint = painter(enabled, vars.bg, {
45
+ background: vars.blue,
46
+ bold: true
47
+ });
48
+ return {
49
+ accent,
50
+ badge: enabled ? (text) => badgePaint(` ${text} `) : (text) => text,
51
+ error: painter(enabled, vars.red, { bold: true }),
52
+ heading: painter(enabled, vars.magenta, { bold: true }),
53
+ key: painter(enabled, vars.cyan),
54
+ kept: painter(enabled, vars.violet),
55
+ muted: painter(enabled, vars.comment),
56
+ path: painter(enabled, vars.cyan),
57
+ strong: painter(enabled, vars.fg, { bold: true }),
58
+ success: painter(enabled, vars.green, { bold: true }),
59
+ warning: painter(enabled, vars.yellow)
60
+ };
61
+ }
62
+ function seedFileStatus(result, fileName) {
63
+ if (result.created.includes(fileName)) return "CREATED";
64
+ if (result.replaced.includes(fileName)) return "REPLACED";
65
+ if (result.preserved.includes(fileName)) return "KEPT";
66
+ throw new Error(`doompi init did not classify generated file: ${fileName}`);
67
+ }
68
+ function firstString(value) {
69
+ if (!Array.isArray(value)) return void 0;
70
+ return value.find((entry) => typeof entry === "string");
71
+ }
72
+ /** Streams the init command using the same Doom One semantic palette as the Pi TUI. */
73
+ var InitPresenter = class {
74
+ output;
75
+ palette;
76
+ constructor(output, environment) {
77
+ this.output = output;
78
+ this.palette = createPalette(colorEnabled(output, environment));
79
+ }
80
+ brand() {
81
+ const color = this.palette;
82
+ this.write([
83
+ color.muted("BOOT / INIT"),
84
+ `${color.accent("DOOM")} ${color.badge("PI")} ${color.heading("INITIALIZE")}`,
85
+ color.muted("Pi, configured for focus."),
86
+ `${color.accent(READY_RULE)} ${color.heading("SETUP")}`,
87
+ ""
88
+ ]);
89
+ }
90
+ stage(step, total, label, target) {
91
+ const color = this.palette;
92
+ this.write([`${color.accent(`[${String(step)}/${String(total)}]`)} ${color.strong(label)}`, ` ${color.muted("TARGET")} ${color.path(target)}`]);
93
+ }
94
+ stageReady(message) {
95
+ this.write([` ${this.palette.success("● READY")} ${message}`]);
96
+ }
97
+ stageFailed(message, detail) {
98
+ this.write([` ${this.palette.error("● FAILED")} ${message}`, ...detail.map((line) => ` ${this.palette.warning(line)}`)]);
99
+ }
100
+ complete(config, pi) {
101
+ this.write(["", ...this.formatPiIntegration(pi)]);
102
+ this.write(["", ...this.formatConfigResult(config)]);
103
+ this.write([
104
+ "",
105
+ this.sectionHeading("NEXT"),
106
+ ` ${this.palette.accent("01")} Open ${this.palette.path(config.directory)}.`,
107
+ ` ${this.palette.accent("02")} Edit the YAML files to match how you want Pi to work.`,
108
+ ` ${this.palette.accent("03")} From the repository you want to configure, run:`,
109
+ "",
110
+ ` ${this.palette.badge("doompi sync")}`,
111
+ "",
112
+ `${this.palette.success(READY_RULE)} ${this.palette.success("READY")} Edit your config, then sync it.`
113
+ ]);
114
+ }
115
+ formatPiIntegration(result) {
116
+ const changedKeys = SETTINGS_KEYS.filter((key) => this.settingsValueChanged(result, key));
117
+ const selectedTheme = typeof result.after.theme === "string" ? result.after.theme : _agimon_ai_doompi_ui_theme.DEFAULT_THEME_NAME;
118
+ const themeDescription = selectedTheme === _agimon_ai_doompi_ui_theme.DEFAULT_THEME_NAME ? `selected ${this.palette.path(`"${_agimon_ai_doompi_ui_theme.DEFAULT_THEME_NAME}"`)} when no prior theme was set` : `kept your existing selection ${this.palette.path(`"${selectedTheme}"`)}`;
119
+ const registeredTheme = firstString(result.after.themes) ?? result.themePath;
120
+ const summary = changedKeys.length === 0 ? this.palette.success("No settings edits were needed; DoomPi entries were already current.") : `${this.palette.warning(`Updated ${String(changedKeys.length)} managed key${changedKeys.length === 1 ? "" : "s"}.`)} ${this.palette.muted("Unrelated settings were preserved.")}`;
121
+ return [
122
+ this.sectionHeading("PI GLOBAL SETTINGS"),
123
+ ` ${this.palette.path(result.settingsPath)}`,
124
+ ` ${this.palette.muted("Pi defaults to ~/.pi/agent/settings.json and honors PI_CODING_AGENT_DIR.")}`,
125
+ ` ${summary}`,
126
+ this.settingLine(result, "extensions", `load ${this.palette.path(`"${_agimon_ai_doompi_core_runtime_pi_settings.DOOM_EXTENSION}"`)} first; ${this.palette.path(`"${_agimon_ai_doompi_core_runtime_pi_settings.AMBIENT_EXTENSION_FILTER}"`)} keeps layer loading explicit`),
127
+ this.settingLine(result, "themes", `registered ${this.palette.path(`"${registeredTheme}"`)}`),
128
+ this.settingLine(result, "theme", themeDescription),
129
+ this.settingLine(result, "quietStartup", "true for a concise Pi startup"),
130
+ ` ${this.palette.muted("RESOURCES")}`,
131
+ ` ${this.palette.muted("ALIAS".padEnd(7))}${this.palette.path(result.aliasPath)}`,
132
+ ` ${this.palette.muted("THEME".padEnd(7))}${this.palette.path(result.themePath)}`
133
+ ];
134
+ }
135
+ formatConfigResult(result) {
136
+ const lines = [
137
+ this.sectionHeading("DOOMPI CONFIGURATION"),
138
+ ` ${this.palette.path(result.directory)}`,
139
+ ..._agimon_ai_doompi_config.GLOBAL_DOOM_SEED_FILES.map((fileName) => {
140
+ const status = seedFileStatus(result, fileName);
141
+ return ` ${this.fileStatus(status)} ${this.palette.key(fileName.padEnd(13))} ${this.palette.muted("—")} ${require_constants.SEED_FILE_GUIDANCE[fileName]}`;
142
+ })
143
+ ];
144
+ if (result.preserved.length > 0) lines.push(` ${this.palette.kept("KEPT")} ${this.palette.muted("files retain your existing edits.")}`);
145
+ if (result.replaced.length > 0) lines.push(` ${this.palette.warning("REPLACED")} ${this.palette.muted("files were restored from the templates because --force was used.")}`);
146
+ return lines;
147
+ }
148
+ settingLine(result, key, description) {
149
+ return ` ${this.settingsValueChanged(result, key) ? this.palette.warning("UPDATED".padEnd(8)) : this.palette.success("READY".padEnd(8))} ${this.palette.key(`${key}:`.padEnd(14))}${description}`;
150
+ }
151
+ settingsValueChanged(result, key) {
152
+ return JSON.stringify(result.before[key]) !== JSON.stringify(result.after[key]);
153
+ }
154
+ fileStatus(status) {
155
+ const padded = status.padEnd(8);
156
+ if (status === "CREATED") return this.palette.accent(padded);
157
+ if (status === "REPLACED") return this.palette.warning(padded);
158
+ return this.palette.kept(padded);
159
+ }
160
+ sectionHeading(title) {
161
+ return `${this.palette.muted(SECTION_RULE)}\n${this.palette.heading(title)}`;
162
+ }
163
+ write(lines) {
164
+ this.output.write(`${lines.join("\n")}\n`);
165
+ }
166
+ };
167
+ //#endregion
168
+ exports.InitPresenter = InitPresenter;
169
+
170
+ //# sourceMappingURL=presenter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presenter.cjs","names":["DEFAULT_THEME","DEFAULT_THEME_NAME","DOOM_EXTENSION","AMBIENT_EXTENSION_FILTER","GLOBAL_DOOM_SEED_FILES","SEED_FILE_GUIDANCE"],"sources":["../../../../src/cli/commands/init/presenter.ts"],"sourcesContent":["import { GLOBAL_DOOM_SEED_FILES, type GlobalDoomInitResult } from '@agimon-ai/doompi-config';\nimport { AMBIENT_EXTENSION_FILTER, DOOM_EXTENSION } from '@agimon-ai/doompi-core/runtime-pi-settings';\nimport { DEFAULT_THEME, DEFAULT_THEME_NAME } from '@agimon-ai/doompi-ui/theme';\n\nimport { SEED_FILE_GUIDANCE } from './constants';\n\nconst FORCE_COLOR_ENV = 'FORCE_COLOR';\nconst NO_COLOR_ENV = 'NO_COLOR';\nconst DUMB_TERMINAL = 'dumb';\nconst ANSI_PREFIX = '\\u001B[';\nconst ANSI_RESET = `${ANSI_PREFIX}0m`;\nconst SECTION_RULE = '─'.repeat(72);\nconst READY_RULE = '━━━━━━━━';\nconst SETTINGS_KEYS = ['extensions', 'themes', 'theme', 'quietStartup'] as const;\n\nexport interface InitOutput {\n write: NodeJS.WritableStream['write'];\n isTTY?: boolean;\n}\n\nexport interface PiIntegrationSummary {\n settingsPath: string;\n themePath: string;\n aliasPath: string;\n before: Record<string, unknown>;\n after: Record<string, unknown>;\n}\n\ntype SeedFile = (typeof GLOBAL_DOOM_SEED_FILES)[number];\ntype SeedFileStatus = 'CREATED' | 'KEPT' | 'REPLACED';\ntype Paint = (text: string) => string;\n\ninterface InitPalette {\n accent: Paint;\n badge: Paint;\n error: Paint;\n heading: Paint;\n key: Paint;\n kept: Paint;\n muted: Paint;\n path: Paint;\n strong: Paint;\n success: Paint;\n warning: Paint;\n}\n\ninterface PaintOptions {\n background?: string;\n bold?: boolean;\n}\n\nfunction colorEnabled(output: InitOutput, environment: NodeJS.ProcessEnv): boolean {\n const forced = environment[FORCE_COLOR_ENV];\n if (forced === '0') return false;\n if (forced !== undefined) return true;\n if (environment[NO_COLOR_ENV] !== undefined) return false;\n return output.isTTY === true && environment.TERM !== DUMB_TERMINAL;\n}\n\nfunction rgbCode(prefix: 38 | 48, hex: string): string {\n const value = Number.parseInt(hex.slice(1), 16);\n const red = (value >> 16) & 0xff;\n const green = (value >> 8) & 0xff;\n const blue = value & 0xff;\n return `${String(prefix)};2;${String(red)};${String(green)};${String(blue)}`;\n}\n\nfunction painter(enabled: boolean, foreground: string, options: PaintOptions = {}): Paint {\n if (!enabled) return (text) => text;\n const codes = [rgbCode(38, foreground)];\n if (options.background) codes.push(rgbCode(48, options.background));\n if (options.bold) codes.unshift('1');\n const opening = `${ANSI_PREFIX}${codes.join(';')}m`;\n return (text) => `${opening}${text}${ANSI_RESET}`;\n}\n\nfunction createPalette(enabled: boolean): InitPalette {\n const { vars } = DEFAULT_THEME;\n const accent = painter(enabled, vars.blue);\n const badgePaint = painter(enabled, vars.bg, { background: vars.blue, bold: true });\n return {\n accent,\n badge: enabled ? (text) => badgePaint(` ${text} `) : (text) => text,\n error: painter(enabled, vars.red, { bold: true }),\n heading: painter(enabled, vars.magenta, { bold: true }),\n key: painter(enabled, vars.cyan),\n kept: painter(enabled, vars.violet),\n muted: painter(enabled, vars.comment),\n path: painter(enabled, vars.cyan),\n strong: painter(enabled, vars.fg, { bold: true }),\n success: painter(enabled, vars.green, { bold: true }),\n warning: painter(enabled, vars.yellow),\n };\n}\n\nfunction seedFileStatus(result: GlobalDoomInitResult, fileName: SeedFile): SeedFileStatus {\n if (result.created.includes(fileName)) return 'CREATED';\n if (result.replaced.includes(fileName)) return 'REPLACED';\n if (result.preserved.includes(fileName)) return 'KEPT';\n throw new Error(`doompi init did not classify generated file: ${fileName}`);\n}\n\nfunction firstString(value: unknown): string | undefined {\n if (!Array.isArray(value)) return undefined;\n return value.find((entry): entry is string => typeof entry === 'string');\n}\n\n/** Streams the init command using the same Doom One semantic palette as the Pi TUI. */\nexport class InitPresenter {\n private readonly output: InitOutput;\n private readonly palette: InitPalette;\n\n constructor(output: InitOutput, environment: NodeJS.ProcessEnv) {\n this.output = output;\n this.palette = createPalette(colorEnabled(output, environment));\n }\n\n brand(): void {\n const color = this.palette;\n this.write([\n color.muted('BOOT / INIT'),\n `${color.accent('DOOM')} ${color.badge('PI')} ${color.heading('INITIALIZE')}`,\n color.muted('Pi, configured for focus.'),\n `${color.accent(READY_RULE)} ${color.heading('SETUP')}`,\n '',\n ]);\n }\n\n stage(step: number, total: number, label: string, target: string): void {\n const color = this.palette;\n this.write([\n `${color.accent(`[${String(step)}/${String(total)}]`)} ${color.strong(label)}`,\n ` ${color.muted('TARGET')} ${color.path(target)}`,\n ]);\n }\n\n stageReady(message: string): void {\n this.write([` ${this.palette.success('● READY')} ${message}`]);\n }\n\n stageFailed(message: string, detail: readonly string[]): void {\n this.write([\n ` ${this.palette.error('● FAILED')} ${message}`,\n ...detail.map((line) => ` ${this.palette.warning(line)}`),\n ]);\n }\n\n complete(config: GlobalDoomInitResult, pi: PiIntegrationSummary): void {\n this.write(['', ...this.formatPiIntegration(pi)]);\n this.write(['', ...this.formatConfigResult(config)]);\n this.write([\n '',\n this.sectionHeading('NEXT'),\n ` ${this.palette.accent('01')} Open ${this.palette.path(config.directory)}.`,\n ` ${this.palette.accent('02')} Edit the YAML files to match how you want Pi to work.`,\n ` ${this.palette.accent('03')} From the repository you want to configure, run:`,\n '',\n ` ${this.palette.badge('doompi sync')}`,\n '',\n `${this.palette.success(READY_RULE)} ${this.palette.success('READY')} Edit your config, then sync it.`,\n ]);\n }\n\n private formatPiIntegration(result: PiIntegrationSummary): string[] {\n const changedKeys = SETTINGS_KEYS.filter((key) => this.settingsValueChanged(result, key));\n const selectedTheme = typeof result.after.theme === 'string' ? result.after.theme : DEFAULT_THEME_NAME;\n const themeDescription =\n selectedTheme === DEFAULT_THEME_NAME\n ? `selected ${this.palette.path(`\"${DEFAULT_THEME_NAME}\"`)} when no prior theme was set`\n : `kept your existing selection ${this.palette.path(`\"${selectedTheme}\"`)}`;\n const registeredTheme = firstString(result.after.themes) ?? result.themePath;\n const summary =\n changedKeys.length === 0\n ? this.palette.success('No settings edits were needed; DoomPi entries were already current.')\n : `${this.palette.warning(\n `Updated ${String(changedKeys.length)} managed key${changedKeys.length === 1 ? '' : 's'}.`,\n )} ${this.palette.muted('Unrelated settings were preserved.')}`;\n\n return [\n this.sectionHeading('PI GLOBAL SETTINGS'),\n ` ${this.palette.path(result.settingsPath)}`,\n ` ${this.palette.muted('Pi defaults to ~/.pi/agent/settings.json and honors PI_CODING_AGENT_DIR.')}`,\n ` ${summary}`,\n this.settingLine(\n result,\n 'extensions',\n `load ${this.palette.path(`\"${DOOM_EXTENSION}\"`)} first; ${this.palette.path(\n `\"${AMBIENT_EXTENSION_FILTER}\"`,\n )} keeps layer loading explicit`,\n ),\n this.settingLine(result, 'themes', `registered ${this.palette.path(`\"${registeredTheme}\"`)}`),\n this.settingLine(result, 'theme', themeDescription),\n this.settingLine(result, 'quietStartup', 'true for a concise Pi startup'),\n ` ${this.palette.muted('RESOURCES')}`,\n ` ${this.palette.muted('ALIAS'.padEnd(7))}${this.palette.path(result.aliasPath)}`,\n ` ${this.palette.muted('THEME'.padEnd(7))}${this.palette.path(result.themePath)}`,\n ];\n }\n\n private formatConfigResult(result: GlobalDoomInitResult): string[] {\n const lines = [\n this.sectionHeading('DOOMPI CONFIGURATION'),\n ` ${this.palette.path(result.directory)}`,\n ...GLOBAL_DOOM_SEED_FILES.map((fileName) => {\n const status = seedFileStatus(result, fileName);\n return ` ${this.fileStatus(status)} ${this.palette.key(fileName.padEnd(13))} ${this.palette.muted('—')} ${SEED_FILE_GUIDANCE[fileName]}`;\n }),\n ];\n if (result.preserved.length > 0) {\n lines.push(` ${this.palette.kept('KEPT')} ${this.palette.muted('files retain your existing edits.')}`);\n }\n if (result.replaced.length > 0) {\n lines.push(\n ` ${this.palette.warning('REPLACED')} ${this.palette.muted(\n 'files were restored from the templates because --force was used.',\n )}`,\n );\n }\n return lines;\n }\n\n private settingLine(result: PiIntegrationSummary, key: (typeof SETTINGS_KEYS)[number], description: string): string {\n const changed = this.settingsValueChanged(result, key);\n const status = changed ? this.palette.warning('UPDATED'.padEnd(8)) : this.palette.success('READY'.padEnd(8));\n return ` ${status} ${this.palette.key(`${key}:`.padEnd(14))}${description}`;\n }\n\n private settingsValueChanged(result: PiIntegrationSummary, key: (typeof SETTINGS_KEYS)[number]): boolean {\n return JSON.stringify(result.before[key]) !== JSON.stringify(result.after[key]);\n }\n\n private fileStatus(status: SeedFileStatus): string {\n const padded = status.padEnd(8);\n if (status === 'CREATED') return this.palette.accent(padded);\n if (status === 'REPLACED') return this.palette.warning(padded);\n return this.palette.kept(padded);\n }\n\n private sectionHeading(title: string): string {\n return `${this.palette.muted(SECTION_RULE)}\\n${this.palette.heading(title)}`;\n }\n\n private write(lines: readonly string[]): void {\n this.output.write(`${lines.join('\\n')}\\n`);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import "@agimon-ai/doompi-config";
2
+ //#region src/cli/commands/init/presenter.d.ts
3
+ export interface InitOutput {
4
+ write: NodeJS.WritableStream['write'];
5
+ isTTY?: boolean;
6
+ }
7
+ //#endregion
8
+ //# sourceMappingURL=presenter.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presenter.d.cts","names":[],"sources":["../../../../src/cli/commands/init/presenter.ts"],"mappings":";;iBAeiB;EACf,OAAO,OAAO;EACd"}
@@ -0,0 +1,8 @@
1
+ import "@agimon-ai/doompi-config";
2
+ //#region src/cli/commands/init/presenter.d.ts
3
+ export interface InitOutput {
4
+ write: NodeJS.WritableStream['write'];
5
+ isTTY?: boolean;
6
+ }
7
+ //#endregion
8
+ //# sourceMappingURL=presenter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presenter.d.mts","names":[],"sources":["../../../../src/cli/commands/init/presenter.ts"],"mappings":";;iBAeiB;EACf,OAAO,OAAO;EACd"}
@@ -0,0 +1,170 @@
1
+ import { SEED_FILE_GUIDANCE } from "./constants.mjs";
2
+ import { AMBIENT_EXTENSION_FILTER, DOOM_EXTENSION } from "@agimon-ai/doompi-core/runtime-pi-settings";
3
+ import { DEFAULT_THEME, DEFAULT_THEME_NAME } from "@agimon-ai/doompi-ui/theme";
4
+ import { GLOBAL_DOOM_SEED_FILES } from "@agimon-ai/doompi-config";
5
+ //#region src/cli/commands/init/presenter.ts
6
+ const FORCE_COLOR_ENV = "FORCE_COLOR";
7
+ const NO_COLOR_ENV = "NO_COLOR";
8
+ const DUMB_TERMINAL = "dumb";
9
+ const ANSI_PREFIX = "\x1B[";
10
+ const ANSI_RESET = `${ANSI_PREFIX}0m`;
11
+ const SECTION_RULE = "─".repeat(72);
12
+ const READY_RULE = "━━━━━━━━";
13
+ const SETTINGS_KEYS = [
14
+ "extensions",
15
+ "themes",
16
+ "theme",
17
+ "quietStartup"
18
+ ];
19
+ function colorEnabled(output, environment) {
20
+ const forced = environment[FORCE_COLOR_ENV];
21
+ if (forced === "0") return false;
22
+ if (forced !== void 0) return true;
23
+ if (environment[NO_COLOR_ENV] !== void 0) return false;
24
+ return output.isTTY === true && environment.TERM !== DUMB_TERMINAL;
25
+ }
26
+ function rgbCode(prefix, hex) {
27
+ const value = Number.parseInt(hex.slice(1), 16);
28
+ const red = value >> 16 & 255;
29
+ const green = value >> 8 & 255;
30
+ const blue = value & 255;
31
+ return `${String(prefix)};2;${String(red)};${String(green)};${String(blue)}`;
32
+ }
33
+ function painter(enabled, foreground, options = {}) {
34
+ if (!enabled) return (text) => text;
35
+ const codes = [rgbCode(38, foreground)];
36
+ if (options.background) codes.push(rgbCode(48, options.background));
37
+ if (options.bold) codes.unshift("1");
38
+ const opening = `${ANSI_PREFIX}${codes.join(";")}m`;
39
+ return (text) => `${opening}${text}${ANSI_RESET}`;
40
+ }
41
+ function createPalette(enabled) {
42
+ const { vars } = DEFAULT_THEME;
43
+ const accent = painter(enabled, vars.blue);
44
+ const badgePaint = painter(enabled, vars.bg, {
45
+ background: vars.blue,
46
+ bold: true
47
+ });
48
+ return {
49
+ accent,
50
+ badge: enabled ? (text) => badgePaint(` ${text} `) : (text) => text,
51
+ error: painter(enabled, vars.red, { bold: true }),
52
+ heading: painter(enabled, vars.magenta, { bold: true }),
53
+ key: painter(enabled, vars.cyan),
54
+ kept: painter(enabled, vars.violet),
55
+ muted: painter(enabled, vars.comment),
56
+ path: painter(enabled, vars.cyan),
57
+ strong: painter(enabled, vars.fg, { bold: true }),
58
+ success: painter(enabled, vars.green, { bold: true }),
59
+ warning: painter(enabled, vars.yellow)
60
+ };
61
+ }
62
+ function seedFileStatus(result, fileName) {
63
+ if (result.created.includes(fileName)) return "CREATED";
64
+ if (result.replaced.includes(fileName)) return "REPLACED";
65
+ if (result.preserved.includes(fileName)) return "KEPT";
66
+ throw new Error(`doompi init did not classify generated file: ${fileName}`);
67
+ }
68
+ function firstString(value) {
69
+ if (!Array.isArray(value)) return void 0;
70
+ return value.find((entry) => typeof entry === "string");
71
+ }
72
+ /** Streams the init command using the same Doom One semantic palette as the Pi TUI. */
73
+ var InitPresenter = class {
74
+ output;
75
+ palette;
76
+ constructor(output, environment) {
77
+ this.output = output;
78
+ this.palette = createPalette(colorEnabled(output, environment));
79
+ }
80
+ brand() {
81
+ const color = this.palette;
82
+ this.write([
83
+ color.muted("BOOT / INIT"),
84
+ `${color.accent("DOOM")} ${color.badge("PI")} ${color.heading("INITIALIZE")}`,
85
+ color.muted("Pi, configured for focus."),
86
+ `${color.accent(READY_RULE)} ${color.heading("SETUP")}`,
87
+ ""
88
+ ]);
89
+ }
90
+ stage(step, total, label, target) {
91
+ const color = this.palette;
92
+ this.write([`${color.accent(`[${String(step)}/${String(total)}]`)} ${color.strong(label)}`, ` ${color.muted("TARGET")} ${color.path(target)}`]);
93
+ }
94
+ stageReady(message) {
95
+ this.write([` ${this.palette.success("● READY")} ${message}`]);
96
+ }
97
+ stageFailed(message, detail) {
98
+ this.write([` ${this.palette.error("● FAILED")} ${message}`, ...detail.map((line) => ` ${this.palette.warning(line)}`)]);
99
+ }
100
+ complete(config, pi) {
101
+ this.write(["", ...this.formatPiIntegration(pi)]);
102
+ this.write(["", ...this.formatConfigResult(config)]);
103
+ this.write([
104
+ "",
105
+ this.sectionHeading("NEXT"),
106
+ ` ${this.palette.accent("01")} Open ${this.palette.path(config.directory)}.`,
107
+ ` ${this.palette.accent("02")} Edit the YAML files to match how you want Pi to work.`,
108
+ ` ${this.palette.accent("03")} From the repository you want to configure, run:`,
109
+ "",
110
+ ` ${this.palette.badge("doompi sync")}`,
111
+ "",
112
+ `${this.palette.success(READY_RULE)} ${this.palette.success("READY")} Edit your config, then sync it.`
113
+ ]);
114
+ }
115
+ formatPiIntegration(result) {
116
+ const changedKeys = SETTINGS_KEYS.filter((key) => this.settingsValueChanged(result, key));
117
+ const selectedTheme = typeof result.after.theme === "string" ? result.after.theme : DEFAULT_THEME_NAME;
118
+ const themeDescription = selectedTheme === DEFAULT_THEME_NAME ? `selected ${this.palette.path(`"${DEFAULT_THEME_NAME}"`)} when no prior theme was set` : `kept your existing selection ${this.palette.path(`"${selectedTheme}"`)}`;
119
+ const registeredTheme = firstString(result.after.themes) ?? result.themePath;
120
+ const summary = changedKeys.length === 0 ? this.palette.success("No settings edits were needed; DoomPi entries were already current.") : `${this.palette.warning(`Updated ${String(changedKeys.length)} managed key${changedKeys.length === 1 ? "" : "s"}.`)} ${this.palette.muted("Unrelated settings were preserved.")}`;
121
+ return [
122
+ this.sectionHeading("PI GLOBAL SETTINGS"),
123
+ ` ${this.palette.path(result.settingsPath)}`,
124
+ ` ${this.palette.muted("Pi defaults to ~/.pi/agent/settings.json and honors PI_CODING_AGENT_DIR.")}`,
125
+ ` ${summary}`,
126
+ this.settingLine(result, "extensions", `load ${this.palette.path(`"${DOOM_EXTENSION}"`)} first; ${this.palette.path(`"${AMBIENT_EXTENSION_FILTER}"`)} keeps layer loading explicit`),
127
+ this.settingLine(result, "themes", `registered ${this.palette.path(`"${registeredTheme}"`)}`),
128
+ this.settingLine(result, "theme", themeDescription),
129
+ this.settingLine(result, "quietStartup", "true for a concise Pi startup"),
130
+ ` ${this.palette.muted("RESOURCES")}`,
131
+ ` ${this.palette.muted("ALIAS".padEnd(7))}${this.palette.path(result.aliasPath)}`,
132
+ ` ${this.palette.muted("THEME".padEnd(7))}${this.palette.path(result.themePath)}`
133
+ ];
134
+ }
135
+ formatConfigResult(result) {
136
+ const lines = [
137
+ this.sectionHeading("DOOMPI CONFIGURATION"),
138
+ ` ${this.palette.path(result.directory)}`,
139
+ ...GLOBAL_DOOM_SEED_FILES.map((fileName) => {
140
+ const status = seedFileStatus(result, fileName);
141
+ return ` ${this.fileStatus(status)} ${this.palette.key(fileName.padEnd(13))} ${this.palette.muted("—")} ${SEED_FILE_GUIDANCE[fileName]}`;
142
+ })
143
+ ];
144
+ if (result.preserved.length > 0) lines.push(` ${this.palette.kept("KEPT")} ${this.palette.muted("files retain your existing edits.")}`);
145
+ if (result.replaced.length > 0) lines.push(` ${this.palette.warning("REPLACED")} ${this.palette.muted("files were restored from the templates because --force was used.")}`);
146
+ return lines;
147
+ }
148
+ settingLine(result, key, description) {
149
+ return ` ${this.settingsValueChanged(result, key) ? this.palette.warning("UPDATED".padEnd(8)) : this.palette.success("READY".padEnd(8))} ${this.palette.key(`${key}:`.padEnd(14))}${description}`;
150
+ }
151
+ settingsValueChanged(result, key) {
152
+ return JSON.stringify(result.before[key]) !== JSON.stringify(result.after[key]);
153
+ }
154
+ fileStatus(status) {
155
+ const padded = status.padEnd(8);
156
+ if (status === "CREATED") return this.palette.accent(padded);
157
+ if (status === "REPLACED") return this.palette.warning(padded);
158
+ return this.palette.kept(padded);
159
+ }
160
+ sectionHeading(title) {
161
+ return `${this.palette.muted(SECTION_RULE)}\n${this.palette.heading(title)}`;
162
+ }
163
+ write(lines) {
164
+ this.output.write(`${lines.join("\n")}\n`);
165
+ }
166
+ };
167
+ //#endregion
168
+ export { InitPresenter };
169
+
170
+ //# sourceMappingURL=presenter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presenter.mjs","names":[],"sources":["../../../../src/cli/commands/init/presenter.ts"],"sourcesContent":["import { GLOBAL_DOOM_SEED_FILES, type GlobalDoomInitResult } from '@agimon-ai/doompi-config';\nimport { AMBIENT_EXTENSION_FILTER, DOOM_EXTENSION } from '@agimon-ai/doompi-core/runtime-pi-settings';\nimport { DEFAULT_THEME, DEFAULT_THEME_NAME } from '@agimon-ai/doompi-ui/theme';\n\nimport { SEED_FILE_GUIDANCE } from './constants';\n\nconst FORCE_COLOR_ENV = 'FORCE_COLOR';\nconst NO_COLOR_ENV = 'NO_COLOR';\nconst DUMB_TERMINAL = 'dumb';\nconst ANSI_PREFIX = '\\u001B[';\nconst ANSI_RESET = `${ANSI_PREFIX}0m`;\nconst SECTION_RULE = '─'.repeat(72);\nconst READY_RULE = '━━━━━━━━';\nconst SETTINGS_KEYS = ['extensions', 'themes', 'theme', 'quietStartup'] as const;\n\nexport interface InitOutput {\n write: NodeJS.WritableStream['write'];\n isTTY?: boolean;\n}\n\nexport interface PiIntegrationSummary {\n settingsPath: string;\n themePath: string;\n aliasPath: string;\n before: Record<string, unknown>;\n after: Record<string, unknown>;\n}\n\ntype SeedFile = (typeof GLOBAL_DOOM_SEED_FILES)[number];\ntype SeedFileStatus = 'CREATED' | 'KEPT' | 'REPLACED';\ntype Paint = (text: string) => string;\n\ninterface InitPalette {\n accent: Paint;\n badge: Paint;\n error: Paint;\n heading: Paint;\n key: Paint;\n kept: Paint;\n muted: Paint;\n path: Paint;\n strong: Paint;\n success: Paint;\n warning: Paint;\n}\n\ninterface PaintOptions {\n background?: string;\n bold?: boolean;\n}\n\nfunction colorEnabled(output: InitOutput, environment: NodeJS.ProcessEnv): boolean {\n const forced = environment[FORCE_COLOR_ENV];\n if (forced === '0') return false;\n if (forced !== undefined) return true;\n if (environment[NO_COLOR_ENV] !== undefined) return false;\n return output.isTTY === true && environment.TERM !== DUMB_TERMINAL;\n}\n\nfunction rgbCode(prefix: 38 | 48, hex: string): string {\n const value = Number.parseInt(hex.slice(1), 16);\n const red = (value >> 16) & 0xff;\n const green = (value >> 8) & 0xff;\n const blue = value & 0xff;\n return `${String(prefix)};2;${String(red)};${String(green)};${String(blue)}`;\n}\n\nfunction painter(enabled: boolean, foreground: string, options: PaintOptions = {}): Paint {\n if (!enabled) return (text) => text;\n const codes = [rgbCode(38, foreground)];\n if (options.background) codes.push(rgbCode(48, options.background));\n if (options.bold) codes.unshift('1');\n const opening = `${ANSI_PREFIX}${codes.join(';')}m`;\n return (text) => `${opening}${text}${ANSI_RESET}`;\n}\n\nfunction createPalette(enabled: boolean): InitPalette {\n const { vars } = DEFAULT_THEME;\n const accent = painter(enabled, vars.blue);\n const badgePaint = painter(enabled, vars.bg, { background: vars.blue, bold: true });\n return {\n accent,\n badge: enabled ? (text) => badgePaint(` ${text} `) : (text) => text,\n error: painter(enabled, vars.red, { bold: true }),\n heading: painter(enabled, vars.magenta, { bold: true }),\n key: painter(enabled, vars.cyan),\n kept: painter(enabled, vars.violet),\n muted: painter(enabled, vars.comment),\n path: painter(enabled, vars.cyan),\n strong: painter(enabled, vars.fg, { bold: true }),\n success: painter(enabled, vars.green, { bold: true }),\n warning: painter(enabled, vars.yellow),\n };\n}\n\nfunction seedFileStatus(result: GlobalDoomInitResult, fileName: SeedFile): SeedFileStatus {\n if (result.created.includes(fileName)) return 'CREATED';\n if (result.replaced.includes(fileName)) return 'REPLACED';\n if (result.preserved.includes(fileName)) return 'KEPT';\n throw new Error(`doompi init did not classify generated file: ${fileName}`);\n}\n\nfunction firstString(value: unknown): string | undefined {\n if (!Array.isArray(value)) return undefined;\n return value.find((entry): entry is string => typeof entry === 'string');\n}\n\n/** Streams the init command using the same Doom One semantic palette as the Pi TUI. */\nexport class InitPresenter {\n private readonly output: InitOutput;\n private readonly palette: InitPalette;\n\n constructor(output: InitOutput, environment: NodeJS.ProcessEnv) {\n this.output = output;\n this.palette = createPalette(colorEnabled(output, environment));\n }\n\n brand(): void {\n const color = this.palette;\n this.write([\n color.muted('BOOT / INIT'),\n `${color.accent('DOOM')} ${color.badge('PI')} ${color.heading('INITIALIZE')}`,\n color.muted('Pi, configured for focus.'),\n `${color.accent(READY_RULE)} ${color.heading('SETUP')}`,\n '',\n ]);\n }\n\n stage(step: number, total: number, label: string, target: string): void {\n const color = this.palette;\n this.write([\n `${color.accent(`[${String(step)}/${String(total)}]`)} ${color.strong(label)}`,\n ` ${color.muted('TARGET')} ${color.path(target)}`,\n ]);\n }\n\n stageReady(message: string): void {\n this.write([` ${this.palette.success('● READY')} ${message}`]);\n }\n\n stageFailed(message: string, detail: readonly string[]): void {\n this.write([\n ` ${this.palette.error('● FAILED')} ${message}`,\n ...detail.map((line) => ` ${this.palette.warning(line)}`),\n ]);\n }\n\n complete(config: GlobalDoomInitResult, pi: PiIntegrationSummary): void {\n this.write(['', ...this.formatPiIntegration(pi)]);\n this.write(['', ...this.formatConfigResult(config)]);\n this.write([\n '',\n this.sectionHeading('NEXT'),\n ` ${this.palette.accent('01')} Open ${this.palette.path(config.directory)}.`,\n ` ${this.palette.accent('02')} Edit the YAML files to match how you want Pi to work.`,\n ` ${this.palette.accent('03')} From the repository you want to configure, run:`,\n '',\n ` ${this.palette.badge('doompi sync')}`,\n '',\n `${this.palette.success(READY_RULE)} ${this.palette.success('READY')} Edit your config, then sync it.`,\n ]);\n }\n\n private formatPiIntegration(result: PiIntegrationSummary): string[] {\n const changedKeys = SETTINGS_KEYS.filter((key) => this.settingsValueChanged(result, key));\n const selectedTheme = typeof result.after.theme === 'string' ? result.after.theme : DEFAULT_THEME_NAME;\n const themeDescription =\n selectedTheme === DEFAULT_THEME_NAME\n ? `selected ${this.palette.path(`\"${DEFAULT_THEME_NAME}\"`)} when no prior theme was set`\n : `kept your existing selection ${this.palette.path(`\"${selectedTheme}\"`)}`;\n const registeredTheme = firstString(result.after.themes) ?? result.themePath;\n const summary =\n changedKeys.length === 0\n ? this.palette.success('No settings edits were needed; DoomPi entries were already current.')\n : `${this.palette.warning(\n `Updated ${String(changedKeys.length)} managed key${changedKeys.length === 1 ? '' : 's'}.`,\n )} ${this.palette.muted('Unrelated settings were preserved.')}`;\n\n return [\n this.sectionHeading('PI GLOBAL SETTINGS'),\n ` ${this.palette.path(result.settingsPath)}`,\n ` ${this.palette.muted('Pi defaults to ~/.pi/agent/settings.json and honors PI_CODING_AGENT_DIR.')}`,\n ` ${summary}`,\n this.settingLine(\n result,\n 'extensions',\n `load ${this.palette.path(`\"${DOOM_EXTENSION}\"`)} first; ${this.palette.path(\n `\"${AMBIENT_EXTENSION_FILTER}\"`,\n )} keeps layer loading explicit`,\n ),\n this.settingLine(result, 'themes', `registered ${this.palette.path(`\"${registeredTheme}\"`)}`),\n this.settingLine(result, 'theme', themeDescription),\n this.settingLine(result, 'quietStartup', 'true for a concise Pi startup'),\n ` ${this.palette.muted('RESOURCES')}`,\n ` ${this.palette.muted('ALIAS'.padEnd(7))}${this.palette.path(result.aliasPath)}`,\n ` ${this.palette.muted('THEME'.padEnd(7))}${this.palette.path(result.themePath)}`,\n ];\n }\n\n private formatConfigResult(result: GlobalDoomInitResult): string[] {\n const lines = [\n this.sectionHeading('DOOMPI CONFIGURATION'),\n ` ${this.palette.path(result.directory)}`,\n ...GLOBAL_DOOM_SEED_FILES.map((fileName) => {\n const status = seedFileStatus(result, fileName);\n return ` ${this.fileStatus(status)} ${this.palette.key(fileName.padEnd(13))} ${this.palette.muted('—')} ${SEED_FILE_GUIDANCE[fileName]}`;\n }),\n ];\n if (result.preserved.length > 0) {\n lines.push(` ${this.palette.kept('KEPT')} ${this.palette.muted('files retain your existing edits.')}`);\n }\n if (result.replaced.length > 0) {\n lines.push(\n ` ${this.palette.warning('REPLACED')} ${this.palette.muted(\n 'files were restored from the templates because --force was used.',\n )}`,\n );\n }\n return lines;\n }\n\n private settingLine(result: PiIntegrationSummary, key: (typeof SETTINGS_KEYS)[number], description: string): string {\n const changed = this.settingsValueChanged(result, key);\n const status = changed ? this.palette.warning('UPDATED'.padEnd(8)) : this.palette.success('READY'.padEnd(8));\n return ` ${status} ${this.palette.key(`${key}:`.padEnd(14))}${description}`;\n }\n\n private settingsValueChanged(result: PiIntegrationSummary, key: (typeof SETTINGS_KEYS)[number]): boolean {\n return JSON.stringify(result.before[key]) !== JSON.stringify(result.after[key]);\n }\n\n private fileStatus(status: SeedFileStatus): string {\n const padded = status.padEnd(8);\n if (status === 'CREATED') return this.palette.accent(padded);\n if (status === 'REPLACED') return this.palette.warning(padded);\n return this.palette.kept(padded);\n }\n\n private sectionHeading(title: string): string {\n return `${this.palette.muted(SECTION_RULE)}\\n${this.palette.heading(title)}`;\n }\n\n private write(lines: readonly string[]): void {\n this.output.write(`${lines.join('\\n')}\\n`);\n }\n}\n"],"mappings":";;;;;AAMA,MAAM,kBAAkB;AACxB,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,cAAc;AACpB,MAAM,aAAa,GAAG,YAAY;AAClC,MAAM,eAAe,IAAI,OAAO,EAAE;AAClC,MAAM,aAAa;AACnB,MAAM,gBAAgB;CAAC;CAAc;CAAU;CAAS;AAAc;AAsCtE,SAAS,aAAa,QAAoB,aAAyC;CACjF,MAAM,SAAS,YAAY;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAA,GAAW,OAAO;CACjC,IAAI,YAAY,kBAAkB,KAAA,GAAW,OAAO;CACpD,OAAO,OAAO,UAAU,QAAQ,YAAY,SAAS;AACvD;AAEA,SAAS,QAAQ,QAAiB,KAAqB;CACrD,MAAM,QAAQ,OAAO,SAAS,IAAI,MAAM,CAAC,GAAG,EAAE;CAC9C,MAAM,MAAO,SAAS,KAAM;CAC5B,MAAM,QAAS,SAAS,IAAK;CAC7B,MAAM,OAAO,QAAQ;CACrB,OAAO,GAAG,OAAO,MAAM,EAAE,KAAK,OAAO,GAAG,EAAE,GAAG,OAAO,KAAK,EAAE,GAAG,OAAO,IAAI;AAC3E;AAEA,SAAS,QAAQ,SAAkB,YAAoB,UAAwB,CAAC,GAAU;CACxF,IAAI,CAAC,SAAS,QAAQ,SAAS;CAC/B,MAAM,QAAQ,CAAC,QAAQ,IAAI,UAAU,CAAC;CACtC,IAAI,QAAQ,YAAY,MAAM,KAAK,QAAQ,IAAI,QAAQ,UAAU,CAAC;CAClE,IAAI,QAAQ,MAAM,MAAM,QAAQ,GAAG;CACnC,MAAM,UAAU,GAAG,cAAc,MAAM,KAAK,GAAG,EAAE;CACjD,QAAQ,SAAS,GAAG,UAAU,OAAO;AACvC;AAEA,SAAS,cAAc,SAA+B;CACpD,MAAM,EAAE,SAAS;CACjB,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI;CACzC,MAAM,aAAa,QAAQ,SAAS,KAAK,IAAI;EAAE,YAAY,KAAK;EAAM,MAAM;CAAK,CAAC;CAClF,OAAO;EACL;EACA,OAAO,WAAW,SAAS,WAAW,IAAI,KAAK,EAAE,KAAK,SAAS;EAC/D,OAAO,QAAQ,SAAS,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;EAChD,SAAS,QAAQ,SAAS,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;EACtD,KAAK,QAAQ,SAAS,KAAK,IAAI;EAC/B,MAAM,QAAQ,SAAS,KAAK,MAAM;EAClC,OAAO,QAAQ,SAAS,KAAK,OAAO;EACpC,MAAM,QAAQ,SAAS,KAAK,IAAI;EAChC,QAAQ,QAAQ,SAAS,KAAK,IAAI,EAAE,MAAM,KAAK,CAAC;EAChD,SAAS,QAAQ,SAAS,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;EACpD,SAAS,QAAQ,SAAS,KAAK,MAAM;CACvC;AACF;AAEA,SAAS,eAAe,QAA8B,UAAoC;CACxF,IAAI,OAAO,QAAQ,SAAS,QAAQ,GAAG,OAAO;CAC9C,IAAI,OAAO,SAAS,SAAS,QAAQ,GAAG,OAAO;CAC/C,IAAI,OAAO,UAAU,SAAS,QAAQ,GAAG,OAAO;CAChD,MAAM,IAAI,MAAM,gDAAgD,UAAU;AAC5E;AAEA,SAAS,YAAY,OAAoC;CACvD,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,OAAO,KAAA;CAClC,OAAO,MAAM,MAAM,UAA2B,OAAO,UAAU,QAAQ;AACzE;;AAGA,IAAa,gBAAb,MAA2B;CACzB;CACA;CAEA,YAAY,QAAoB,aAAgC;EAC9D,KAAK,SAAS;EACd,KAAK,UAAU,cAAc,aAAa,QAAQ,WAAW,CAAC;CAChE;CAEA,QAAc;EACZ,MAAM,QAAQ,KAAK;EACnB,KAAK,MAAM;GACT,MAAM,MAAM,aAAa;GACzB,GAAG,MAAM,OAAO,MAAM,EAAE,GAAG,MAAM,MAAM,IAAI,EAAE,IAAI,MAAM,QAAQ,YAAY;GAC3E,MAAM,MAAM,2BAA2B;GACvC,GAAG,MAAM,OAAO,UAAU,EAAE,GAAG,MAAM,QAAQ,OAAO;GACpD;EACF,CAAC;CACH;CAEA,MAAM,MAAc,OAAe,OAAe,QAAsB;EACtE,MAAM,QAAQ,KAAK;EACnB,KAAK,MAAM,CACT,GAAG,MAAM,OAAO,IAAI,OAAO,IAAI,EAAE,GAAG,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,MAAM,OAAO,KAAK,KAC3E,SAAS,MAAM,MAAM,QAAQ,EAAE,IAAI,MAAM,KAAK,MAAM,GACtD,CAAC;CACH;CAEA,WAAW,SAAuB;EAChC,KAAK,MAAM,CAAC,SAAS,KAAK,QAAQ,QAAQ,SAAS,EAAE,IAAI,SAAS,CAAC;CACrE;CAEA,YAAY,SAAiB,QAAiC;EAC5D,KAAK,MAAM,CACT,SAAS,KAAK,QAAQ,MAAM,UAAU,EAAE,GAAG,WAC3C,GAAG,OAAO,KAAK,SAAS,WAAW,KAAK,QAAQ,QAAQ,IAAI,GAAG,CACjE,CAAC;CACH;CAEA,SAAS,QAA8B,IAAgC;EACrE,KAAK,MAAM,CAAC,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC,CAAC;EAChD,KAAK,MAAM,CAAC,IAAI,GAAG,KAAK,mBAAmB,MAAM,CAAC,CAAC;EACnD,KAAK,MAAM;GACT;GACA,KAAK,eAAe,MAAM;GAC1B,KAAK,KAAK,QAAQ,OAAO,IAAI,EAAE,SAAS,KAAK,QAAQ,KAAK,OAAO,SAAS,EAAE;GAC5E,KAAK,KAAK,QAAQ,OAAO,IAAI,EAAE;GAC/B,KAAK,KAAK,QAAQ,OAAO,IAAI,EAAE;GAC/B;GACA,SAAS,KAAK,QAAQ,MAAM,aAAa;GACzC;GACA,GAAG,KAAK,QAAQ,QAAQ,UAAU,EAAE,GAAG,KAAK,QAAQ,QAAQ,OAAO,EAAE;EACvE,CAAC;CACH;CAEA,oBAA4B,QAAwC;EAClE,MAAM,cAAc,cAAc,QAAQ,QAAQ,KAAK,qBAAqB,QAAQ,GAAG,CAAC;EACxF,MAAM,gBAAgB,OAAO,OAAO,MAAM,UAAU,WAAW,OAAO,MAAM,QAAQ;EACpF,MAAM,mBACJ,kBAAkB,qBACd,YAAY,KAAK,QAAQ,KAAK,IAAI,mBAAmB,EAAE,EAAE,gCACzD,gCAAgC,KAAK,QAAQ,KAAK,IAAI,cAAc,EAAE;EAC5E,MAAM,kBAAkB,YAAY,OAAO,MAAM,MAAM,KAAK,OAAO;EACnE,MAAM,UACJ,YAAY,WAAW,IACnB,KAAK,QAAQ,QAAQ,qEAAqE,IAC1F,GAAG,KAAK,QAAQ,QACd,WAAW,OAAO,YAAY,MAAM,EAAE,cAAc,YAAY,WAAW,IAAI,KAAK,IAAI,EAC1F,EAAE,GAAG,KAAK,QAAQ,MAAM,oCAAoC;EAElE,OAAO;GACL,KAAK,eAAe,oBAAoB;GACxC,KAAK,KAAK,QAAQ,KAAK,OAAO,YAAY;GAC1C,KAAK,KAAK,QAAQ,MAAM,0EAA0E;GAClG,KAAK;GACL,KAAK,YACH,QACA,cACA,QAAQ,KAAK,QAAQ,KAAK,IAAI,eAAe,EAAE,EAAE,UAAU,KAAK,QAAQ,KACtE,IAAI,yBAAyB,EAC/B,EAAE,8BACJ;GACA,KAAK,YAAY,QAAQ,UAAU,cAAc,KAAK,QAAQ,KAAK,IAAI,gBAAgB,EAAE,GAAG;GAC5F,KAAK,YAAY,QAAQ,SAAS,gBAAgB;GAClD,KAAK,YAAY,QAAQ,gBAAgB,+BAA+B;GACxE,KAAK,KAAK,QAAQ,MAAM,WAAW;GACnC,OAAO,KAAK,QAAQ,MAAM,QAAQ,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,KAAK,OAAO,SAAS;GACjF,OAAO,KAAK,QAAQ,MAAM,QAAQ,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,KAAK,OAAO,SAAS;EACnF;CACF;CAEA,mBAA2B,QAAwC;EACjE,MAAM,QAAQ;GACZ,KAAK,eAAe,sBAAsB;GAC1C,KAAK,KAAK,QAAQ,KAAK,OAAO,SAAS;GACvC,GAAG,uBAAuB,KAAK,aAAa;IAC1C,MAAM,SAAS,eAAe,QAAQ,QAAQ;IAC9C,OAAO,KAAK,KAAK,WAAW,MAAM,EAAE,GAAG,KAAK,QAAQ,IAAI,SAAS,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,QAAQ,MAAM,GAAG,EAAE,GAAG,mBAAmB;GAChI,CAAC;EACH;EACA,IAAI,OAAO,UAAU,SAAS,GAC5B,MAAM,KAAK,KAAK,KAAK,QAAQ,KAAK,MAAM,EAAE,GAAG,KAAK,QAAQ,MAAM,mCAAmC,GAAG;EAExG,IAAI,OAAO,SAAS,SAAS,GAC3B,MAAM,KACJ,KAAK,KAAK,QAAQ,QAAQ,UAAU,EAAE,GAAG,KAAK,QAAQ,MACpD,kEACF,GACF;EAEF,OAAO;CACT;CAEA,YAAoB,QAA8B,KAAqC,aAA6B;EAGlH,OAAO,KAFS,KAAK,qBAAqB,QAAQ,GAC7B,IAAI,KAAK,QAAQ,QAAQ,UAAU,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,QAAQ,QAAQ,OAAO,CAAC,CAAC,EACxF,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC,IAAI;CACjE;CAEA,qBAA6B,QAA8B,KAA8C;EACvG,OAAO,KAAK,UAAU,OAAO,OAAO,IAAI,MAAM,KAAK,UAAU,OAAO,MAAM,IAAI;CAChF;CAEA,WAAmB,QAAgC;EACjD,MAAM,SAAS,OAAO,OAAO,CAAC;EAC9B,IAAI,WAAW,WAAW,OAAO,KAAK,QAAQ,OAAO,MAAM;EAC3D,IAAI,WAAW,YAAY,OAAO,KAAK,QAAQ,QAAQ,MAAM;EAC7D,OAAO,KAAK,QAAQ,KAAK,MAAM;CACjC;CAEA,eAAuB,OAAuB;EAC5C,OAAO,GAAG,KAAK,QAAQ,MAAM,YAAY,EAAE,IAAI,KAAK,QAAQ,QAAQ,KAAK;CAC3E;CAEA,MAAc,OAAgC;EAC5C,KAAK,OAAO,MAAM,GAAG,MAAM,KAAK,IAAI,EAAE,GAAG;CAC3C;AACF"}
@@ -0,0 +1,128 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_baseCommand = require("../baseCommand.cjs");
3
+ const require_process = require("../compat/providers/process.cjs");
4
+ const require_index = require("../../../composition/projectTrust/index.cjs");
5
+ const require_constants = require("../../../builders/cli/constants.cjs");
6
+ const require_index$1 = require("../../../builders/cli/launchPlan/index.cjs");
7
+ let _agimon_ai_doompi_core_runtime_log_sink_telemetry = require("@agimon-ai/doompi-core/runtime-log-sink-telemetry");
8
+ let _agimon_ai_doompi_core_runtime_json = require("@agimon-ai/doompi-core/runtime-json");
9
+ let cross_spawn = require("cross-spawn");
10
+ cross_spawn = require_runtime.__toESM(cross_spawn, 1);
11
+ let _agimon_ai_doompi_core_module_resolution = require("@agimon-ai/doompi-core/module-resolution");
12
+ //#region src/cli/commands/launch/index.ts
13
+ const VIBE_LINT_FORMAT = "vibe-lint";
14
+ const PRINT_OPTION = "--print";
15
+ const APPROVE_OPTION = "--approve";
16
+ const NO_SESSION_OPTION = "--no-session";
17
+ const SYSTEM_PROMPT_OPTION = "--system-prompt";
18
+ const IGNORE_STDIO = "ignore";
19
+ const PIPE_STDIO = "pipe";
20
+ const INHERIT_STDIO = "inherit";
21
+ function parseVibeLintInvocation(input) {
22
+ let parsed;
23
+ try {
24
+ parsed = JSON.parse(input);
25
+ } catch (error) {
26
+ throw new Error("Expected a JSON vibe-lint invocation on stdin", { cause: error });
27
+ }
28
+ if (!(0, _agimon_ai_doompi_core_runtime_json.isRecord)(parsed) || typeof parsed.prompt !== "string" || typeof parsed.systemPrompt !== "string") throw new Error("A vibe-lint invocation requires string prompt and systemPrompt fields");
29
+ if (parsed.maxTokens !== void 0 && typeof parsed.maxTokens !== "number") throw new Error("A vibe-lint invocation maxTokens field must be a number");
30
+ if (parsed.screenshotPaths !== void 0 && (!Array.isArray(parsed.screenshotPaths) || !parsed.screenshotPaths.every((value) => typeof value === "string"))) throw new Error("A vibe-lint invocation screenshotPaths field must be an array of strings");
31
+ return {
32
+ prompt: parsed.prompt,
33
+ systemPrompt: parsed.systemPrompt,
34
+ maxTokens: parsed.maxTokens,
35
+ screenshotPaths: parsed.screenshotPaths
36
+ };
37
+ }
38
+ function buildVibeLintPiArgs(piArgs, invocation) {
39
+ return [
40
+ ...piArgs,
41
+ PRINT_OPTION,
42
+ ...!require_index.hasProjectTrustOption(piArgs) ? [APPROVE_OPTION] : [],
43
+ NO_SESSION_OPTION,
44
+ SYSTEM_PROMPT_OPTION,
45
+ invocation.systemPrompt,
46
+ ...(invocation.screenshotPaths ?? []).map((screenshotPath) => `@${screenshotPath}`),
47
+ invocation.prompt
48
+ ];
49
+ }
50
+ function formatVibeLintResponse(content) {
51
+ return `${JSON.stringify({ content: content.trim() })}\n`;
52
+ }
53
+ async function readStdin() {
54
+ const chunks = [];
55
+ for await (const chunk of process.stdin) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
56
+ return Buffer.concat(chunks).toString("utf-8");
57
+ }
58
+ /**
59
+ * Spawns Pi with the resolved extensions, environment, and theme.
60
+ *
61
+ * This is the default command: it matches whenever no diagnostic flag claimed
62
+ * the run.
63
+ */
64
+ async function runLaunch(context, telemetry) {
65
+ const { options } = context;
66
+ const compositionRecordPath = context.environment[require_constants.LAUNCHER_COMPOSITION_REQUEST_ENV]?.trim();
67
+ const plan = await require_index$1.resolveLaunchPlan(context, telemetry, compositionRecordPath ? { compositionRecordPath } : {});
68
+ const environment = plan.environment;
69
+ let piArgs = plan.piArgs;
70
+ const launchExtensions = plan.extensions;
71
+ if (options.outputFormat === VIBE_LINT_FORMAT) {
72
+ const invocation = parseVibeLintInvocation(await readStdin());
73
+ piArgs = buildVibeLintPiArgs(piArgs, invocation);
74
+ }
75
+ const startedAt = Date.now();
76
+ const child = (0, cross_spawn.default)(process.execPath, [(0, _agimon_ai_doompi_core_module_resolution.piCliPath)(), ...piArgs], {
77
+ cwd: options.cwd,
78
+ env: environment,
79
+ stdio: options.outputFormat === VIBE_LINT_FORMAT ? [
80
+ IGNORE_STDIO,
81
+ PIPE_STDIO,
82
+ PIPE_STDIO
83
+ ] : INHERIT_STDIO
84
+ });
85
+ let stdout = "";
86
+ if (options.outputFormat === VIBE_LINT_FORMAT) {
87
+ if (!child.stdout || !child.stderr) throw new Error("Failed to open Pi output streams");
88
+ child.stdout.on("data", (chunk) => {
89
+ stdout += chunk.toString();
90
+ });
91
+ child.stderr.on("data", (chunk) => {
92
+ process.stderr.write(chunk);
93
+ });
94
+ }
95
+ const stopForwarding = require_process.forwardSignals(child);
96
+ const result = await telemetry.runInSpan("doom_pi.pi_session", {
97
+ "harness.extension.count": launchExtensions.length,
98
+ "harness.mode": options.outputFormat
99
+ }, () => require_process.waitForExit(child)).catch(async (error) => {
100
+ await telemetry.recordError(_agimon_ai_doompi_core_runtime_log_sink_telemetry.HARNESS_EVENT.launchFailed, error, { "harness.duration_ms": Date.now() - startedAt });
101
+ throw error;
102
+ }).finally(stopForwarding);
103
+ telemetry.recordEvent(_agimon_ai_doompi_core_runtime_log_sink_telemetry.HARNESS_EVENT.launchCompleted, {
104
+ "harness.exit_code": result,
105
+ "harness.duration_ms": Date.now() - startedAt,
106
+ "harness.mode": options.outputFormat ?? "default"
107
+ });
108
+ if (options.outputFormat === VIBE_LINT_FORMAT && result === 0) process.stdout.write(formatVibeLintResponse(stdout));
109
+ return result;
110
+ }
111
+ /** Compatibility API. Executables call the command function directly. */
112
+ var LaunchCommand = class extends require_baseCommand.BaseCommand {
113
+ name = "launch";
114
+ matches(_options) {
115
+ return true;
116
+ }
117
+ async execute(context, telemetry) {
118
+ return runLaunch(context, telemetry);
119
+ }
120
+ };
121
+ //#endregion
122
+ exports.LaunchCommand = LaunchCommand;
123
+ exports.buildVibeLintPiArgs = buildVibeLintPiArgs;
124
+ exports.formatVibeLintResponse = formatVibeLintResponse;
125
+ exports.parseVibeLintInvocation = parseVibeLintInvocation;
126
+ exports.runLaunch = runLaunch;
127
+
128
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["isRecord","hasProjectTrustOption","LAUNCHER_COMPOSITION_REQUEST_ENV","resolveLaunchPlan","spawn","piCliPath","forwardSignals","waitForExit","HARNESS_EVENT","BaseCommand"],"sources":["../../../../src/cli/commands/launch/index.ts"],"sourcesContent":["import { piCliPath } from '@agimon-ai/doompi-core/module-resolution';\nimport { isRecord } from '@agimon-ai/doompi-core/runtime-json';\nimport { HARNESS_EVENT, type HarnessTelemetry } from '@agimon-ai/doompi-core/runtime-log-sink-telemetry';\nimport spawn from 'cross-spawn';\n\nimport { LAUNCHER_COMPOSITION_REQUEST_ENV } from '../../../builders/cli/constants';\nimport type { HarnessContext } from '../../../builders/cli/harnessContext';\nimport { resolveLaunchPlan } from '../../../builders/cli/launchPlan';\nimport { hasProjectTrustOption } from '../../../composition/projectTrust';\nimport type { HarnessOptions } from '../../../composition/types/harness';\nimport { BaseCommand } from '../baseCommand';\nimport { forwardSignals, waitForExit } from '../compat/providers/process';\n\nconst VIBE_LINT_FORMAT = 'vibe-lint';\nconst PRINT_OPTION = '--print';\nconst APPROVE_OPTION = '--approve';\nconst NO_SESSION_OPTION = '--no-session';\nconst SYSTEM_PROMPT_OPTION = '--system-prompt';\nconst IGNORE_STDIO = 'ignore';\nconst PIPE_STDIO = 'pipe';\nconst INHERIT_STDIO = 'inherit';\n\nexport interface VibeLintInvocation {\n prompt: string;\n systemPrompt: string;\n maxTokens?: number;\n screenshotPaths?: string[];\n}\n\nexport function parseVibeLintInvocation(input: string): VibeLintInvocation {\n let parsed: unknown;\n try {\n parsed = JSON.parse(input);\n } catch (error) {\n throw new Error('Expected a JSON vibe-lint invocation on stdin', { cause: error });\n }\n\n if (!isRecord(parsed) || typeof parsed.prompt !== 'string' || typeof parsed.systemPrompt !== 'string') {\n throw new Error('A vibe-lint invocation requires string prompt and systemPrompt fields');\n }\n if (parsed.maxTokens !== undefined && typeof parsed.maxTokens !== 'number') {\n throw new Error('A vibe-lint invocation maxTokens field must be a number');\n }\n if (\n parsed.screenshotPaths !== undefined &&\n (!Array.isArray(parsed.screenshotPaths) || !parsed.screenshotPaths.every((value) => typeof value === 'string'))\n ) {\n throw new Error('A vibe-lint invocation screenshotPaths field must be an array of strings');\n }\n\n return {\n prompt: parsed.prompt,\n systemPrompt: parsed.systemPrompt,\n maxTokens: parsed.maxTokens,\n screenshotPaths: parsed.screenshotPaths as string[] | undefined,\n };\n}\n\nexport function buildVibeLintPiArgs(piArgs: string[], invocation: VibeLintInvocation): string[] {\n return [\n ...piArgs,\n PRINT_OPTION,\n ...(!hasProjectTrustOption(piArgs) ? [APPROVE_OPTION] : []),\n // Reviews are disposable and must not appear in Pi's resume history.\n NO_SESSION_OPTION,\n SYSTEM_PROMPT_OPTION,\n invocation.systemPrompt,\n ...(invocation.screenshotPaths ?? []).map((screenshotPath) => `@${screenshotPath}`),\n invocation.prompt,\n ];\n}\n\nexport function formatVibeLintResponse(content: string): string {\n return `${JSON.stringify({ content: content.trim() })}\\n`;\n}\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));\n }\n return Buffer.concat(chunks).toString('utf-8');\n}\n\n/**\n * Spawns Pi with the resolved extensions, environment, and theme.\n *\n * This is the default command: it matches whenever no diagnostic flag claimed\n * the run.\n */\nexport async function runLaunch(context: HarnessContext, telemetry: HarnessTelemetry): Promise<number> {\n const { options } = context;\n // A caller that owns this process's lifetime, such as doompi-server, asks\n // for a composition record so a mode switch reloads in place instead of\n // needing a new process. Absent, the session composes as it always has.\n const compositionRecordPath = context.environment[LAUNCHER_COMPOSITION_REQUEST_ENV]?.trim();\n const plan = await resolveLaunchPlan(context, telemetry, compositionRecordPath ? { compositionRecordPath } : {});\n const environment = plan.environment;\n let piArgs = plan.piArgs;\n const launchExtensions = plan.extensions;\n\n if (options.outputFormat === VIBE_LINT_FORMAT) {\n const invocation = parseVibeLintInvocation(await readStdin());\n piArgs = buildVibeLintPiArgs(piArgs, invocation);\n }\n\n const startedAt = Date.now();\n const child = spawn(process.execPath, [piCliPath(), ...piArgs], {\n cwd: options.cwd,\n env: environment,\n stdio: options.outputFormat === VIBE_LINT_FORMAT ? [IGNORE_STDIO, PIPE_STDIO, PIPE_STDIO] : INHERIT_STDIO,\n });\n let stdout = '';\n if (options.outputFormat === VIBE_LINT_FORMAT) {\n if (!child.stdout || !child.stderr) throw new Error('Failed to open Pi output streams');\n child.stdout.on('data', (chunk: string | Buffer) => {\n stdout += chunk.toString();\n });\n child.stderr.on('data', (chunk: string | Buffer) => {\n process.stderr.write(chunk);\n });\n }\n\n // Shared with the compatibility providers, so a second Ctrl-C still reaches\n // the child and SIGHUP and SIGQUIT are forwarded too.\n const stopForwarding = forwardSignals(child);\n const result = await telemetry\n .runInSpan(\n 'doom_pi.pi_session',\n {\n 'harness.extension.count': launchExtensions.length,\n 'harness.mode': options.outputFormat,\n },\n () => waitForExit(child),\n )\n .catch(async (error: unknown) => {\n // A spawn error means Pi never started, which is invisible to the\n // session telemetry the child would otherwise have reported.\n await telemetry.recordError(HARNESS_EVENT.launchFailed, error, {\n 'harness.duration_ms': Date.now() - startedAt,\n });\n throw error;\n })\n .finally(stopForwarding);\n\n void telemetry.recordEvent(HARNESS_EVENT.launchCompleted, {\n 'harness.exit_code': result,\n 'harness.duration_ms': Date.now() - startedAt,\n 'harness.mode': options.outputFormat ?? 'default',\n });\n\n if (options.outputFormat === VIBE_LINT_FORMAT && result === 0) {\n process.stdout.write(formatVibeLintResponse(stdout));\n }\n return result;\n}\n\n/** Compatibility API. Executables call the command function directly. */\nexport class LaunchCommand extends BaseCommand {\n readonly name = 'launch';\n\n matches(_options: HarnessOptions): boolean {\n return true;\n }\n\n async execute(context: HarnessContext, telemetry: HarnessTelemetry): Promise<number> {\n return runLaunch(context, telemetry);\n }\n}\n"],"mappings":";;;;;;;;;;;;AAaA,MAAM,mBAAmB;AACzB,MAAM,eAAe;AACrB,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,uBAAuB;AAC7B,MAAM,eAAe;AACrB,MAAM,aAAa;AACnB,MAAM,gBAAgB;AAStB,SAAgB,wBAAwB,OAAmC;CACzE,IAAI;CACJ,IAAI;EACF,SAAS,KAAK,MAAM,KAAK;CAC3B,SAAS,OAAO;EACd,MAAM,IAAI,MAAM,iDAAiD,EAAE,OAAO,MAAM,CAAC;CACnF;CAEA,IAAI,EAAA,GAACA,oCAAAA,SAAAA,CAAS,MAAM,KAAK,OAAO,OAAO,WAAW,YAAY,OAAO,OAAO,iBAAiB,UAC3F,MAAM,IAAI,MAAM,uEAAuE;CAEzF,IAAI,OAAO,cAAc,KAAA,KAAa,OAAO,OAAO,cAAc,UAChE,MAAM,IAAI,MAAM,yDAAyD;CAE3E,IACE,OAAO,oBAAoB,KAAA,MAC1B,CAAC,MAAM,QAAQ,OAAO,eAAe,KAAK,CAAC,OAAO,gBAAgB,OAAO,UAAU,OAAO,UAAU,QAAQ,IAE7G,MAAM,IAAI,MAAM,0EAA0E;CAG5F,OAAO;EACL,QAAQ,OAAO;EACf,cAAc,OAAO;EACrB,WAAW,OAAO;EAClB,iBAAiB,OAAO;CAC1B;AACF;AAEA,SAAgB,oBAAoB,QAAkB,YAA0C;CAC9F,OAAO;EACL,GAAG;EACH;EACA,GAAI,CAACC,cAAAA,sBAAsB,MAAM,IAAI,CAAC,cAAc,IAAI,CAAC;EAEzD;EACA;EACA,WAAW;EACX,IAAI,WAAW,mBAAmB,CAAC,EAAA,CAAG,KAAK,mBAAmB,IAAI,gBAAgB;EAClF,WAAW;CACb;AACF;AAEA,SAAgB,uBAAuB,SAAyB;CAC9D,OAAO,GAAG,KAAK,UAAU,EAAE,SAAS,QAAQ,KAAK,EAAE,CAAC,EAAE;AACxD;AAEA,eAAe,YAA6B;CAC1C,MAAM,SAAmB,CAAC;CAC1B,WAAW,MAAM,SAAS,QAAQ,OAChC,OAAO,KAAK,OAAO,SAAS,KAAK,IAAI,QAAQ,OAAO,KAAK,OAAO,KAAK,CAAC,CAAC;CAEzE,OAAO,OAAO,OAAO,MAAM,CAAC,CAAC,SAAS,OAAO;AAC/C;;;;;;;AAQA,eAAsB,UAAU,SAAyB,WAA8C;CACrG,MAAM,EAAE,YAAY;CAIpB,MAAM,wBAAwB,QAAQ,YAAYC,kBAAAA,iCAAiC,EAAE,KAAK;CAC1F,MAAM,OAAO,MAAMC,gBAAAA,kBAAkB,SAAS,WAAW,wBAAwB,EAAE,sBAAsB,IAAI,CAAC,CAAC;CAC/G,MAAM,cAAc,KAAK;CACzB,IAAI,SAAS,KAAK;CAClB,MAAM,mBAAmB,KAAK;CAE9B,IAAI,QAAQ,iBAAiB,kBAAkB;EAC7C,MAAM,aAAa,wBAAwB,MAAM,UAAU,CAAC;EAC5D,SAAS,oBAAoB,QAAQ,UAAU;CACjD;CAEA,MAAM,YAAY,KAAK,IAAI;CAC3B,MAAM,SAAA,GAAQC,YAAAA,QAAAA,CAAM,QAAQ,UAAU,EAAA,GAACC,yCAAAA,UAAAA,CAAU,GAAG,GAAG,MAAM,GAAG;EAC9D,KAAK,QAAQ;EACb,KAAK;EACL,OAAO,QAAQ,iBAAiB,mBAAmB;GAAC;GAAc;GAAY;EAAU,IAAI;CAC9F,CAAC;CACD,IAAI,SAAS;CACb,IAAI,QAAQ,iBAAiB,kBAAkB;EAC7C,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,QAAQ,MAAM,IAAI,MAAM,kCAAkC;EACtF,MAAM,OAAO,GAAG,SAAS,UAA2B;GAClD,UAAU,MAAM,SAAS;EAC3B,CAAC;EACD,MAAM,OAAO,GAAG,SAAS,UAA2B;GAClD,QAAQ,OAAO,MAAM,KAAK;EAC5B,CAAC;CACH;CAIA,MAAM,iBAAiBC,gBAAAA,eAAe,KAAK;CAC3C,MAAM,SAAS,MAAM,UAClB,UACC,sBACA;EACE,2BAA2B,iBAAiB;EAC5C,gBAAgB,QAAQ;CAC1B,SACMC,gBAAAA,YAAY,KAAK,CACzB,CAAC,CACA,MAAM,OAAO,UAAmB;EAG/B,MAAM,UAAU,YAAYC,kDAAAA,cAAc,cAAc,OAAO,EAC7D,uBAAuB,KAAK,IAAI,IAAI,UACtC,CAAC;EACD,MAAM;CACR,CAAC,CAAC,CACD,QAAQ,cAAc;CAEzB,UAAe,YAAYA,kDAAAA,cAAc,iBAAiB;EACxD,qBAAqB;EACrB,uBAAuB,KAAK,IAAI,IAAI;EACpC,gBAAgB,QAAQ,gBAAgB;CAC1C,CAAC;CAED,IAAI,QAAQ,iBAAiB,oBAAoB,WAAW,GAC1D,QAAQ,OAAO,MAAM,uBAAuB,MAAM,CAAC;CAErD,OAAO;AACT;;AAGA,IAAa,gBAAb,cAAmCC,oBAAAA,YAAY;CAC7C,OAAgB;CAEhB,QAAQ,UAAmC;EACzC,OAAO;CACT;CAEA,MAAM,QAAQ,SAAyB,WAA8C;EACnF,OAAO,UAAU,SAAS,SAAS;CACrC;AACF"}
@@ -0,0 +1,29 @@
1
+ import { HarnessOptions } from "../../../composition/types/harness.cjs";
2
+ import { HarnessContext } from "../../../builders/cli/harnessContext.cjs";
3
+ import { BaseCommand } from "../baseCommand.cjs";
4
+ import { HarnessTelemetry } from "@agimon-ai/doompi-core/runtime-log-sink-telemetry";
5
+ //#region src/cli/commands/launch/index.d.ts
6
+ export interface VibeLintInvocation {
7
+ prompt: string;
8
+ systemPrompt: string;
9
+ maxTokens?: number;
10
+ screenshotPaths?: string[];
11
+ }
12
+ export declare function parseVibeLintInvocation(input: string): VibeLintInvocation;
13
+ export declare function buildVibeLintPiArgs(piArgs: string[], invocation: VibeLintInvocation): string[];
14
+ export declare function formatVibeLintResponse(content: string): string;
15
+ /**
16
+ * Spawns Pi with the resolved extensions, environment, and theme.
17
+ *
18
+ * This is the default command: it matches whenever no diagnostic flag claimed
19
+ * the run.
20
+ */
21
+ export declare function runLaunch(context: HarnessContext, telemetry: HarnessTelemetry): Promise<number>;
22
+ /** Compatibility API. Executables call the command function directly. */
23
+ export declare class LaunchCommand extends BaseCommand {
24
+ readonly name = "launch";
25
+ matches(_options: HarnessOptions): boolean;
26
+ execute(context: HarnessContext, telemetry: HarnessTelemetry): Promise<number>;
27
+ }
28
+ //#endregion
29
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../../src/cli/commands/launch/index.ts"],"mappings":";;;;;iBAsBiB;EACf;EACA;EACA;EACA;;wBAGc,wBAAwB,gBAAgB;wBA6BxC,oBAAoB,kBAAkB,YAAY;wBAclD,uBAAuB;;;;;;;wBAkBjB,UAAU,SAAS,gBAAgB,WAAW,mBAAmB;;qBAoE1E,sBAAsB;WACxB;EAET,QAAQ,UAAU;EAIZ,QAAQ,SAAS,gBAAgB,WAAW,mBAAmB"}