forgebook 0.3.3 → 0.4.0

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 (690) hide show
  1. package/README.md +914 -72
  2. package/dist/bin/forgebook/agentClient.d.ts +2 -1
  3. package/dist/bin/forgebook/agentClient.js +13 -6
  4. package/dist/bin/forgebook/agentGuide.d.ts +59 -0
  5. package/dist/bin/forgebook/agentGuide.js +203 -0
  6. package/dist/bin/forgebook/agentLoopCommands.mjs +22 -42
  7. package/dist/bin/forgebook/agentSetup/agentFiles.d.ts +55 -0
  8. package/dist/bin/forgebook/agentSetup/agentFiles.js +319 -0
  9. package/dist/bin/forgebook/agentSetup/assistantHooks.d.ts +71 -0
  10. package/dist/bin/forgebook/agentSetup/assistantHooks.js +125 -0
  11. package/dist/bin/forgebook/agentSetup/ciWorkflow.d.ts +23 -0
  12. package/dist/bin/forgebook/agentSetup/ciWorkflow.js +55 -0
  13. package/dist/bin/forgebook/agentSetup/drawCandidates.d.ts +25 -0
  14. package/dist/bin/forgebook/agentSetup/drawCandidates.js +116 -0
  15. package/dist/bin/forgebook/agentSetup/drawDiagnosis.d.ts +28 -0
  16. package/dist/bin/forgebook/agentSetup/drawDiagnosis.js +134 -0
  17. package/dist/bin/forgebook/agentSetup/drawRun.d.ts +91 -0
  18. package/dist/bin/forgebook/agentSetup/drawRun.js +353 -0
  19. package/dist/bin/forgebook/agentSetup/hookNames.d.ts +7 -0
  20. package/dist/bin/forgebook/agentSetup/hookNames.js +7 -0
  21. package/dist/bin/forgebook/agentSetup/initAgentSteps.d.ts +48 -0
  22. package/dist/bin/forgebook/agentSetup/initAgentSteps.js +104 -0
  23. package/dist/bin/forgebook/agentSetup/liftedProviders.d.ts +17 -0
  24. package/dist/bin/forgebook/agentSetup/liftedProviders.js +186 -0
  25. package/dist/bin/forgebook/agentSetup/projectRunner.d.ts +46 -0
  26. package/dist/bin/forgebook/agentSetup/projectRunner.js +85 -0
  27. package/dist/bin/forgebook/agentSetup/stopHook.d.ts +65 -0
  28. package/dist/bin/forgebook/agentSetup/stopHook.js +202 -0
  29. package/dist/bin/forgebook/agentSetup/uniformPicture.d.ts +7 -0
  30. package/dist/bin/forgebook/agentSetup/uniformPicture.js +98 -0
  31. package/dist/bin/forgebook/agentSetupCommands.d.mts +14 -0
  32. package/dist/bin/forgebook/agentSetupCommands.mjs +98 -0
  33. package/dist/bin/forgebook/agentText.d.ts +23 -3
  34. package/dist/bin/forgebook/agentText.js +175 -28
  35. package/dist/bin/forgebook/agents.md +20 -191
  36. package/dist/bin/forgebook/agentsText.js +2 -1
  37. package/dist/bin/forgebook/appBuild/appBuild.d.ts +59 -0
  38. package/dist/bin/forgebook/appBuild/appBuild.js +213 -0
  39. package/dist/bin/forgebook/appBuild/appViteConfig.d.ts +96 -0
  40. package/dist/bin/forgebook/appBuild/appViteConfig.js +320 -0
  41. package/dist/bin/forgebook/appBuild/tsconfigPaths.d.ts +14 -0
  42. package/dist/bin/forgebook/appBuild/tsconfigPaths.js +80 -0
  43. package/dist/bin/forgebook/auditCommand.d.mts +8 -0
  44. package/dist/bin/forgebook/auditCommand.mjs +75 -0
  45. package/dist/bin/forgebook/auditRun.d.ts +95 -0
  46. package/dist/bin/forgebook/auditRun.js +270 -0
  47. package/dist/bin/forgebook/browserRun.d.ts +21 -0
  48. package/dist/bin/forgebook/browserRun.js +57 -0
  49. package/dist/bin/forgebook/buildFailure.d.ts +7 -0
  50. package/dist/bin/forgebook/buildFailure.js +47 -0
  51. package/dist/bin/forgebook/buildWatch.d.ts +52 -0
  52. package/dist/bin/forgebook/buildWatch.js +137 -0
  53. package/dist/bin/forgebook/builtCatalogue.js +9 -5
  54. package/dist/bin/forgebook/catalogueCommands.d.ts +9 -0
  55. package/dist/bin/forgebook/catalogueCommands.js +23 -0
  56. package/dist/bin/forgebook/catalogueVite.d.ts +5 -1
  57. package/dist/bin/forgebook/catalogueVite.js +14 -6
  58. package/dist/bin/forgebook/commandCacheClaim.d.ts +18 -0
  59. package/dist/bin/forgebook/commandCacheClaim.js +170 -0
  60. package/dist/bin/forgebook/commandServer.d.ts +8 -0
  61. package/dist/bin/forgebook/commandServer.js +61 -13
  62. package/dist/bin/forgebook/forgebookCommands.mjs +105 -28
  63. package/dist/bin/forgebook/graphCommand.d.mts +8 -0
  64. package/dist/bin/forgebook/graphCommand.mjs +84 -0
  65. package/dist/bin/forgebook/guide/commands.md +57 -0
  66. package/dist/bin/forgebook/guide/devices.md +17 -0
  67. package/dist/bin/forgebook/guide/docs-pages.md +13 -0
  68. package/dist/bin/forgebook/guide/frameworks/angular.md +22 -0
  69. package/dist/bin/forgebook/guide/frameworks/html.md +22 -0
  70. package/dist/bin/forgebook/guide/frameworks/nextjs.md +23 -0
  71. package/dist/bin/forgebook/guide/frameworks/nuxt.md +22 -0
  72. package/dist/bin/forgebook/guide/frameworks/preact.md +16 -0
  73. package/dist/bin/forgebook/guide/frameworks/react-native-web.md +21 -0
  74. package/dist/bin/forgebook/guide/frameworks/react.md +16 -0
  75. package/dist/bin/forgebook/guide/frameworks/solid.md +18 -0
  76. package/dist/bin/forgebook/guide/frameworks/svelte.md +18 -0
  77. package/dist/bin/forgebook/guide/frameworks/sveltekit.md +23 -0
  78. package/dist/bin/forgebook/guide/frameworks/vue.md +18 -0
  79. package/dist/bin/forgebook/guide/frameworks/web-components.md +21 -0
  80. package/dist/bin/forgebook/guide/links.md +29 -0
  81. package/dist/bin/forgebook/guide/setup.md +23 -0
  82. package/dist/bin/forgebook/guide/stories.md +90 -0
  83. package/dist/bin/forgebook/guide/switches.md +43 -0
  84. package/dist/bin/forgebook/guideCommand.d.mts +13 -0
  85. package/dist/bin/forgebook/guideCommand.mjs +37 -0
  86. package/dist/bin/forgebook/importers/storybook.d.ts +21 -0
  87. package/dist/bin/forgebook/importers/storybook.js +11 -5
  88. package/dist/bin/forgebook/importers/storybookFrameworks.js +1 -1
  89. package/dist/bin/forgebook/initCommands.d.mts +11 -0
  90. package/dist/bin/forgebook/initCommands.mjs +51 -78
  91. package/dist/bin/forgebook/initConfig.d.ts +5 -3
  92. package/dist/bin/forgebook/initConfig.js +6 -3
  93. package/dist/bin/forgebook/initInstall.d.ts +15 -0
  94. package/dist/bin/forgebook/initInstall.js +77 -0
  95. package/dist/bin/forgebook/initPrint.d.ts +9 -0
  96. package/dist/bin/forgebook/initPrint.js +60 -0
  97. package/dist/bin/forgebook/initRefusals.d.ts +45 -0
  98. package/dist/bin/forgebook/initRefusals.js +91 -0
  99. package/dist/bin/forgebook/initRun.d.ts +28 -0
  100. package/dist/bin/forgebook/initRun.js +311 -0
  101. package/dist/bin/forgebook/mcpCommand.mjs +38 -4
  102. package/dist/bin/forgebook/mcpGraph.d.ts +13 -0
  103. package/dist/bin/forgebook/mcpGraph.js +24 -0
  104. package/dist/bin/forgebook/mcpTokens.d.ts +14 -0
  105. package/dist/bin/forgebook/mcpTokens.js +58 -0
  106. package/dist/bin/forgebook/mcpToolParts.d.ts +7 -0
  107. package/dist/bin/forgebook/mcpToolParts.js +10 -0
  108. package/dist/bin/forgebook/mcpTools.d.ts +13 -6
  109. package/dist/bin/forgebook/mcpTools.js +57 -90
  110. package/dist/bin/forgebook/mcpVerify.d.ts +16 -0
  111. package/dist/bin/forgebook/mcpVerify.js +36 -0
  112. package/dist/bin/forgebook/migrate/codemods.d.ts +11 -0
  113. package/dist/bin/forgebook/migrate/codemods.js +61 -0
  114. package/dist/bin/forgebook/migrate/migrate.types.d.ts +117 -0
  115. package/dist/bin/forgebook/migrate/migrate.types.js +5 -0
  116. package/dist/bin/forgebook/migrate/migrateCommand.d.mts +8 -0
  117. package/dist/bin/forgebook/migrate/migrateCommand.mjs +76 -0
  118. package/dist/bin/forgebook/migrate/migrateRun.d.ts +61 -0
  119. package/dist/bin/forgebook/migrate/migrateRun.js +210 -0
  120. package/dist/bin/forgebook/migrate/migrateText.d.ts +12 -0
  121. package/dist/bin/forgebook/migrate/migrateText.js +30 -0
  122. package/dist/bin/forgebook/migrate/migrateWrite.d.ts +27 -0
  123. package/dist/bin/forgebook/migrate/migrateWrite.js +66 -0
  124. package/dist/bin/forgebook/migrate/objectEdits.d.ts +70 -0
  125. package/dist/bin/forgebook/migrate/objectEdits.js +241 -0
  126. package/dist/bin/forgebook/migrate/playOnInBuilds.d.ts +3 -0
  127. package/dist/bin/forgebook/migrate/playOnInBuilds.js +86 -0
  128. package/dist/bin/forgebook/migrate/propGroupStrings.d.ts +5 -0
  129. package/dist/bin/forgebook/migrate/propGroupStrings.js +81 -0
  130. package/dist/bin/forgebook/newProject/newProject.d.ts +39 -0
  131. package/dist/bin/forgebook/newProject/newProject.js +180 -0
  132. package/dist/bin/forgebook/newProject/newProject.types.d.ts +97 -0
  133. package/dist/bin/forgebook/newProject/newProject.types.js +6 -0
  134. package/dist/bin/forgebook/newProject/packageManagers.d.ts +51 -0
  135. package/dist/bin/forgebook/newProject/packageManagers.js +121 -0
  136. package/dist/bin/forgebook/newProject/projectEntries.d.ts +62 -0
  137. package/dist/bin/forgebook/newProject/projectEntries.js +191 -0
  138. package/dist/bin/forgebook/newProject/projectFrameworks.d.ts +57 -0
  139. package/dist/bin/forgebook/newProject/projectFrameworks.js +148 -0
  140. package/dist/bin/forgebook/newProject/projectLook.d.ts +23 -0
  141. package/dist/bin/forgebook/newProject/projectLook.js +293 -0
  142. package/dist/bin/forgebook/newProject/projectPackages.d.ts +66 -0
  143. package/dist/bin/forgebook/newProject/projectPackages.js +178 -0
  144. package/dist/bin/forgebook/newRepair.d.ts +45 -0
  145. package/dist/bin/forgebook/newRepair.js +157 -0
  146. package/dist/bin/forgebook/newRepairRun.d.ts +69 -0
  147. package/dist/bin/forgebook/newRepairRun.js +148 -0
  148. package/dist/bin/forgebook/newStories.d.ts +23 -1
  149. package/dist/bin/forgebook/newStories.js +101 -11
  150. package/dist/bin/forgebook/newStoriesFile.d.ts +20 -1
  151. package/dist/bin/forgebook/newStoriesFile.js +43 -4
  152. package/dist/bin/forgebook/prebundleRun.d.ts +3 -1
  153. package/dist/bin/forgebook/prebundleRun.js +28 -8
  154. package/dist/bin/forgebook/proofCommand.d.mts +15 -0
  155. package/dist/bin/forgebook/proofCommand.mjs +212 -0
  156. package/dist/bin/forgebook/proofRun.d.ts +63 -0
  157. package/dist/bin/forgebook/proofRun.js +412 -0
  158. package/dist/bin/forgebook/proofText.d.ts +36 -0
  159. package/dist/bin/forgebook/proofText.js +131 -0
  160. package/dist/bin/forgebook/proofWorkflow.d.ts +29 -0
  161. package/dist/bin/forgebook/proofWorkflow.js +205 -0
  162. package/dist/bin/forgebook/setArgsTool.d.ts +8 -0
  163. package/dist/bin/forgebook/setArgsTool.js +70 -0
  164. package/dist/bin/forgebook/storyCheckCommands.mjs +42 -3
  165. package/dist/bin/forgebook/storyCheckRun.d.ts +50 -0
  166. package/dist/bin/forgebook/storyCheckRun.js +83 -9
  167. package/dist/bin/forgebook/storyFileIds.d.ts +15 -0
  168. package/dist/bin/forgebook/storyFileIds.js +14 -0
  169. package/dist/bin/forgebook/stressCases.d.ts +31 -0
  170. package/dist/bin/forgebook/stressCases.js +79 -0
  171. package/dist/bin/forgebook/stressRun.d.ts +12 -0
  172. package/dist/bin/forgebook/stressRun.js +61 -0
  173. package/dist/bin/forgebook/stressText.d.ts +27 -0
  174. package/dist/bin/forgebook/stressText.js +46 -0
  175. package/dist/bin/forgebook/verifyBase.d.ts +45 -0
  176. package/dist/bin/forgebook/verifyBase.js +196 -0
  177. package/dist/bin/forgebook/verifyCommand.d.mts +13 -0
  178. package/dist/bin/forgebook/verifyCommand.mjs +125 -0
  179. package/dist/bin/forgebook/verifyRun.d.ts +63 -0
  180. package/dist/bin/forgebook/verifyRun.js +108 -0
  181. package/dist/bin/forgebook/verifyVerdict.d.ts +40 -0
  182. package/dist/bin/forgebook/verifyVerdict.js +297 -0
  183. package/dist/bin/forgebook/workflowActions.d.ts +23 -0
  184. package/dist/bin/forgebook/workflowActions.js +23 -0
  185. package/dist/bin/forgebook-docs/catalogueMarkdown.js +12 -1
  186. package/dist/src/addressArgs.d.ts +29 -5
  187. package/dist/src/addressArgs.js +58 -16
  188. package/dist/src/addressArgsParam.d.ts +54 -0
  189. package/dist/src/addressArgsParam.js +51 -0
  190. package/dist/src/addressTexts.d.ts +14 -0
  191. package/dist/src/addressTexts.js +28 -21
  192. package/dist/src/agentIndexFile.d.ts +11 -0
  193. package/dist/src/agentIndexFile.js +11 -0
  194. package/dist/src/argConditions.d.ts +52 -0
  195. package/dist/src/argConditions.js +80 -0
  196. package/dist/src/argControl.d.ts +100 -0
  197. package/dist/src/argControl.js +0 -0
  198. package/dist/src/argExpression.d.ts +21 -0
  199. package/dist/src/argExpression.js +30 -0
  200. package/dist/src/argTypes.d.ts +40 -51
  201. package/dist/src/argTypes.js +66 -184
  202. package/dist/src/argsProps.d.ts +3 -3
  203. package/dist/src/argsProps.js +11 -5
  204. package/dist/src/bundlerErrors.d.ts +29 -0
  205. package/dist/src/bundlerErrors.js +49 -0
  206. package/dist/src/catalogue.d.ts +31 -0
  207. package/dist/src/catalogue.js +13 -2
  208. package/dist/src/catalogueRefs.d.ts +75 -0
  209. package/dist/src/catalogueRefs.js +122 -0
  210. package/dist/src/componentDocs.d.ts +71 -0
  211. package/dist/src/componentDocs.js +15 -2
  212. package/dist/src/frame/callValues.d.ts +19 -0
  213. package/dist/src/frame/callValues.js +58 -0
  214. package/dist/src/frame/canvasScheme.d.ts +33 -0
  215. package/dist/src/frame/canvasScheme.js +67 -0
  216. package/dist/src/frame/frame.css +36 -3
  217. package/dist/src/frame/frameStatus.d.ts +16 -1
  218. package/dist/src/frame/frameStatus.js +16 -1
  219. package/dist/src/frame/frameView.js +4 -3
  220. package/dist/src/frame/mountFrame.d.ts +7 -1
  221. package/dist/src/frame/mountFrame.js +153 -46
  222. package/dist/src/frame/panelValues.d.ts +35 -0
  223. package/dist/src/frame/panelValues.js +127 -0
  224. package/dist/src/frame/playActions.d.ts +39 -0
  225. package/dist/src/frame/playActions.js +98 -0
  226. package/dist/src/frame/playStepper.d.ts +28 -0
  227. package/dist/src/frame/playStepper.js +38 -0
  228. package/dist/src/frame/playStory.d.ts +9 -1
  229. package/dist/src/frame/playStory.js +49 -3
  230. package/dist/src/frame/renderer.d.ts +34 -1
  231. package/dist/src/frame/renderer.js +24 -0
  232. package/dist/src/frame/shellChannel.d.ts +1 -1
  233. package/dist/src/frame/shellChannel.js +1 -1
  234. package/dist/src/frame/shellCheck.d.ts +17 -0
  235. package/dist/src/frame/shellCheck.js +25 -0
  236. package/dist/src/frame/shellMessageCheck.d.ts +7 -0
  237. package/dist/src/frame/shellMessageCheck.js +53 -0
  238. package/dist/src/frame/storyContent.d.ts +50 -0
  239. package/dist/src/frame/storyContent.js +73 -0
  240. package/dist/src/frame/storyModule.d.ts +9 -0
  241. package/dist/src/frame/storyModule.js +20 -2
  242. package/dist/src/frame/storyRun.d.ts +15 -7
  243. package/dist/src/frame/storyRun.js +64 -15
  244. package/dist/src/frame/valueSheets.d.ts +35 -0
  245. package/dist/src/frame/valueSheets.js +99 -0
  246. package/dist/src/hotModules.d.ts +20 -0
  247. package/dist/src/hotModules.js +23 -0
  248. package/dist/src/jsxCode.d.ts +1 -14
  249. package/dist/src/jsxCode.js +46 -10
  250. package/dist/src/liveErrors.d.ts +30 -4
  251. package/dist/src/liveErrors.js +18 -3
  252. package/dist/src/messages.d.ts +77 -27
  253. package/dist/src/messages.js +58 -100
  254. package/dist/src/namedValues.d.ts +2 -26
  255. package/dist/src/namedValues.js +0 -47
  256. package/dist/src/pageConfig.d.ts +2 -0
  257. package/dist/src/playTrace.d.ts +19 -2
  258. package/dist/src/playTrace.js +10 -5
  259. package/dist/src/plugin.d.ts +10 -3
  260. package/dist/src/previewRelay.js +9 -1
  261. package/dist/src/printable.d.ts +12 -0
  262. package/dist/src/printable.js +22 -0
  263. package/dist/src/propsSignature.d.ts +37 -0
  264. package/dist/src/propsSignature.js +40 -0
  265. package/dist/src/search.d.ts +41 -5
  266. package/dist/src/search.js +93 -23
  267. package/dist/src/searchMatch.d.ts +4 -1
  268. package/dist/src/searchMatch.js +26 -5
  269. package/dist/src/searchTypos.d.ts +88 -0
  270. package/dist/src/searchTypos.js +178 -0
  271. package/dist/src/shapeValues.d.ts +86 -0
  272. package/dist/src/shapeValues.js +295 -0
  273. package/dist/src/shell/ApiReference.js +6 -3
  274. package/dist/src/shell/ApiTableBox.d.ts +15 -0
  275. package/dist/src/shell/ApiTableBox.js +11 -0
  276. package/dist/src/shell/AppearanceMenu.d.ts +4 -1
  277. package/dist/src/shell/AppearanceMenu.js +9 -6
  278. package/dist/src/shell/CodeTab.d.ts +3 -2
  279. package/dist/src/shell/CodeTab.js +3 -2
  280. package/dist/src/shell/CodeText.d.ts +1 -1
  281. package/dist/src/shell/CodeText.js +2 -3
  282. package/dist/src/shell/CompareGrid.js +1 -1
  283. package/dist/src/shell/ComponentPage.d.ts +1 -1
  284. package/dist/src/shell/ComponentPage.js +5 -1
  285. package/dist/src/shell/CustomControl.d.ts +34 -0
  286. package/dist/src/shell/CustomControl.js +132 -0
  287. package/dist/src/shell/DocContainers.js +1 -1
  288. package/dist/src/shell/DocPage.js +2 -2
  289. package/dist/src/shell/DroppedArgsList.d.ts +2 -2
  290. package/dist/src/shell/DroppedArgsList.js +1 -1
  291. package/dist/src/shell/EmbedPage.js +30 -12
  292. package/dist/src/shell/Example.d.ts +5 -1
  293. package/dist/src/shell/Example.js +16 -8
  294. package/dist/src/shell/FrameView.d.ts +6 -3
  295. package/dist/src/shell/FrameView.js +2 -2
  296. package/dist/src/shell/HomePage.d.ts +3 -1
  297. package/dist/src/shell/HomePage.js +16 -6
  298. package/dist/src/shell/InfoTip.js +2 -2
  299. package/dist/src/shell/InteractionsTab.d.ts +11 -4
  300. package/dist/src/shell/InteractionsTab.js +18 -2
  301. package/dist/src/shell/LazyPage.js +1 -1
  302. package/dist/src/shell/PackageHtml.js +3 -1
  303. package/dist/src/shell/PinnedControl.js +14 -62
  304. package/dist/src/shell/PinnedControlMenu.d.ts +44 -0
  305. package/dist/src/shell/PinnedControlMenu.js +72 -0
  306. package/dist/src/shell/PropFields.d.ts +3 -1
  307. package/dist/src/shell/PropFields.js +9 -6
  308. package/dist/src/shell/PropRows.d.ts +23 -2
  309. package/dist/src/shell/PropRows.js +58 -19
  310. package/dist/src/shell/PropsTab.d.ts +12 -5
  311. package/dist/src/shell/PropsTab.js +9 -21
  312. package/dist/src/shell/RefStoryPage.d.ts +33 -0
  313. package/dist/src/shell/RefStoryPage.js +123 -0
  314. package/dist/src/shell/SearchPanel.js +51 -24
  315. package/dist/src/shell/Shell.d.ts +18 -0
  316. package/dist/src/shell/Shell.js +137 -22
  317. package/dist/src/shell/ShortcutHelp.d.ts +22 -0
  318. package/dist/src/shell/ShortcutHelp.js +66 -0
  319. package/dist/src/shell/Sidebar.d.ts +17 -4
  320. package/dist/src/shell/Sidebar.js +92 -41
  321. package/dist/src/shell/SidebarDocs.js +2 -2
  322. package/dist/src/shell/SidebarEntries.js +5 -3
  323. package/dist/src/shell/SidebarHandle.d.ts +3 -5
  324. package/dist/src/shell/SidebarHandle.js +4 -4
  325. package/dist/src/shell/SidebarRefs.d.ts +39 -0
  326. package/dist/src/shell/SidebarRefs.js +99 -0
  327. package/dist/src/shell/SidebarSearch.js +37 -9
  328. package/dist/src/shell/SignatureReference.js +3 -1
  329. package/dist/src/shell/Stage.d.ts +10 -2
  330. package/dist/src/shell/Stage.js +29 -49
  331. package/dist/src/shell/StatusBadges.d.ts +54 -0
  332. package/dist/src/shell/StatusBadges.js +77 -0
  333. package/dist/src/shell/StoryCodeBlock.d.ts +8 -19
  334. package/dist/src/shell/StoryCodeBlock.js +7 -6
  335. package/dist/src/shell/SwitchGallery.d.ts +36 -0
  336. package/dist/src/shell/SwitchGallery.js +17 -0
  337. package/dist/src/shell/SwitchGalleryPanel.d.ts +37 -0
  338. package/dist/src/shell/SwitchGalleryPanel.js +99 -0
  339. package/dist/src/shell/TagFilter.d.ts +24 -0
  340. package/dist/src/shell/TagFilter.js +45 -0
  341. package/dist/src/shell/TagViews.d.ts +39 -0
  342. package/dist/src/shell/TagViews.js +20 -0
  343. package/dist/src/shell/Toolbar.d.ts +4 -1
  344. package/dist/src/shell/Toolbar.js +17 -7
  345. package/dist/src/shell/ToolbarControl.d.ts +3 -0
  346. package/dist/src/shell/ToolbarControl.js +23 -6
  347. package/dist/src/shell/ViewMenuPanel.js +6 -1
  348. package/dist/src/shell/argChecks.d.ts +22 -0
  349. package/dist/src/shell/argChecks.js +20 -0
  350. package/dist/src/shell/asideStory.js +7 -2
  351. package/dist/src/shell/audienceSections.css +9 -9
  352. package/dist/src/shell/catalogueContext.d.ts +1 -1
  353. package/dist/src/shell/catalogueContext.js +6 -1
  354. package/dist/src/shell/codeSpans.d.ts +27 -0
  355. package/dist/src/shell/codeSpans.js +76 -0
  356. package/dist/src/shell/compareVariants.d.ts +4 -2
  357. package/dist/src/shell/compareVariants.js +16 -8
  358. package/dist/src/shell/composition.d.ts +23 -0
  359. package/dist/src/shell/composition.js +26 -0
  360. package/dist/src/shell/controlCycle.d.ts +1 -1
  361. package/dist/src/shell/controlCycle.js +3 -2
  362. package/dist/src/shell/customControls.d.ts +55 -0
  363. package/dist/src/shell/customControls.js +70 -0
  364. package/dist/src/shell/docPage.css +22 -22
  365. package/dist/src/shell/dockTabs.d.ts +19 -3
  366. package/dist/src/shell/dockTabs.js +28 -20
  367. package/dist/src/shell/embed.css +7 -7
  368. package/dist/src/shell/framesOrigin.d.ts +7 -0
  369. package/dist/src/shell/framesOrigin.js +1 -1
  370. package/dist/src/shell/galleryPlace.d.ts +20 -0
  371. package/dist/src/shell/galleryPlace.js +26 -0
  372. package/dist/src/shell/icons.d.ts +1 -0
  373. package/dist/src/shell/icons.js +1 -0
  374. package/dist/src/shell/keyboard.d.ts +14 -12
  375. package/dist/src/shell/keyboard.js +21 -6
  376. package/dist/src/shell/laterStrings.d.ts +29 -0
  377. package/dist/src/shell/laterStrings.js +42 -3
  378. package/dist/src/shell/mountShell.js +3 -0
  379. package/dist/src/shell/pageStrings.d.ts +4 -0
  380. package/dist/src/shell/pageStrings.js +4 -0
  381. package/dist/src/shell/pageTagView.d.ts +18 -0
  382. package/dist/src/shell/pageTagView.js +10 -0
  383. package/dist/src/shell/playMemory.d.ts +14 -0
  384. package/dist/src/shell/playMemory.js +8 -0
  385. package/dist/src/shell/propNotes.d.ts +23 -0
  386. package/dist/src/shell/propNotes.js +37 -0
  387. package/dist/src/shell/refIndexLoad.d.ts +17 -0
  388. package/dist/src/shell/refIndexLoad.js +38 -0
  389. package/dist/src/shell/refParts.d.ts +34 -0
  390. package/dist/src/shell/refParts.js +9 -0
  391. package/dist/src/shell/refStory.css +21 -0
  392. package/dist/src/shell/refStrings.d.ts +13 -0
  393. package/dist/src/shell/refStrings.js +21 -0
  394. package/dist/src/shell/search.css +11 -11
  395. package/dist/src/shell/shell.css +348 -168
  396. package/dist/src/shell/shellScheme.js +2 -2
  397. package/dist/src/shell/shortcutHelp.css +64 -0
  398. package/dist/src/shell/stageArgs.d.ts +53 -0
  399. package/dist/src/shell/stageArgs.js +64 -0
  400. package/dist/src/shell/statusBadges.css +51 -0
  401. package/dist/src/shell/strings.d.ts +7 -16
  402. package/dist/src/shell/strings.js +12 -17
  403. package/dist/src/shell/switchGallery.css +104 -0
  404. package/dist/src/shell/tagFilter.css +46 -0
  405. package/dist/src/shell/tagView.d.ts +20 -0
  406. package/dist/src/shell/tagView.js +10 -0
  407. package/dist/src/shell/useAddressArgs.d.ts +9 -0
  408. package/dist/src/shell/useAddressArgs.js +56 -11
  409. package/dist/src/shell/useControlKeys.js +2 -2
  410. package/dist/src/shell/useEditedProblems.d.ts +6 -0
  411. package/dist/src/shell/useEditedProblems.js +40 -0
  412. package/dist/src/shell/useFrameMessages.js +3 -0
  413. package/dist/src/shell/useListedTree.d.ts +13 -0
  414. package/dist/src/shell/useListedTree.js +32 -0
  415. package/dist/src/shell/usePageFrames.js +2 -2
  416. package/dist/src/shell/usePopover.d.ts +5 -0
  417. package/dist/src/shell/usePopover.js +7 -1
  418. package/dist/src/shell/useRefIndex.d.ts +22 -0
  419. package/dist/src/shell/useRefIndex.js +36 -0
  420. package/dist/src/shell/useScrollStops.d.ts +20 -0
  421. package/dist/src/shell/useScrollStops.js +41 -0
  422. package/dist/src/shell/useShortcutHelp.d.ts +18 -0
  423. package/dist/src/shell/useShortcutHelp.js +32 -0
  424. package/dist/src/shell/useSidebarOverlay.d.ts +2 -1
  425. package/dist/src/shell/useSidebarOverlay.js +12 -4
  426. package/dist/src/shell/useStoryCode.d.ts +2 -1
  427. package/dist/src/shell/useStoryCode.js +12 -7
  428. package/dist/src/shell/useToolbarLayout.d.ts +5 -1
  429. package/dist/src/shell/useToolbarLayout.js +2 -2
  430. package/dist/src/shell/useWorstCase.d.ts +8 -2
  431. package/dist/src/shell/useWorstCase.js +2 -2
  432. package/dist/src/shell/valueEditors/FileEditor.d.ts +28 -0
  433. package/dist/src/shell/valueEditors/FileEditor.js +66 -0
  434. package/dist/src/shell/valueEditors/JsonEditor.d.ts +14 -0
  435. package/dist/src/shell/valueEditors/JsonEditor.js +53 -0
  436. package/dist/src/shell/valueEditors/ListEditor.d.ts +24 -0
  437. package/dist/src/shell/valueEditors/ListEditor.js +82 -0
  438. package/dist/src/shell/valueEditors/ObjectEditor.d.ts +32 -0
  439. package/dist/src/shell/valueEditors/ObjectEditor.js +70 -0
  440. package/dist/src/shell/valueEditors/PropEditor.d.ts +37 -0
  441. package/dist/src/shell/valueEditors/PropEditor.js +53 -0
  442. package/dist/src/shell/valueEditors/RecordEditor.d.ts +20 -0
  443. package/dist/src/shell/valueEditors/RecordEditor.js +84 -0
  444. package/dist/src/shell/valueEditors/SearchSelect.d.ts +42 -0
  445. package/dist/src/shell/valueEditors/SearchSelect.js +80 -0
  446. package/dist/src/shell/valueEditors/TokenEditor.d.ts +49 -0
  447. package/dist/src/shell/valueEditors/TokenEditor.js +74 -0
  448. package/dist/src/shell/valueEditors/UnionEditor.d.ts +20 -0
  449. package/dist/src/shell/valueEditors/UnionEditor.js +64 -0
  450. package/dist/src/shell/valueEditors/ValueField.d.ts +15 -0
  451. package/dist/src/shell/valueEditors/ValueField.js +147 -0
  452. package/dist/src/shell/valueEditors/editorStrings.d.ts +56 -0
  453. package/dist/src/shell/valueEditors/editorStrings.js +66 -0
  454. package/dist/src/shell/valueEditors/fieldTypes.d.ts +31 -0
  455. package/dist/src/shell/valueEditors/fieldTypes.js +0 -0
  456. package/dist/src/shell/valueEditors/valueEditors.css +153 -0
  457. package/dist/src/shell/worstArgs.d.ts +8 -5
  458. package/dist/src/shell/worstArgs.js +14 -7
  459. package/dist/src/shellTheme.d.ts +1 -1
  460. package/dist/src/shellTheme.js +15 -1
  461. package/dist/src/shellTheme.types.d.ts +4 -0
  462. package/dist/src/shellWord.d.ts +12 -0
  463. package/dist/src/shellWord.js +15 -0
  464. package/dist/src/sourceFiles.js +2 -1
  465. package/dist/src/storyArgTypes.d.ts +57 -0
  466. package/dist/src/storyArgTypes.js +195 -0
  467. package/dist/src/storyBackground.js +14 -3
  468. package/dist/src/storyCheck.d.ts +85 -3
  469. package/dist/src/storyCheck.js +23 -1
  470. package/dist/src/storyCodeText.d.ts +46 -0
  471. package/dist/src/storyCodeText.js +27 -0
  472. package/dist/src/storyControls.d.ts +100 -0
  473. package/dist/src/storyControls.js +100 -0
  474. package/dist/src/storyStatuses.d.ts +55 -0
  475. package/dist/src/storyStatuses.js +104 -0
  476. package/dist/src/storyTagNames.d.ts +25 -0
  477. package/dist/src/storyTagNames.js +25 -0
  478. package/dist/src/storyTags.d.ts +29 -0
  479. package/dist/src/storyTags.js +85 -0
  480. package/dist/src/storyTree.d.ts +13 -0
  481. package/dist/src/storyTree.js +24 -4
  482. package/dist/src/storybookArgs.d.ts +24 -0
  483. package/dist/src/storybookArgs.js +185 -0
  484. package/dist/src/switches.d.ts +66 -3
  485. package/dist/src/switches.js +42 -1
  486. package/dist/src/valueSchema.d.ts +28 -0
  487. package/dist/src/valueSchema.js +196 -0
  488. package/dist/src/valueShape.d.ts +94 -0
  489. package/dist/src/valueShape.js +25 -0
  490. package/dist/src/viewState.d.ts +8 -3
  491. package/dist/src/viewState.js +27 -10
  492. package/dist/src/vite/adapter.d.ts +40 -2
  493. package/dist/src/vite/adapter.js +1 -0
  494. package/dist/src/vite/agent.types.d.ts +347 -7
  495. package/dist/src/vite/agentApi.d.ts +23 -0
  496. package/dist/src/vite/agentApi.js +90 -17
  497. package/dist/src/vite/agentIndex.d.ts +0 -2
  498. package/dist/src/vite/agentIndex.js +5 -6
  499. package/dist/src/vite/agentRoutes.d.ts +20 -1
  500. package/dist/src/vite/agentRoutes.js +106 -65
  501. package/dist/src/vite/agentStatuses.d.ts +42 -0
  502. package/dist/src/vite/agentStatuses.js +67 -0
  503. package/dist/src/vite/agentStoryCode.d.ts +48 -0
  504. package/dist/src/vite/agentStoryCode.js +38 -0
  505. package/dist/src/vite/agentVisibility.d.ts +47 -0
  506. package/dist/src/vite/agentVisibility.js +174 -0
  507. package/dist/src/vite/appAudit.d.ts +134 -0
  508. package/dist/src/vite/appAudit.js +333 -0
  509. package/dist/src/vite/appBuildOption.d.ts +53 -0
  510. package/dist/src/vite/appBuildOption.js +55 -0
  511. package/dist/src/vite/appTokenFiles.d.ts +92 -0
  512. package/dist/src/vite/appTokenFiles.js +433 -0
  513. package/dist/src/vite/appTokens.d.ts +23 -0
  514. package/dist/src/vite/appTokens.js +275 -0
  515. package/dist/src/vite/builtTexts.d.ts +10 -0
  516. package/dist/src/vite/builtTexts.js +59 -22
  517. package/dist/src/vite/catalogueConfig.d.ts +3 -1
  518. package/dist/src/vite/catalogueConfig.js +15 -3
  519. package/dist/src/vite/changeCoverage.d.ts +74 -0
  520. package/dist/src/vite/changeCoverage.js +120 -0
  521. package/dist/src/vite/changedRoute.d.ts +30 -0
  522. package/dist/src/vite/changedRoute.js +197 -0
  523. package/dist/src/vite/checkCode.d.ts +105 -3
  524. package/dist/src/vite/checkCode.js +323 -36
  525. package/dist/src/vite/checkoutWatch.d.ts +97 -0
  526. package/dist/src/vite/checkoutWatch.js +287 -0
  527. package/dist/src/vite/closeWatch.d.ts +8 -0
  528. package/dist/src/vite/closeWatch.js +1 -1
  529. package/dist/src/vite/componentCache.d.ts +8 -0
  530. package/dist/src/vite/componentCache.js +66 -0
  531. package/dist/src/vite/componentGraph.d.ts +71 -0
  532. package/dist/src/vite/componentGraph.js +133 -0
  533. package/dist/src/vite/componentRules.d.ts +33 -0
  534. package/dist/src/vite/componentRules.js +105 -0
  535. package/dist/src/vite/componentScan.d.ts +69 -0
  536. package/dist/src/vite/componentScan.js +418 -0
  537. package/dist/src/vite/compositionCheck.d.ts +15 -0
  538. package/dist/src/vite/compositionCheck.js +243 -0
  539. package/dist/src/vite/config.d.ts +32 -1
  540. package/dist/src/vite/configFile.d.ts +14 -2
  541. package/dist/src/vite/configFile.js +124 -40
  542. package/dist/src/vite/configKeys.d.ts +15 -0
  543. package/dist/src/vite/configKeys.js +171 -0
  544. package/dist/src/vite/configLoadError.d.ts +23 -0
  545. package/dist/src/vite/configLoadError.js +71 -0
  546. package/dist/src/vite/cssDeclarations.d.ts +71 -0
  547. package/dist/src/vite/cssDeclarations.js +290 -0
  548. package/dist/src/vite/cssImports.d.ts +14 -0
  549. package/dist/src/vite/cssImports.js +48 -0
  550. package/dist/src/vite/cssReferences.d.ts +54 -0
  551. package/dist/src/vite/cssReferences.js +157 -0
  552. package/dist/src/vite/cssTokenValues.d.ts +50 -0
  553. package/dist/src/vite/cssTokenValues.js +233 -0
  554. package/dist/src/vite/designTokens.d.ts +24 -0
  555. package/dist/src/vite/designTokens.js +5 -1
  556. package/dist/src/vite/docsExtractor.d.ts +9 -3
  557. package/dist/src/vite/docsExtractor.js +11 -3
  558. package/dist/src/vite/docsProgram.d.ts +17 -4
  559. package/dist/src/vite/docsProgram.js +52 -11
  560. package/dist/src/vite/docsWorker.js +7 -2
  561. package/dist/src/vite/emptyStoryGlobs.d.ts +41 -0
  562. package/dist/src/vite/emptyStoryGlobs.js +52 -0
  563. package/dist/src/vite/fileImports.d.ts +17 -0
  564. package/dist/src/vite/fileImports.js +57 -0
  565. package/dist/src/vite/findComponent.d.ts +10 -2
  566. package/dist/src/vite/findComponent.js +27 -22
  567. package/dist/src/vite/findRoute.js +3 -2
  568. package/dist/src/vite/forcedStates.d.ts +9 -2
  569. package/dist/src/vite/forcedStates.js +12 -3
  570. package/dist/src/vite/forgebookPlugin.d.ts +2 -0
  571. package/dist/src/vite/forgebookPlugin.js +52 -72
  572. package/dist/src/vite/frameErrors.d.ts +19 -0
  573. package/dist/src/vite/frameErrors.js +70 -0
  574. package/dist/src/vite/framesServer.d.ts +12 -0
  575. package/dist/src/vite/framesServer.js +21 -4
  576. package/dist/src/vite/functionComponentDocs.js +81 -12
  577. package/dist/src/vite/generatedModules.js +4 -2
  578. package/dist/src/vite/gitChange.d.ts +38 -5
  579. package/dist/src/vite/gitChange.js +71 -11
  580. package/dist/src/vite/hiddenStoryFiles.d.ts +23 -0
  581. package/dist/src/vite/hiddenStoryFiles.js +107 -0
  582. package/dist/src/vite/hotSnippets.d.ts +38 -14
  583. package/dist/src/vite/hotSnippets.js +137 -39
  584. package/dist/src/vite/importedNames.d.ts +37 -0
  585. package/dist/src/vite/importedNames.js +138 -0
  586. package/dist/src/vite/indexFields.d.ts +6 -0
  587. package/dist/src/vite/indexFields.js +21 -0
  588. package/dist/src/vite/indexStoryFile.d.ts +8 -1
  589. package/dist/src/vite/indexStoryFile.js +22 -157
  590. package/dist/src/vite/jsxCallSites.d.ts +33 -0
  591. package/dist/src/vite/jsxCallSites.js +200 -0
  592. package/dist/src/vite/jsxInScripts.d.ts +67 -0
  593. package/dist/src/vite/jsxInScripts.js +138 -0
  594. package/dist/src/vite/jsxTree.d.ts +20 -0
  595. package/dist/src/vite/jsxTree.js +163 -0
  596. package/dist/src/vite/lineAndColumn.d.ts +13 -0
  597. package/dist/src/vite/lineAndColumn.js +18 -0
  598. package/dist/src/vite/lookAlikes.d.ts +65 -0
  599. package/dist/src/vite/lookAlikes.js +228 -0
  600. package/dist/src/vite/nearestToken.d.ts +17 -0
  601. package/dist/src/vite/nearestToken.js +9 -2
  602. package/dist/src/vite/packageEntries.d.ts +42 -0
  603. package/dist/src/vite/packageEntries.js +127 -0
  604. package/dist/src/vite/pages.d.ts +9 -1
  605. package/dist/src/vite/pages.js +108 -4
  606. package/dist/src/vite/pluginConfig.js +4 -0
  607. package/dist/src/vite/pluginIds.d.ts +2 -0
  608. package/dist/src/vite/pluginIds.js +5 -1
  609. package/dist/src/vite/pluginModules.d.ts +81 -11
  610. package/dist/src/vite/pluginModules.js +109 -21
  611. package/dist/src/vite/prebundled.d.ts +57 -15
  612. package/dist/src/vite/prebundled.js +80 -0
  613. package/dist/src/vite/previewTags.d.ts +25 -0
  614. package/dist/src/vite/previewTags.js +56 -0
  615. package/dist/src/vite/projectFiles.d.ts +54 -0
  616. package/dist/src/vite/projectFiles.js +116 -0
  617. package/dist/src/vite/projectPostcss.d.ts +70 -0
  618. package/dist/src/vite/projectPostcss.js +250 -0
  619. package/dist/src/vite/propDocs.d.ts +12 -0
  620. package/dist/src/vite/propDocs.js +130 -58
  621. package/dist/src/vite/propKind.d.ts +40 -0
  622. package/dist/src/vite/propKind.js +71 -0
  623. package/dist/src/vite/propTypeNotes.d.ts +22 -0
  624. package/dist/src/vite/propTypeNotes.js +51 -0
  625. package/dist/src/vite/publishedExports.d.ts +27 -0
  626. package/dist/src/vite/publishedExports.js +298 -0
  627. package/dist/src/vite/realFolder.d.ts +6 -0
  628. package/dist/src/vite/realFolder.js +25 -0
  629. package/dist/src/vite/refsConfig.d.ts +39 -0
  630. package/dist/src/vite/refsConfig.js +54 -0
  631. package/dist/src/vite/reuseCheck.d.ts +45 -0
  632. package/dist/src/vite/reuseCheck.js +260 -0
  633. package/dist/src/vite/runningVersions.d.ts +33 -0
  634. package/dist/src/vite/runningVersions.js +25 -0
  635. package/dist/src/vite/scriptProblems.d.ts +60 -0
  636. package/dist/src/vite/scriptProblems.js +155 -0
  637. package/dist/src/vite/searchModule.js +3 -2
  638. package/dist/src/vite/searchRoute.js +4 -2
  639. package/dist/src/vite/shapeDocs.d.ts +36 -0
  640. package/dist/src/vite/shapeDocs.js +177 -0
  641. package/dist/src/vite/singleFileComponent.d.ts +17 -0
  642. package/dist/src/vite/singleFileComponent.js +83 -0
  643. package/dist/src/vite/sourceText.d.ts +34 -0
  644. package/dist/src/vite/sourceText.js +72 -0
  645. package/dist/src/vite/sourceTokens.d.ts +7 -0
  646. package/dist/src/vite/sourceTokens.js +7 -2
  647. package/dist/src/vite/stackLines.d.ts +49 -0
  648. package/dist/src/vite/stackLines.js +96 -0
  649. package/dist/src/vite/storyCode.d.ts +22 -7
  650. package/dist/src/vite/storyCode.js +263 -37
  651. package/dist/src/vite/storyCoverage.d.ts +48 -0
  652. package/dist/src/vite/storyCoverage.js +179 -0
  653. package/dist/src/vite/storyFilesModule.d.ts +48 -3
  654. package/dist/src/vite/storyFilesModule.js +105 -15
  655. package/dist/src/vite/storyPatterns.d.ts +31 -0
  656. package/dist/src/vite/storyPatterns.js +140 -5
  657. package/dist/src/vite/storyReach.d.ts +10 -2
  658. package/dist/src/vite/storyReach.js +15 -11
  659. package/dist/src/vite/storyTopLevel.d.ts +51 -0
  660. package/dist/src/vite/storyTopLevel.js +146 -0
  661. package/dist/src/vite/storylessRoutes.d.ts +4 -3
  662. package/dist/src/vite/storylessRoutes.js +210 -19
  663. package/dist/src/vite/switchValuesCheck.d.ts +19 -0
  664. package/dist/src/vite/switchValuesCheck.js +164 -0
  665. package/dist/src/vite/switchesDocument.d.ts +15 -0
  666. package/dist/src/vite/switchesDocument.js +47 -0
  667. package/dist/src/vite/tailwindConfigTokens.d.ts +41 -0
  668. package/dist/src/vite/tailwindConfigTokens.js +306 -0
  669. package/dist/src/vite/textImports.d.ts +15 -0
  670. package/dist/src/vite/textImports.js +58 -0
  671. package/dist/src/vite/textModules.d.ts +6 -5
  672. package/dist/src/vite/textModules.js +13 -8
  673. package/dist/src/vite/tokenAnswers.d.ts +6 -2
  674. package/dist/src/vite/tokenAnswers.js +11 -7
  675. package/dist/src/vite/typeParameters.d.ts +83 -0
  676. package/dist/src/vite/typeParameters.js +270 -0
  677. package/dist/src/vite/unionProps.d.ts +37 -0
  678. package/dist/src/vite/unionProps.js +121 -0
  679. package/dist/src/vite/unresolvedTokens.d.ts +20 -0
  680. package/dist/src/vite/unresolvedTokens.js +193 -0
  681. package/dist/src/vite/usageGraph.js +10 -52
  682. package/dist/src/vite/usageGuidance.d.ts +9 -2
  683. package/dist/src/vite/usageGuidance.js +36 -8
  684. package/dist/src/vite/usageImports.d.ts +35 -0
  685. package/dist/src/vite/usageImports.js +280 -0
  686. package/dist/src/vite/visibilityRoute.d.ts +16 -0
  687. package/dist/src/vite/visibilityRoute.js +320 -0
  688. package/dist/src/worstCase.d.ts +2 -0
  689. package/dist/src/worstCase.js +2 -0
  690. package/package.json +28 -8
@@ -34,8 +34,9 @@ export type ServedCatalogue = {
34
34
  *
35
35
  * @param config - the catalogue's configuration.
36
36
  * @param url - where `forgebook dev` runs, when not at Vite's default address.
37
+ * @param isOwn - serve it for the run whatever runs at the address; `false` by default.
37
38
  */
38
- export declare const servedCatalogue: (config: ResolvedConfig, url: string | undefined) => Promise<ServedCatalogue>;
39
+ export declare const servedCatalogue: (config: ResolvedConfig, url: string | undefined, isOwn?: boolean) => Promise<ServedCatalogue>;
39
40
  /**
40
41
  * The catalogue's answers: the running dev server at the address when it serves this catalogue, a server of its own
41
42
  * otherwise.
@@ -15,8 +15,10 @@ import { readFile } from "node:fs/promises";
15
15
  import { createServer as createNetServer } from "node:net";
16
16
  import { resolve } from "node:path";
17
17
  import { createServer } from "vite";
18
- import { AGENT_INDEX_FILE, indexAnswer, isAgentIndex } from "../../src/vite/agentIndex.js";
18
+ import { AGENT_INDEX_FILE } from "../../src/agentIndexFile.js";
19
+ import { indexAnswer, isAgentIndex } from "../../src/vite/agentIndex.js";
19
20
  import { AGENT_API, agentAnswer, agentServer, ROOT_HEADER, rootHeaderValue } from "../../src/vite/agentRoutes.js";
21
+ import { withoutTrailingSlashes } from "../../src/vite/storyPatterns.js";
20
22
  import { commandServerVite } from "./commandServer.js";
21
23
  /** Where `forgebook dev` serves when no port is given: Vite's default. */
22
24
  export const DEFAULT_ORIGIN = "http://localhost:5173";
@@ -81,7 +83,7 @@ const indexSource = (from) => {
81
83
  if (!/^https?:\/\//i.test(from)) {
82
84
  return { text: () => readFile(resolve(from, AGENT_INDEX_FILE), "utf8"), origin: "" };
83
85
  }
84
- const origin = from.replace(/\/+$/, "");
86
+ const origin = withoutTrailingSlashes(from);
85
87
  const address = `${origin}/${AGENT_INDEX_FILE}`;
86
88
  const text = async () => {
87
89
  const response = await fetch(address, { signal: AbortSignal.timeout(INDEX_TIMEOUT) });
@@ -149,7 +151,8 @@ const ownListening = async (config, port) => {
149
151
  await server.close();
150
152
  throw error;
151
153
  }
152
- const address = server.resolvedUrls?.local[0]?.replace(/\/+$/, "");
154
+ const local = server.resolvedUrls?.local[0];
155
+ const address = local === undefined ? undefined : withoutTrailingSlashes(local);
153
156
  if (address === undefined) {
154
157
  await server.close();
155
158
  throw new Error("The catalogue's dev server started with no address");
@@ -162,9 +165,13 @@ const ownListening = async (config, port) => {
162
165
  *
163
166
  * @param config - the catalogue's configuration.
164
167
  * @param url - where `forgebook dev` runs, when not at Vite's default address.
168
+ * @param isOwn - serve it for the run whatever runs at the address; `false` by default.
165
169
  */
166
- export const servedCatalogue = async (config, url) => {
167
- const origin = (url ?? DEFAULT_ORIGIN).replace(/\/+$/, "");
170
+ export const servedCatalogue = async (config, url, isOwn = false) => {
171
+ // a run that has just written a file serves it itself: a running server may still answer with its earlier module
172
+ if (isOwn)
173
+ return ownListening(config, 0);
174
+ const origin = withoutTrailingSlashes(url ?? DEFAULT_ORIGIN);
168
175
  const running = await runningClient(origin, config);
169
176
  if (running !== undefined)
170
177
  return { origin, runningAt: origin, close: async () => undefined };
@@ -178,7 +185,7 @@ export const servedCatalogue = async (config, url) => {
178
185
  * @param url - where `forgebook dev` runs, when not at Vite's default address.
179
186
  */
180
187
  export const catalogueClient = async (config, url) => {
181
- const origin = (url ?? DEFAULT_ORIGIN).replace(/\/+$/, "");
188
+ const origin = withoutTrailingSlashes(url ?? DEFAULT_ORIGIN);
182
189
  return (await runningClient(origin, config)) ?? ownClient(config, origin);
183
190
  };
184
191
  /** A port free right now, asked of the system. */
@@ -0,0 +1,59 @@
1
+ import type { GuideDocument, GuideListDocument } from "../../src/vite/agent.types.ts";
2
+ import type { McpTool } from "../../src/vite/mcpProtocol.ts";
3
+ /** The frameworks with an adapter, each named as the adapter's package and its `framework.name`. */
4
+ export declare const GUIDE_FRAMEWORKS: readonly ["react", "preact", "solid", "vue", "nuxt", "svelte", "sveltekit", "angular", "nextjs", "react-native-web", "web-components", "html"];
5
+ /** The topics that hold for every framework, with what each is about. */
6
+ export declare const GUIDE_TOPICS: {
7
+ readonly stories: "Writing a story file: its exports, its parameters, the texts, the TSDoc agents read";
8
+ readonly devices: "Touch, phones and tablets: the Touch switch and the drawn devices";
9
+ readonly "docs-pages": "The docs pages and the written home: front matter, live stories, blocks";
10
+ readonly switches: "The switches, galleries and looks: previews, a value that implies another, a value's own style sheet";
11
+ readonly links: "The links an answer carries for a person, and a page drawn for its audience";
12
+ readonly commands: "Every command an agent uses, and when";
13
+ readonly setup: "What a catalogue may change: checks turned off, the frames' origin, edits that do not arrive, inline previews";
14
+ };
15
+ /**
16
+ * Whether a name is a framework with a guide.
17
+ *
18
+ * @param name - the name.
19
+ */
20
+ export declare const isGuideFramework: (name: string) => name is (typeof GUIDE_FRAMEWORKS)[number];
21
+ /**
22
+ * The frameworks a project's stories are written for: the adapter its catalogue's configuration imports, or, with no
23
+ * configuration yet, the adapters its manifest lists.
24
+ *
25
+ * @remarks
26
+ * Both are read as text, never run: a command that prints instructions has no reason to execute the project's code,
27
+ * and a configuration that prints, exits or never settles would decide what it answers.
28
+ *
29
+ * @param configFile - the catalogue's configuration file, when there is one.
30
+ * @param dir - where the manifest is read when there is no configuration file; beside the file otherwise.
31
+ * @returns the frameworks with a guide; none when they cannot be told.
32
+ */
33
+ export declare const projectFrameworks: (configFile: string | undefined, dir: string) => readonly string[];
34
+ /**
35
+ * The instructions as a project gets them: the short text, with its frameworks' essentials.
36
+ *
37
+ * @param frameworks - the project's frameworks. One gives its essentials; several, or none, say where to find them,
38
+ * so the section stays short whatever the project lists.
39
+ */
40
+ export declare const agentsSection: (frameworks: readonly string[]) => string;
41
+ /**
42
+ * The topics, with the project's frameworks.
43
+ *
44
+ * @param frameworks - the project's frameworks.
45
+ */
46
+ export declare const guideList: (frameworks: readonly string[]) => GuideListDocument;
47
+ /**
48
+ * One topic's text.
49
+ *
50
+ * @param topic - the topic.
51
+ * @returns the document, or none when there is no such topic.
52
+ */
53
+ export declare const guideTopic: (topic: string) => GuideDocument | undefined;
54
+ /**
55
+ * The tool that prints the guide, as `forgebook guide` does: it asks nothing of the catalogue, so it answers at once.
56
+ *
57
+ * @param frameworks - the catalogue's frameworks.
58
+ */
59
+ export declare const guideTool: (frameworks: readonly string[]) => McpTool;
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Forgebook's guide for coding agents, a topic at a time: what `forgebook agents` writes into a project is short on
3
+ * purpose, and `forgebook guide` and the `get_guide` tool print the rest when an agent needs it.
4
+ *
5
+ * @remarks
6
+ * Agents do better with text they ask for than with long static instructions, and a long file loses its middle, so
7
+ * every framework's words stay out of a project that does not use that framework. A framework's file holds its
8
+ * essentials up to the `more` marker, and only those reach the written section; the rest is printed on demand.
9
+ *
10
+ * @module
11
+ */
12
+ import { existsSync, readFileSync } from "node:fs";
13
+ import { dirname, join } from "node:path";
14
+ import { textOf } from "./mcpToolParts.js";
15
+ /** The frameworks with an adapter, each named as the adapter's package and its `framework.name`. */
16
+ export const GUIDE_FRAMEWORKS = [
17
+ "react",
18
+ "preact",
19
+ "solid",
20
+ "vue",
21
+ "nuxt",
22
+ "svelte",
23
+ "sveltekit",
24
+ "angular",
25
+ "nextjs",
26
+ "react-native-web",
27
+ "web-components",
28
+ "html"
29
+ ];
30
+ /**
31
+ * The framework an adapter's project also lists as a dependency of its own: it writes its stories for the adapter, so
32
+ * the base's sample would only contradict it.
33
+ */
34
+ const BUILT_ON = {
35
+ nextjs: "react",
36
+ "react-native-web": "react",
37
+ nuxt: "vue",
38
+ sveltekit: "svelte"
39
+ };
40
+ /** The topics that hold for every framework, with what each is about. */
41
+ export const GUIDE_TOPICS = {
42
+ stories: "Writing a story file: its exports, its parameters, the texts, the TSDoc agents read",
43
+ devices: "Touch, phones and tablets: the Touch switch and the drawn devices",
44
+ "docs-pages": "The docs pages and the written home: front matter, live stories, blocks",
45
+ switches: "The switches, galleries and looks: previews, a value that implies another, a value's own style sheet",
46
+ links: "The links an answer carries for a person, and a page drawn for its audience",
47
+ commands: "Every command an agent uses, and when",
48
+ setup: "What a catalogue may change: checks turned off, the frames' origin, edits that do not arrive, inline previews"
49
+ };
50
+ /** The topic that prints every other one, for an agent that wants the whole guide at once. */
51
+ const ALL_TOPIC = "all";
52
+ /** The line of a framework's file that ends its essentials. */
53
+ const MORE_MARKER = /^<!-- more -->\n+/m;
54
+ /** The placeholder of `agents.md` the framework's essentials take. */
55
+ const FRAMEWORK_PLACEHOLDER = "{{framework}}";
56
+ /**
57
+ * Whether a name is a framework with a guide.
58
+ *
59
+ * @param name - the name.
60
+ */
61
+ export const isGuideFramework = (name) => GUIDE_FRAMEWORKS.some((framework) => framework === name);
62
+ /**
63
+ * A file of the guide, as written.
64
+ *
65
+ * @param path - the file, from the guide's folder.
66
+ */
67
+ const guideFile = (path) => readFileSync(new URL(`./guide/${path}`, import.meta.url), "utf8").trim();
68
+ /**
69
+ * The adapters a manifest's dependency fields list; a manifest that cannot be read lists none, since it is the project's
70
+ * own tools that report it.
71
+ *
72
+ * @param text - the manifest's text.
73
+ */
74
+ const manifestDependencies = (text) => {
75
+ let manifest;
76
+ try {
77
+ manifest = JSON.parse(text);
78
+ }
79
+ catch {
80
+ return new Set();
81
+ }
82
+ if (typeof manifest !== "object" || manifest === null)
83
+ return new Set();
84
+ const fields = Object.entries(manifest).filter(([field]) => ["dependencies", "devDependencies", "peerDependencies"].includes(field));
85
+ return new Set(fields.flatMap(([, value]) => typeof value === "object" && value !== null ? Object.keys(value) : []));
86
+ };
87
+ /**
88
+ * The frameworks a project's stories are written for: the adapter its catalogue's configuration imports, or, with no
89
+ * configuration yet, the adapters its manifest lists.
90
+ *
91
+ * @remarks
92
+ * Both are read as text, never run: a command that prints instructions has no reason to execute the project's code,
93
+ * and a configuration that prints, exits or never settles would decide what it answers.
94
+ *
95
+ * @param configFile - the catalogue's configuration file, when there is one.
96
+ * @param dir - where the manifest is read when there is no configuration file; beside the file otherwise.
97
+ * @returns the frameworks with a guide; none when they cannot be told.
98
+ */
99
+ export const projectFrameworks = (configFile, dir) => {
100
+ const config = configFile !== undefined && existsSync(configFile) ? readFileSync(configFile, "utf8") : "";
101
+ const imported = GUIDE_FRAMEWORKS.filter((framework) => config.includes(`"@forgebook/${framework}/vite"`));
102
+ if (imported.length > 0)
103
+ return imported;
104
+ const manifest = join(configFile === undefined ? dir : dirname(configFile), "package.json");
105
+ if (!existsSync(manifest))
106
+ return [];
107
+ const listed = manifestDependencies(readFileSync(manifest, "utf8"));
108
+ const adapters = GUIDE_FRAMEWORKS.filter((framework) => listed.has(`@forgebook/${framework}`));
109
+ const bases = adapters.flatMap((framework) => BUILT_ON[framework] ?? []);
110
+ return adapters.filter((framework) => !bases.includes(framework));
111
+ };
112
+ /**
113
+ * What the section says of the project's framework.
114
+ *
115
+ * @param frameworks - the project's frameworks.
116
+ */
117
+ const frameworkText = (frameworks) => {
118
+ const [only] = frameworks;
119
+ if (only === undefined) {
120
+ return "`npx forgebook guide <framework>` gives your framework's file names, types and a sample; `npx forgebook guide` lists them.";
121
+ }
122
+ if (frameworks.length > 1) {
123
+ const names = frameworks.map((name) => `\`${name}\``).join(", ");
124
+ return `This project lists several frameworks (${names}): \`npx forgebook guide <name>\` gives each one's file names, types and a sample.`;
125
+ }
126
+ const [essentials = ""] = guideFile(`frameworks/${only}.md`).split(MORE_MARKER);
127
+ return `${essentials.trim()}\n\nThe rest of it: \`npx forgebook guide ${only}\`.`;
128
+ };
129
+ /**
130
+ * The instructions as a project gets them: the short text, with its frameworks' essentials.
131
+ *
132
+ * @param frameworks - the project's frameworks. One gives its essentials; several, or none, say where to find them,
133
+ * so the section stays short whatever the project lists.
134
+ */
135
+ export const agentsSection = (frameworks) => {
136
+ const text = frameworkText(frameworks);
137
+ return readFileSync(new URL("./agents.md", import.meta.url), "utf8").replace(FRAMEWORK_PLACEHOLDER,
138
+ // a function, so a `$` in the text is not read as a replacement pattern
139
+ () => text);
140
+ };
141
+ /**
142
+ * The topics, with the project's frameworks.
143
+ *
144
+ * @param frameworks - the project's frameworks.
145
+ */
146
+ export const guideList = (frameworks) => ({
147
+ schema: 1,
148
+ topics: [
149
+ ...Object.entries(GUIDE_TOPICS).map(([topic, about]) => ({ topic, about })),
150
+ ...GUIDE_FRAMEWORKS.map((topic) => ({
151
+ topic,
152
+ about: `Stories in ${topic}: files, types, args, a sample`
153
+ })),
154
+ { topic: ALL_TOPIC, about: "Everything above at once: ask for one topic when you can" }
155
+ ],
156
+ frameworks
157
+ });
158
+ /**
159
+ * One topic's text.
160
+ *
161
+ * @param topic - the topic.
162
+ * @returns the document, or none when there is no such topic.
163
+ */
164
+ export const guideTopic = (topic) => {
165
+ const textOfTopic = (name) => {
166
+ if (isGuideFramework(name))
167
+ return guideFile(`frameworks/${name}.md`).replace(MORE_MARKER, "");
168
+ return Object.hasOwn(GUIDE_TOPICS, name) ? guideFile(`${name}.md`) : undefined;
169
+ };
170
+ if (topic === ALL_TOPIC) {
171
+ const text = [...Object.keys(GUIDE_TOPICS), ...GUIDE_FRAMEWORKS]
172
+ .map((name) => `<!-- forgebook guide ${name} -->\n\n${textOfTopic(name) ?? ""}`)
173
+ .join("\n\n");
174
+ return { schema: 1, topic, text };
175
+ }
176
+ const text = textOfTopic(topic);
177
+ return text === undefined ? undefined : { schema: 1, topic, text };
178
+ };
179
+ /**
180
+ * The tool that prints the guide, as `forgebook guide` does: it asks nothing of the catalogue, so it answers at once.
181
+ *
182
+ * @param frameworks - the catalogue's frameworks.
183
+ */
184
+ export const guideTool = (frameworks) => ({
185
+ name: "get_guide",
186
+ description: "Forgebook's guide, on demand: how to write a story in this framework, touch and devices, docs pages, links, every command. With no topic, the list of topics.",
187
+ inputSchema: {
188
+ type: "object",
189
+ properties: {
190
+ topic: { type: "string", description: "The topic; none for the list." }
191
+ },
192
+ additionalProperties: false
193
+ },
194
+ call: async (args) => {
195
+ const topic = textOf(args, "topic");
196
+ if (topic === undefined)
197
+ return { structured: guideList(frameworks), isError: false };
198
+ const found = guideTopic(topic);
199
+ return found === undefined
200
+ ? { structured: { error: `No topic ${topic}: get_guide with no topic lists them` }, isError: true }
201
+ : { structured: found, isError: false };
202
+ }
203
+ });
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * @remarks
7
7
  * Defined here, on the scope `forgebookCommands.mts` hands them, so the commands module stays a list of commands; their work lives in
8
- * their own modules (`agentsText.ts`, `storyCheckRun.ts`, `errorsRun.ts`).
8
+ * their own modules (`agentGuide.ts`, `agentsText.ts`, `storyCheckRun.ts`, `errorsRun.ts`).
9
9
  *
10
10
  * @module
11
11
  */
@@ -16,13 +16,15 @@ import { formatJson } from "@ensiria/cli-kit/files";
16
16
  import { ScriptError } from "@ensiria/cli-kit/script";
17
17
  import { isChangedStoriesDocument, isFoundComponentsDocument } from "../../src/vite/agentApi.js";
18
18
  import { catalogueClient } from "./agentClient.js";
19
+ import { agentsSection, GUIDE_FRAMEWORKS, projectFrameworks } from "./agentGuide.js";
19
20
  import { agentsSkill, SKILL_FOLDERS, withAgentsSection } from "./agentsText.js";
20
21
  import { checkText, errorsOutput, foundComponentsText, shotText } from "./agentText.js";
21
- import { askCatalogue, COMMAND, configOf, printAnswer } from "./catalogueCommands.js";
22
+ import { askCatalogue, COMMAND, configOf, configPathOf, printAnswer } from "./catalogueCommands.js";
22
23
  import { runCheckCode } from "./checkCodeRun.js";
23
24
  import { askErrors, followErrors, sinceOf } from "./errorsRun.js";
24
25
  import { storyCheckCommands } from "./storyCheckCommands.mjs";
25
- import { runPageCheck, runStoryCheck, runStoryShot } from "./storyCheckRun.js";
26
+ import { runPageCheck, runStoryShot } from "./storyCheckRun.js";
27
+ import { verifyCommands } from "./verifyCommand.mjs";
26
28
  import { BASELINES_FOLDER, updateBaselines } from "./visualCommands.mjs";
27
29
  /**
28
30
  * The catalogue the errors are asked of: only frames open in a browser report to a running dev server, so without one
@@ -72,6 +74,7 @@ const changedOf = async (config, options, log) => {
72
74
  */
73
75
  export const agentLoopCommands = (forgebook) => ({
74
76
  ...storyCheckCommands(forgebook),
77
+ ...verifyCommands(forgebook),
75
78
  find: forgebook.command({
76
79
  summary: "Find components by what they are for, in your own words.",
77
80
  json: true,
@@ -120,44 +123,6 @@ export const agentLoopCommands = (forgebook) => ({
120
123
  io.stdout.write(isJson ? formatJson(body) : `${text === "" ? "No story touched." : text}\n`);
121
124
  }
122
125
  }),
123
- verify: forgebook.command({
124
- summary: "Run the catalogue's checks on every story a change touches, with one exit code.",
125
- json: true,
126
- options: {
127
- since: {
128
- type: "string",
129
- valueName: "ref",
130
- description: "The commit to compare with; HEAD by default, so what is not committed."
131
- },
132
- url: URL_OPTION
133
- },
134
- examples: [
135
- { command: `${COMMAND} verify`, description: "Before you say a change is done." },
136
- { command: `${COMMAND} verify --since origin/develop --json`, description: "In a pull request." }
137
- ],
138
- run: async ({ options, io, log, isJson, style }) => {
139
- const config = await configOf(options.config);
140
- const { stories, files } = await changedOf(config, options, log);
141
- const reports = [];
142
- for (const story of stories) {
143
- const report = await runStoryCheck(config, options.url, {
144
- id: story.id,
145
- views: [],
146
- isAllVariants: false
147
- });
148
- if (typeof report === "string")
149
- throw new ScriptError(report);
150
- reports.push(report);
151
- }
152
- const problems = reports
153
- .flatMap((report) => report.results)
154
- .reduce((sum, each) => sum + each.problems.length, 0);
155
- const text = reports.length === 0 ? "No story touched." : reports.map((each) => checkText(each, style)).join("\n");
156
- io.stdout.write(isJson ? formatJson({ schema: 1, files, stories, reports, problems }) : `${text}\n`);
157
- if (problems > 0)
158
- throw new ScriptError(`${problems} problems`, { exitCode: EXIT.failure, isReported: true });
159
- }
160
- }),
161
126
  "check-page": forgebook.command({
162
127
  summary: "Run the checks on a real page of the application: accessibility, what spills, its errors.",
163
128
  json: true,
@@ -318,6 +283,10 @@ export const agentLoopCommands = (forgebook) => ({
318
283
  if (typeof report === "string")
319
284
  throw new ScriptError(report);
320
285
  io.stdout.write(isJson ? formatJson(report) : `${shotText(report, (file) => relative(process.cwd(), file), style)}\n`);
286
+ // a picture of an error or of a fallback was taken, and is not of the story: never a success
287
+ const notShown = report.shots.filter((shot) => shot.status !== undefined).length;
288
+ if (notShown > 0)
289
+ throw new ScriptError(`${notShown} not of the story`, { exitCode: EXIT.failure, isReported: true });
321
290
  }
322
291
  }),
323
292
  agents: forgebook.command({
@@ -333,6 +302,12 @@ export const agentLoopCommands = (forgebook) => ({
333
302
  type: "boolean",
334
303
  description: `Also write them as an Agent Skill, SKILL.md in ${SKILL_FOLDERS.join(" and ")}.`
335
304
  },
305
+ framework: {
306
+ type: "string",
307
+ choices: GUIDE_FRAMEWORKS,
308
+ valueName: "name",
309
+ description: "The framework whose essentials to include, when not the one found in this project."
310
+ },
336
311
  print: { type: "boolean", description: "Print the instructions instead of writing them." }
337
312
  },
338
313
  examples: [
@@ -340,7 +315,10 @@ export const agentLoopCommands = (forgebook) => ({
340
315
  { command: `${COMMAND} agents --skill`, description: "And the skill, for any agent." }
341
316
  ],
342
317
  run: ({ options, io, log }) => {
343
- const section = readFileSync(new URL("./agents.md", import.meta.url), "utf8");
318
+ const frameworks = options.framework === undefined
319
+ ? projectFrameworks(configPathOf(options.config), process.cwd())
320
+ : [options.framework];
321
+ const section = agentsSection(frameworks);
344
322
  if (options.print) {
345
323
  io.stdout.write(section);
346
324
  return;
@@ -349,6 +327,8 @@ export const agentLoopCommands = (forgebook) => ({
349
327
  const isNew = !existsSync(file);
350
328
  writeFileSync(file, withAgentsSection(isNew ? undefined : readFileSync(file, "utf8"), section));
351
329
  log.success(`${relative(process.cwd(), file)}: Forgebook's section ${isNew ? "written" : "renewed"}`);
330
+ // said aloud: from a monorepo's root the framework found may not be the catalogue's, and --framework corrects it
331
+ log.info(`Framework: ${frameworks.join(", ") || "none found; --framework names one"}`);
352
332
  if (options.skill !== true)
353
333
  return;
354
334
  for (const folder of SKILL_FOLDERS) {
@@ -0,0 +1,55 @@
1
+ import type { NextStep, PackageManagerName } from "../newProject/newProject.types.ts";
2
+ import { type AssistantName } from "./assistantHooks.ts";
3
+ /** A hook `--hooks` names: an assistant's, or the commit's. */
4
+ export type HookName = AssistantName | "pre-commit";
5
+ /** The hook written, and what it can do. */
6
+ export type WrittenHook = {
7
+ /** Which. */
8
+ readonly name: HookName;
9
+ /** Its file, from the repository's root. */
10
+ readonly file: string;
11
+ /** Whether it refuses to finish, starts another turn, or refuses the commit. */
12
+ readonly effect: "blocks" | "continues" | "blocks-commit";
13
+ };
14
+ /** What came of the files. */
15
+ export type AgentFiles = {
16
+ /** The repository's root, from the project's folder; `.` when they are the same. */
17
+ readonly root: string;
18
+ /** The files written or merged, from the root. */
19
+ readonly written: readonly string[];
20
+ /** The files that already held what they should. */
21
+ readonly unchanged: readonly string[];
22
+ /** The hooks in place. */
23
+ readonly hooks: readonly WrittenHook[];
24
+ /** What it could not do. */
25
+ readonly nextSteps: readonly NextStep[];
26
+ };
27
+ /**
28
+ * A project's repository root: the nearest folder holding `.git` whose repository tracks it, or the project's otherwise.
29
+ *
30
+ * @param projectDir - the project's folder.
31
+ */
32
+ export declare const repositoryRoot: (projectDir: string) => string;
33
+ /**
34
+ * The hooks to write when none are named: those of the assistants the repository shows signs of, otherwise the commit's.
35
+ *
36
+ * @param root - the repository's root.
37
+ */
38
+ export declare const detectedHooks: (root: string) => readonly HookName[];
39
+ /** What the files are written for. */
40
+ export type AgentFilesRequest = {
41
+ /** The project's folder. */
42
+ readonly projectDir: string;
43
+ /** The adapter's name. */
44
+ readonly framework: string;
45
+ /** The package manager. */
46
+ readonly manager: PackageManagerName;
47
+ /** The hooks asked for by name (`--hooks`); those found when none. */
48
+ readonly hooks: readonly string[] | undefined;
49
+ };
50
+ /**
51
+ * Writes what a project's coding agents need.
52
+ *
53
+ * @param request - what for.
54
+ */
55
+ export declare const writeAgentFiles: ({ projectDir, framework, manager, hooks }: AgentFilesRequest) => AgentFiles;