outfitter 0.2.7 → 0.3.3

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 (312) hide show
  1. package/README.md +34 -7
  2. package/dist/actions/add.d.ts +18 -0
  3. package/dist/actions/add.js +14 -0
  4. package/dist/actions/check-automation.d.ts +20 -0
  5. package/dist/actions/check-automation.js +27 -0
  6. package/dist/actions/check.d.ts +34 -0
  7. package/dist/actions/check.js +19 -0
  8. package/dist/actions/demo.d.ts +12 -0
  9. package/dist/actions/demo.js +11 -0
  10. package/dist/actions/docs-output-mode.d.ts +4 -0
  11. package/dist/actions/docs-output-mode.js +8 -0
  12. package/dist/actions/docs.d.ts +25 -0
  13. package/dist/actions/docs.js +31 -0
  14. package/dist/actions/doctor.d.ts +10 -0
  15. package/dist/actions/doctor.js +15 -0
  16. package/dist/actions/init.d.ts +28 -0
  17. package/dist/actions/init.js +31 -0
  18. package/dist/actions/scaffold.d.ts +19 -0
  19. package/dist/actions/scaffold.js +21 -0
  20. package/dist/actions/shared.d.ts +61 -0
  21. package/dist/actions/shared.js +30 -0
  22. package/dist/actions/upgrade.d.ts +17 -0
  23. package/dist/actions/upgrade.js +21 -0
  24. package/dist/actions.d.ts +1 -1
  25. package/dist/actions.js +53 -22
  26. package/dist/cli.js +66 -4
  27. package/dist/commands/add.js +3 -3
  28. package/dist/commands/check-action-ceremony.d.ts +55 -0
  29. package/dist/commands/check-action-ceremony.js +15 -0
  30. package/dist/commands/check-docs-sentinel.d.ts +27 -0
  31. package/dist/commands/check-docs-sentinel.js +18 -0
  32. package/dist/commands/check-orchestrator.d.ts +2 -0
  33. package/dist/commands/check-orchestrator.js +17 -0
  34. package/dist/commands/check-preset-versions.d.ts +20 -0
  35. package/dist/commands/check-preset-versions.js +15 -0
  36. package/dist/commands/check-publish-guardrails.d.ts +38 -0
  37. package/dist/commands/check-publish-guardrails.js +19 -0
  38. package/dist/commands/check-surface-map-format.d.ts +29 -0
  39. package/dist/commands/check-surface-map-format.js +19 -0
  40. package/dist/commands/check-surface-map.d.ts +20 -0
  41. package/dist/commands/check-surface-map.js +15 -0
  42. package/dist/commands/check-tsdoc.d.ts +2 -21
  43. package/dist/commands/check-tsdoc.js +3 -2
  44. package/dist/commands/check.d.ts +2 -0
  45. package/dist/commands/check.js +3 -3
  46. package/dist/commands/demo.js +1 -1
  47. package/dist/commands/docs-api.d.ts +4 -0
  48. package/dist/commands/docs-api.js +13 -0
  49. package/dist/commands/docs-export.d.ts +4 -0
  50. package/dist/commands/docs-export.js +12 -0
  51. package/dist/commands/docs-list.d.ts +3 -0
  52. package/dist/commands/docs-list.js +13 -0
  53. package/dist/commands/docs-module-loader.d.ts +2 -2
  54. package/dist/commands/docs-module-loader.js +2 -2
  55. package/dist/commands/docs-search.d.ts +3 -0
  56. package/dist/commands/docs-search.js +13 -0
  57. package/dist/commands/docs-show.d.ts +3 -0
  58. package/dist/commands/docs-show.js +13 -0
  59. package/dist/commands/docs-types.d.ts +21 -0
  60. package/dist/commands/doctor.js +4 -12
  61. package/dist/commands/init-execution.d.ts +8 -0
  62. package/dist/commands/init-execution.js +11 -0
  63. package/dist/commands/init-option-resolution.d.ts +5 -0
  64. package/dist/commands/init-option-resolution.js +14 -0
  65. package/dist/commands/init-output.d.ts +9 -0
  66. package/dist/commands/init-output.js +11 -0
  67. package/dist/commands/init.d.ts +7 -5
  68. package/dist/commands/init.js +10 -18
  69. package/dist/commands/jq-utils.d.ts +17 -0
  70. package/dist/commands/jq-utils.js +8 -0
  71. package/dist/commands/repo.d.ts +3 -3
  72. package/dist/commands/repo.js +8 -4
  73. package/dist/commands/scaffold-output.d.ts +4 -0
  74. package/dist/commands/scaffold-output.js +11 -0
  75. package/dist/commands/scaffold-planning.d.ts +65 -0
  76. package/dist/commands/scaffold-planning.js +20 -0
  77. package/dist/commands/scaffold.d.ts +3 -3
  78. package/dist/commands/scaffold.js +10 -16
  79. package/dist/commands/shared-deps.d.ts +5 -4
  80. package/dist/commands/shared-deps.js +3 -3
  81. package/dist/commands/upgrade-apply.d.ts +14 -0
  82. package/dist/commands/upgrade-apply.js +8 -0
  83. package/dist/commands/upgrade-codemods.d.ts +5 -0
  84. package/dist/commands/upgrade-codemods.js +4 -5
  85. package/dist/commands/upgrade-latest-version.d.ts +8 -0
  86. package/dist/commands/upgrade-latest-version.js +8 -0
  87. package/dist/commands/upgrade-migration-docs.d.ts +3 -0
  88. package/dist/commands/upgrade-migration-docs.js +15 -0
  89. package/dist/commands/upgrade-migration-frontmatter.d.ts +2 -0
  90. package/dist/commands/upgrade-migration-frontmatter.js +10 -0
  91. package/dist/commands/upgrade-migration-guides.d.ts +5 -0
  92. package/dist/commands/upgrade-migration-guides.js +10 -0
  93. package/dist/commands/upgrade-output.d.ts +5 -0
  94. package/dist/commands/upgrade-output.js +11 -0
  95. package/dist/commands/upgrade-planner.js +1 -1
  96. package/dist/commands/upgrade-report.d.ts +5 -0
  97. package/dist/commands/upgrade-report.js +8 -0
  98. package/dist/commands/upgrade-workspace.js +2 -2
  99. package/dist/commands/upgrade.d.ts +4 -220
  100. package/dist/commands/upgrade.js +21 -9
  101. package/dist/create/index.d.ts +3 -3
  102. package/dist/create/index.js +2 -30
  103. package/dist/create/planner.d.ts +2 -2
  104. package/dist/create/planner.js +80 -17
  105. package/dist/create/presets.d.ts +2 -2
  106. package/dist/create/presets.js +2 -2
  107. package/dist/create/types.d.ts +1 -1
  108. package/dist/engine/blocks.d.ts +2 -2
  109. package/dist/engine/blocks.js +5 -5
  110. package/dist/engine/collector.d.ts +1 -1
  111. package/dist/engine/collector.js +1 -1
  112. package/dist/engine/config.d.ts +2 -2
  113. package/dist/engine/config.js +4 -4
  114. package/dist/engine/dependency-versions.d.ts +13 -8
  115. package/dist/engine/dependency-versions.js +4 -4
  116. package/dist/engine/executor.d.ts +2 -2
  117. package/dist/engine/executor.js +149 -12
  118. package/dist/engine/index.d.ts +9 -7
  119. package/dist/engine/index.js +17 -31
  120. package/dist/engine/names.js +1 -1
  121. package/dist/engine/post-scaffold.d.ts +2 -2
  122. package/dist/engine/post-scaffold.js +1 -1
  123. package/dist/engine/preset.d.ts +3 -0
  124. package/dist/engine/preset.js +17 -0
  125. package/dist/engine/render-plan.d.ts +1 -1
  126. package/dist/engine/render-plan.js +1 -1
  127. package/dist/engine/template.d.ts +3 -2
  128. package/dist/engine/template.js +24 -7
  129. package/dist/engine/types.d.ts +1 -1
  130. package/dist/engine/types.js +1 -1
  131. package/dist/engine/workspace.d.ts +2 -2
  132. package/dist/engine/workspace.js +1 -1
  133. package/dist/index.d.ts +17 -398
  134. package/dist/index.js +7 -164
  135. package/dist/manifest.js +2 -2
  136. package/dist/output-mode.js +1 -1
  137. package/dist/shared/{outfitter-6fgk6adm.d.ts → outfitter-1tfa9hke.d.ts} +16 -1
  138. package/dist/shared/{outfitter-6bkqjk86.d.ts → outfitter-2nx0k4b3.d.ts} +1 -0
  139. package/dist/shared/outfitter-2ysjerp6.d.ts +44 -0
  140. package/dist/shared/outfitter-2z61gp5w.js +29 -0
  141. package/dist/shared/outfitter-34vg353f.d.ts +82 -0
  142. package/dist/shared/{outfitter-5yjr404v.d.ts → outfitter-3dq4r10s.d.ts} +5 -3
  143. package/dist/shared/outfitter-3rcrvva8.js +103 -0
  144. package/dist/shared/{outfitter-79vfxt6y.js → outfitter-3tx3adgj.js} +12 -3
  145. package/dist/shared/{outfitter-63gse8fv.js → outfitter-507ra35w.js} +33 -64
  146. package/dist/shared/outfitter-56jq0rh2.d.ts +42 -0
  147. package/dist/shared/{outfitter-r419zfgs.d.ts → outfitter-58rn1sj1.d.ts} +1 -1
  148. package/dist/shared/outfitter-5d9wbzhh.d.ts +19 -0
  149. package/dist/shared/outfitter-5j7zee11.d.ts +180 -0
  150. package/dist/shared/{outfitter-s7jetkge.d.ts → outfitter-5r6q2749.d.ts} +1 -1
  151. package/dist/shared/outfitter-5vx1bp7h.js +41 -0
  152. package/dist/shared/outfitter-6ddf91vh.js +190 -0
  153. package/dist/shared/{outfitter-mt7d1ek2.js → outfitter-6mpkh3zn.js} +39 -305
  154. package/dist/shared/{outfitter-ybbazsxq.d.ts → outfitter-6rtcemk7.d.ts} +8 -4
  155. package/dist/shared/{outfitter-9x1brcmq.js → outfitter-6t7xeyg1.js} +13 -38
  156. package/dist/shared/outfitter-738z4c37.js +262 -0
  157. package/dist/shared/{outfitter-yvksv5qb.js → outfitter-76k25svs.js} +4 -4
  158. package/dist/shared/outfitter-7n7vsz95.js +101 -0
  159. package/dist/shared/outfitter-7q9fnbwa.js +60 -0
  160. package/dist/shared/outfitter-84chvazx.js +480 -0
  161. package/dist/shared/outfitter-8ggmja91.js +301 -0
  162. package/dist/shared/{outfitter-qakwgrrh.d.ts → outfitter-8kmak0wc.d.ts} +1 -1
  163. package/dist/shared/outfitter-940h0x7b.js +71 -0
  164. package/dist/shared/{outfitter-fn20r49x.d.ts → outfitter-954y4mzx.d.ts} +1 -1
  165. package/dist/shared/outfitter-b9cpnr7e.js +110 -0
  166. package/dist/shared/outfitter-c7sbs7es.js +92 -0
  167. package/dist/shared/outfitter-cyhzstz0.js +93 -0
  168. package/dist/shared/{outfitter-n9g1zk4x.d.ts → outfitter-cyvr4r8d.d.ts} +3 -2
  169. package/dist/shared/outfitter-d0kqashd.d.ts +98 -0
  170. package/dist/shared/outfitter-dx4hn4ta.js +325 -0
  171. package/dist/shared/{outfitter-bn9c8p2e.js → outfitter-e84cr97g.js} +37 -9
  172. package/dist/shared/outfitter-ec83h4v2.js +17 -0
  173. package/dist/shared/{outfitter-vh4xgb93.js → outfitter-ekb6t1zz.js} +4 -4
  174. package/dist/shared/outfitter-ex8gn945.js +51 -0
  175. package/dist/shared/outfitter-f3a70135.js +75 -0
  176. package/dist/shared/outfitter-fbvfd5zq.d.ts +13 -0
  177. package/dist/shared/outfitter-fj2v5ffz.js +165 -0
  178. package/dist/shared/outfitter-fx1m251y.js +122 -0
  179. package/dist/shared/outfitter-fxry5n58.js +254 -0
  180. package/dist/shared/outfitter-g3hvjshg.js +1 -0
  181. package/dist/shared/{outfitter-f9znfhkn.d.ts → outfitter-gdc7b7de.d.ts} +1 -1
  182. package/dist/shared/outfitter-gyayfx5r.js +156 -0
  183. package/dist/shared/outfitter-h0wmtxw8.d.ts +23 -0
  184. package/dist/shared/{outfitter-z5sx06qe.d.ts → outfitter-hcexcvxe.d.ts} +1 -1
  185. package/dist/shared/outfitter-hf5bj2gq.js +117 -0
  186. package/dist/shared/{outfitter-e9rrfekb.d.ts → outfitter-htx4asgr.d.ts} +4 -3
  187. package/dist/shared/outfitter-jkct38dh.js +53 -0
  188. package/dist/shared/outfitter-jwxggvz4.js +42 -0
  189. package/dist/shared/outfitter-k6zyvg2n.js +306 -0
  190. package/dist/shared/outfitter-mstr60zz.js +215 -0
  191. package/dist/shared/outfitter-n0ed012k.js +101 -0
  192. package/dist/shared/outfitter-n13pqaft.js +19 -0
  193. package/dist/shared/outfitter-nxvjxrmw.d.ts +48 -0
  194. package/dist/shared/outfitter-p2wn07b7.js +160 -0
  195. package/dist/shared/{outfitter-5y646xzk.js → outfitter-px5sv5gn.js} +29 -9
  196. package/dist/shared/outfitter-q1g58t85.js +8 -0
  197. package/dist/shared/{outfitter-pj9vp00r.js → outfitter-qsd5638j.js} +26 -249
  198. package/dist/shared/outfitter-qsrx7m4w.js +72 -0
  199. package/dist/shared/outfitter-r2awqszh.d.ts +52 -0
  200. package/dist/shared/outfitter-rdpw2sbp.d.ts +77 -0
  201. package/dist/shared/outfitter-rp89dafm.js +109 -0
  202. package/dist/shared/outfitter-s1c0whzj.js +121 -0
  203. package/dist/shared/{outfitter-w1j80j1r.js → outfitter-ssrtakh3.js} +21 -5
  204. package/dist/shared/outfitter-ssynegbs.js +167 -0
  205. package/dist/shared/{outfitter-zwyvewr1.js → outfitter-svts4wk2.js} +1 -1
  206. package/dist/shared/outfitter-tavatb5p.js +166 -0
  207. package/dist/shared/outfitter-tqznjgbm.js +44 -0
  208. package/dist/shared/{outfitter-yraebrmw.d.ts → outfitter-wcrp7d7m.d.ts} +1 -1
  209. package/dist/shared/outfitter-wkt0a0ra.js +67 -0
  210. package/dist/shared/{outfitter-ha89qf8q.js → outfitter-wrcqq29p.js} +4 -4
  211. package/dist/shared/outfitter-wyg1tpp5.d.ts +43 -0
  212. package/dist/shared/outfitter-x0vpb7tj.js +126 -0
  213. package/dist/shared/{outfitter-m44n0qzw.js → outfitter-x39awx8g.js} +11 -26
  214. package/dist/shared/outfitter-x4cc5xsq.js +168 -0
  215. package/dist/shared/outfitter-x8w5sjnd.d.ts +39 -0
  216. package/dist/shared/{outfitter-amc4jbs1.d.ts → outfitter-xr6g13nz.d.ts} +2 -2
  217. package/dist/shared/outfitter-xs94pkfe.js +106 -0
  218. package/dist/shared/outfitter-y37yfehn.d.ts +37 -0
  219. package/dist/shared/{outfitter-fhnjpjwc.d.ts → outfitter-y6ee0k45.d.ts} +1 -1
  220. package/dist/shared/{outfitter-j833sxws.js → outfitter-ydw7x6bh.js} +1 -1
  221. package/dist/shared/outfitter-yhb23pjc.js +89 -0
  222. package/dist/shared/{outfitter-mtbpabf3.js → outfitter-ypcvwg1s.js} +1 -1
  223. package/dist/shared/outfitter-znbqe5zy.d.ts +45 -0
  224. package/dist/shared/{outfitter-dpj9erew.d.ts → outfitter-zng6w0t9.d.ts} +1 -1
  225. package/dist/targets/index.d.ts +2 -2
  226. package/dist/targets/index.js +2 -3
  227. package/dist/targets/registry.d.ts +2 -2
  228. package/dist/targets/registry.js +207 -14
  229. package/dist/targets/types.d.ts +1 -1
  230. package/package.json +203 -40
  231. package/dist/shared/chunk-x6644tk8.js +0 -6491
  232. package/dist/shared/outfitter-20f6a2n4.js +0 -35
  233. package/dist/shared/outfitter-5akzvppx.js +0 -125
  234. package/dist/shared/outfitter-7ch26yq8.js +0 -885
  235. package/dist/shared/outfitter-ehp18x1n.js +0 -1
  236. package/dist/shared/outfitter-h3q6ae6d.d.ts +0 -48
  237. package/dist/shared/outfitter-hvsaxgcp.js +0 -1
  238. package/dist/shared/outfitter-p71qb0f0.js +0 -82
  239. package/dist/shared/outfitter-pcj9gg2g.js +0 -909
  240. package/dist/shared/outfitter-xe5mzgdc.js +0 -208
  241. package/dist/shared/outfitter-z0we32cp.d.ts +0 -63
  242. package/template-versions.json +0 -22
  243. package/templates/.gitkeep +0 -0
  244. package/templates/basic/.gitignore.template +0 -30
  245. package/templates/basic/.lefthook.yml.template +0 -26
  246. package/templates/basic/package.json.template +0 -46
  247. package/templates/basic/src/index.ts.template +0 -26
  248. package/templates/basic/tsconfig.json.template +0 -34
  249. package/templates/cli/.gitignore.template +0 -4
  250. package/templates/cli/.lefthook.yml.template +0 -26
  251. package/templates/cli/README.md.template +0 -35
  252. package/templates/cli/biome.json.template +0 -4
  253. package/templates/cli/package.json.template +0 -53
  254. package/templates/cli/src/cli.ts.template +0 -8
  255. package/templates/cli/src/index.ts.template +0 -7
  256. package/templates/cli/src/program.ts.template +0 -31
  257. package/templates/cli/tsconfig.json.template +0 -34
  258. package/templates/daemon/.gitignore.template +0 -4
  259. package/templates/daemon/.lefthook.yml.template +0 -26
  260. package/templates/daemon/README.md.template +0 -67
  261. package/templates/daemon/biome.json.template +0 -4
  262. package/templates/daemon/package.json.template +0 -56
  263. package/templates/daemon/src/cli.ts.template +0 -96
  264. package/templates/daemon/src/daemon-main.ts.template +0 -79
  265. package/templates/daemon/src/daemon.ts.template +0 -11
  266. package/templates/daemon/src/index.ts.template +0 -7
  267. package/templates/daemon/tsconfig.json.template +0 -23
  268. package/templates/full-stack/.gitignore.template +0 -30
  269. package/templates/full-stack/README.md.template +0 -30
  270. package/templates/full-stack/apps/cli/package.json.template +0 -39
  271. package/templates/full-stack/apps/cli/src/cli.ts.template +0 -24
  272. package/templates/full-stack/apps/cli/src/index.test.ts.template +0 -18
  273. package/templates/full-stack/apps/cli/src/index.ts.template +0 -5
  274. package/templates/full-stack/apps/cli/tsconfig.json.template +0 -37
  275. package/templates/full-stack/apps/mcp/package.json.template +0 -40
  276. package/templates/full-stack/apps/mcp/src/index.test.ts.template +0 -18
  277. package/templates/full-stack/apps/mcp/src/index.ts.template +0 -6
  278. package/templates/full-stack/apps/mcp/src/mcp.ts.template +0 -22
  279. package/templates/full-stack/apps/mcp/src/server.ts.template +0 -10
  280. package/templates/full-stack/apps/mcp/tsconfig.json.template +0 -37
  281. package/templates/full-stack/package.json.template +0 -16
  282. package/templates/full-stack/packages/core/package.json.template +0 -36
  283. package/templates/full-stack/packages/core/src/handlers.ts.template +0 -31
  284. package/templates/full-stack/packages/core/src/index.test.ts.template +0 -30
  285. package/templates/full-stack/packages/core/src/index.ts.template +0 -8
  286. package/templates/full-stack/packages/core/src/types.ts.template +0 -13
  287. package/templates/full-stack/packages/core/tsconfig.json.template +0 -34
  288. package/templates/library/.gitignore.template +0 -30
  289. package/templates/library/README.md.template +0 -29
  290. package/templates/library/bunup.config.ts.template +0 -20
  291. package/templates/library/package.json.template +0 -55
  292. package/templates/library/src/handlers.ts.template +0 -31
  293. package/templates/library/src/index.test.ts.template +0 -35
  294. package/templates/library/src/index.ts.template +0 -8
  295. package/templates/library/src/types.ts.template +0 -13
  296. package/templates/library/tsconfig.json.template +0 -34
  297. package/templates/mcp/.gitignore.template +0 -4
  298. package/templates/mcp/.lefthook.yml.template +0 -26
  299. package/templates/mcp/README.md.template +0 -54
  300. package/templates/mcp/biome.json.template +0 -4
  301. package/templates/mcp/package.json.template +0 -53
  302. package/templates/mcp/src/index.ts.template +0 -7
  303. package/templates/mcp/src/mcp.ts.template +0 -33
  304. package/templates/mcp/src/server.ts.template +0 -8
  305. package/templates/mcp/tsconfig.json.template +0 -23
  306. package/templates/minimal/.gitignore.template +0 -30
  307. package/templates/minimal/.lefthook.yml.template +0 -26
  308. package/templates/minimal/package.json.template +0 -53
  309. package/templates/minimal/src/index.ts.template +0 -26
  310. package/templates/minimal/tsconfig.json.template +0 -34
  311. /package/dist/{shared/outfitter-344t1r38.js → commands/docs-types.js} +0 -0
  312. /package/dist/shared/{outfitter-mdt37hqm.js → outfitter-eepj7rf7.js} +0 -0
@@ -0,0 +1,306 @@
1
+ // @bun
2
+ import {
3
+ actionInternalErr,
4
+ outputModeSchema,
5
+ resolveCwdFromPreset,
6
+ resolveOutputModeWithEnvFallback,
7
+ resolveStringFlag
8
+ } from "./outfitter-7n7vsz95.js";
9
+ import {
10
+ printCheckOrchestratorResults,
11
+ runCheckOrchestrator
12
+ } from "./outfitter-84chvazx.js";
13
+ import {
14
+ runCheckTsdoc
15
+ } from "./outfitter-507ra35w.js";
16
+ import {
17
+ printCheckResults,
18
+ runCheck
19
+ } from "./outfitter-ssrtakh3.js";
20
+ import {
21
+ resolveStructuredOutputMode
22
+ } from "./outfitter-7r12fj7f.js";
23
+
24
+ // apps/outfitter/src/actions/check.ts
25
+ import {
26
+ booleanFlagPreset,
27
+ cwdPreset,
28
+ verbosePreset
29
+ } from "@outfitter/cli/flags";
30
+ import { jqPreset, outputModePreset } from "@outfitter/cli/query";
31
+ import {
32
+ defineAction,
33
+ Result,
34
+ ValidationError
35
+ } from "@outfitter/contracts";
36
+ import { z } from "zod";
37
+ var checkOrchestratorModes = ["all", "ci", "pre-commit", "pre-push"];
38
+ var checkInputSchema = z.object({
39
+ compact: z.boolean(),
40
+ cwd: z.string(),
41
+ manifestOnly: z.boolean(),
42
+ verbose: z.boolean(),
43
+ block: z.string().optional(),
44
+ mode: z.enum(checkOrchestratorModes).optional(),
45
+ stagedFiles: z.array(z.string()).optional(),
46
+ outputMode: outputModeSchema
47
+ });
48
+ var checkVerbose = verbosePreset();
49
+ var checkCwd = cwdPreset();
50
+ var checkOutputMode = outputModePreset();
51
+ var checkCompact = booleanFlagPreset({
52
+ id: "checkCompact",
53
+ key: "compact",
54
+ flags: "--compact",
55
+ description: "Omit verbose fields in structured orchestrator output (steps keep id/label/exitCode/durationMs only)"
56
+ });
57
+ var checkVerboseOptions = checkVerbose.options.map((option) => option.flags === "-v, --verbose" ? { ...option, description: "Show diffs for drifted files" } : option);
58
+ function resolveCheckMode(flags) {
59
+ const requestedModes = [];
60
+ if (flags["all"] === true) {
61
+ requestedModes.push("all");
62
+ }
63
+ if (flags["ci"] === true) {
64
+ requestedModes.push("ci");
65
+ }
66
+ if (flags["preCommit"] === true) {
67
+ requestedModes.push("pre-commit");
68
+ }
69
+ if (flags["prePush"] === true) {
70
+ requestedModes.push("pre-push");
71
+ }
72
+ if (requestedModes.length > 1) {
73
+ throw ValidationError.fromMessage("Use only one of --all, --ci, --pre-commit, or --pre-push.");
74
+ }
75
+ return requestedModes[0];
76
+ }
77
+ var checkAction = defineAction({
78
+ id: "check",
79
+ description: "Compare local config blocks against the registry for drift detection",
80
+ surfaces: ["cli"],
81
+ input: checkInputSchema,
82
+ cli: {
83
+ group: "check",
84
+ command: "[staged-files...]",
85
+ description: "Compare local config blocks against the registry for drift detection",
86
+ options: [
87
+ ...checkVerboseOptions,
88
+ {
89
+ flags: "--all",
90
+ description: "Run the full check orchestrator",
91
+ defaultValue: false
92
+ },
93
+ {
94
+ flags: "--ci",
95
+ description: "Run CI check orchestration (includes tests)",
96
+ defaultValue: false
97
+ },
98
+ {
99
+ flags: "--pre-commit",
100
+ description: "Run pre-commit check orchestration",
101
+ defaultValue: false
102
+ },
103
+ {
104
+ flags: "--pre-push",
105
+ description: "Run pre-push check orchestration",
106
+ defaultValue: false
107
+ },
108
+ {
109
+ flags: "-b, --block <name>",
110
+ description: "Check a specific block only"
111
+ },
112
+ {
113
+ flags: "--manifest-only",
114
+ description: "Only check manifest-tracked blocks (skip file-presence heuristic)",
115
+ defaultValue: false
116
+ },
117
+ ...checkCompact.options,
118
+ ...checkOutputMode.options,
119
+ ...checkCwd.options
120
+ ],
121
+ mapInput: (context) => {
122
+ const mode = resolveCheckMode(context.flags);
123
+ const { compact } = checkCompact.resolve(context.flags);
124
+ const { outputMode: presetOutputMode } = checkOutputMode.resolve(context.flags);
125
+ const block = resolveStringFlag(context.flags["block"]);
126
+ if (mode !== undefined && block !== undefined) {
127
+ throw ValidationError.fromMessage("--block cannot be combined with orchestrator mode flags.");
128
+ }
129
+ const stagedFiles = mode === "pre-commit" ? context.args.filter((arg) => typeof arg === "string" && arg.trim().length > 0) : undefined;
130
+ const outputMode = resolveOutputModeWithEnvFallback(context.flags, resolveStructuredOutputMode(presetOutputMode) ?? "human", { forceHumanWhenImplicit: mode !== undefined });
131
+ const { verbose } = checkVerbose.resolve(context.flags);
132
+ const manifestOnly = Boolean(context.flags["manifestOnly"]);
133
+ return {
134
+ compact,
135
+ cwd: resolveCwdFromPreset(context.flags, checkCwd),
136
+ manifestOnly,
137
+ verbose,
138
+ ...block !== undefined ? { block } : {},
139
+ ...mode !== undefined ? { mode } : {},
140
+ ...stagedFiles !== undefined ? { stagedFiles } : {},
141
+ outputMode
142
+ };
143
+ }
144
+ },
145
+ handler: async (input) => {
146
+ const { outputMode, mode, stagedFiles, compact, ...checkInput } = input;
147
+ if (mode !== undefined) {
148
+ const orchestratorResult = await runCheckOrchestrator({
149
+ cwd: checkInput.cwd,
150
+ mode,
151
+ ...stagedFiles && stagedFiles.length > 0 ? { stagedFiles } : {}
152
+ });
153
+ if (orchestratorResult.isErr()) {
154
+ return actionInternalErr("check", orchestratorResult.error);
155
+ }
156
+ await printCheckOrchestratorResults(orchestratorResult.value, {
157
+ compact,
158
+ mode: outputMode
159
+ });
160
+ if (!orchestratorResult.value.ok) {
161
+ process.exit(1);
162
+ }
163
+ return Result.ok(orchestratorResult.value);
164
+ }
165
+ const { block, ...baseCheckInput } = checkInput;
166
+ const result = await runCheck({
167
+ ...baseCheckInput,
168
+ ...block !== undefined ? { block } : {}
169
+ });
170
+ if (result.isErr()) {
171
+ return actionInternalErr("check", result.error);
172
+ }
173
+ await printCheckResults(result.value, {
174
+ mode: outputMode,
175
+ verbose: checkInput.verbose
176
+ });
177
+ if (result.value.driftedCount > 0 || result.value.missingCount > 0) {
178
+ process.exit(1);
179
+ }
180
+ return Result.ok(result.value);
181
+ }
182
+ });
183
+ var checkTsdocInputSchema = z.object({
184
+ strict: z.boolean(),
185
+ minCoverage: z.number(),
186
+ cwd: z.string(),
187
+ outputMode: outputModeSchema,
188
+ jq: z.string().optional(),
189
+ summary: z.boolean(),
190
+ level: z.enum(["documented", "partial", "undocumented"]).optional(),
191
+ packages: z.array(z.string())
192
+ });
193
+ var checkTsdocOutputSchema = z.object({
194
+ ok: z.boolean(),
195
+ packages: z.array(z.object({
196
+ name: z.string(),
197
+ path: z.string(),
198
+ declarations: z.array(z.object({
199
+ name: z.string(),
200
+ kind: z.string(),
201
+ level: z.enum(["documented", "partial", "undocumented"]),
202
+ file: z.string(),
203
+ line: z.number()
204
+ })),
205
+ documented: z.number(),
206
+ partial: z.number(),
207
+ undocumented: z.number(),
208
+ total: z.number(),
209
+ percentage: z.number()
210
+ })),
211
+ summary: z.object({
212
+ documented: z.number(),
213
+ partial: z.number(),
214
+ undocumented: z.number(),
215
+ total: z.number(),
216
+ percentage: z.number()
217
+ })
218
+ });
219
+ var checkTsdocOutputMode = outputModePreset({ includeJsonl: true });
220
+ var checkTsdocJq = jqPreset();
221
+ var checkTsdocAction = defineAction({
222
+ id: "check.tsdoc",
223
+ description: "Check TSDoc coverage on exported declarations",
224
+ surfaces: ["cli"],
225
+ input: checkTsdocInputSchema,
226
+ output: checkTsdocOutputSchema,
227
+ cli: {
228
+ group: "check",
229
+ command: "tsdoc",
230
+ description: "Check TSDoc coverage on exported declarations",
231
+ options: [
232
+ {
233
+ flags: "--strict",
234
+ description: "Fail if coverage is below the minimum threshold",
235
+ defaultValue: false
236
+ },
237
+ {
238
+ flags: "--min-coverage <percent>",
239
+ description: "Minimum coverage percentage (used with --strict)"
240
+ },
241
+ {
242
+ flags: "--summary",
243
+ description: "Omit per-declaration detail for compact output (~2KB vs ~64KB)",
244
+ defaultValue: false
245
+ },
246
+ {
247
+ flags: "--level <level>",
248
+ description: "Filter declarations by coverage level (undocumented, partial, documented)"
249
+ },
250
+ {
251
+ flags: "--package <name>",
252
+ description: "Filter to specific package(s) by name (repeatable)"
253
+ },
254
+ ...checkTsdocOutputMode.options,
255
+ ...checkTsdocJq.options
256
+ ],
257
+ mapInput: (context) => {
258
+ const { outputMode: presetOutputMode } = checkTsdocOutputMode.resolve(context.flags);
259
+ const { jq } = checkTsdocJq.resolve(context.flags);
260
+ const outputMode = resolveOutputModeWithEnvFallback(context.flags, resolveStructuredOutputMode(presetOutputMode) ?? "human");
261
+ const minCoverageRaw = context.flags["minCoverage"] ?? context.flags["min-coverage"];
262
+ let minCoverage = 0;
263
+ if (typeof minCoverageRaw === "string") {
264
+ minCoverage = Number.parseInt(minCoverageRaw, 10);
265
+ } else if (typeof minCoverageRaw === "number") {
266
+ minCoverage = minCoverageRaw;
267
+ }
268
+ const levelRaw = context.flags["level"];
269
+ const validLevels = new Set(["documented", "partial", "undocumented"]);
270
+ const level = typeof levelRaw === "string" && validLevels.has(levelRaw) ? levelRaw : undefined;
271
+ const pkgRaw = context.flags["package"];
272
+ let packages = [];
273
+ if (Array.isArray(pkgRaw)) {
274
+ packages = pkgRaw.filter((v) => typeof v === "string");
275
+ } else if (typeof pkgRaw === "string") {
276
+ packages = [pkgRaw];
277
+ }
278
+ return {
279
+ strict: Boolean(context.flags["strict"]),
280
+ minCoverage,
281
+ cwd: process.cwd(),
282
+ outputMode,
283
+ jq,
284
+ summary: Boolean(context.flags["summary"]),
285
+ level,
286
+ packages
287
+ };
288
+ }
289
+ },
290
+ handler: async (input) => {
291
+ const { jq, level, ...tsdocInput } = input;
292
+ const result = await runCheckTsdoc({ ...tsdocInput, jq, level });
293
+ if (result.isErr()) {
294
+ if (result.error instanceof ValidationError) {
295
+ return Result.err(result.error);
296
+ }
297
+ return actionInternalErr("check.tsdoc", result.error);
298
+ }
299
+ if (!result.value.ok) {
300
+ process.exitCode = 1;
301
+ }
302
+ return Result.ok(result.value);
303
+ }
304
+ });
305
+
306
+ export { checkAction, checkTsdocOutputSchema, checkTsdocAction };
@@ -0,0 +1,215 @@
1
+ // @bun
2
+ import {
3
+ actionInternalErr,
4
+ outputModeSchema,
5
+ resolveCwdFromPreset,
6
+ resolveOutputModeWithEnvFallback
7
+ } from "./outfitter-7n7vsz95.js";
8
+ import {
9
+ printCheckDocsSentinelResult,
10
+ runCheckDocsSentinel
11
+ } from "./outfitter-fj2v5ffz.js";
12
+ import {
13
+ printCheckSurfaceMapFormatResult,
14
+ runCheckSurfaceMapFormat
15
+ } from "./outfitter-gyayfx5r.js";
16
+ import {
17
+ printCheckActionCeremonyResult,
18
+ runCheckActionCeremony
19
+ } from "./outfitter-p2wn07b7.js";
20
+ import {
21
+ printCheckSurfaceMapResult,
22
+ runCheckSurfaceMap
23
+ } from "./outfitter-b9cpnr7e.js";
24
+ import {
25
+ printCheckPresetVersionsResult,
26
+ runCheckPresetVersions
27
+ } from "./outfitter-8ggmja91.js";
28
+ import {
29
+ printCheckPublishGuardrailsResult,
30
+ runCheckPublishGuardrails
31
+ } from "./outfitter-ssynegbs.js";
32
+ import {
33
+ resolveStructuredOutputMode
34
+ } from "./outfitter-7r12fj7f.js";
35
+
36
+ // apps/outfitter/src/actions/check-automation.ts
37
+ import { cwdPreset } from "@outfitter/cli/flags";
38
+ import { outputModePreset } from "@outfitter/cli/query";
39
+ import { defineAction, Result } from "@outfitter/contracts";
40
+ import { z } from "zod";
41
+ var checkAutomationInputSchema = z.object({
42
+ cwd: z.string(),
43
+ outputMode: outputModeSchema
44
+ });
45
+ var checkAutomationOutput = outputModePreset();
46
+ var checkAutomationCwd = cwdPreset();
47
+ function mapCheckAutomationInput(context) {
48
+ const { outputMode: presetOutputMode } = checkAutomationOutput.resolve(context.flags);
49
+ const outputMode = resolveOutputModeWithEnvFallback(context.flags, resolveStructuredOutputMode(presetOutputMode) ?? "human");
50
+ return {
51
+ cwd: resolveCwdFromPreset(context.flags, checkAutomationCwd),
52
+ outputMode
53
+ };
54
+ }
55
+ var checkPublishGuardrailsAction = defineAction({
56
+ id: "check.publish-guardrails",
57
+ description: "Validate publishable package manifests enforce prepublishOnly guardrails",
58
+ surfaces: ["cli"],
59
+ input: checkAutomationInputSchema,
60
+ cli: {
61
+ group: "check",
62
+ command: "publish-guardrails",
63
+ description: "Validate publishable package manifests enforce prepublishOnly guardrails",
64
+ options: [
65
+ ...checkAutomationOutput.options,
66
+ ...checkAutomationCwd.options
67
+ ],
68
+ mapInput: mapCheckAutomationInput
69
+ },
70
+ handler: async (input) => {
71
+ const result = await runCheckPublishGuardrails({ cwd: input.cwd });
72
+ if (result.isErr()) {
73
+ return actionInternalErr("check.publish-guardrails", result.error);
74
+ }
75
+ await printCheckPublishGuardrailsResult(result.value, {
76
+ mode: input.outputMode
77
+ });
78
+ if (!result.value.ok) {
79
+ process.exit(1);
80
+ }
81
+ return Result.ok(result.value);
82
+ }
83
+ });
84
+ var checkPresetVersionsAction = defineAction({
85
+ id: "check.preset-versions",
86
+ description: "Validate preset dependency versions, registry versions, and Bun version consistency",
87
+ surfaces: ["cli"],
88
+ input: checkAutomationInputSchema,
89
+ cli: {
90
+ group: "check",
91
+ command: "preset-versions",
92
+ description: "Validate preset dependency versions, registry versions, and Bun version consistency",
93
+ options: [...checkAutomationOutput.options, ...checkAutomationCwd.options],
94
+ mapInput: mapCheckAutomationInput
95
+ },
96
+ handler: async (input) => {
97
+ const result = await runCheckPresetVersions({ cwd: input.cwd });
98
+ if (result.isErr()) {
99
+ return actionInternalErr("check.preset-versions", result.error);
100
+ }
101
+ await printCheckPresetVersionsResult(result.value, {
102
+ mode: input.outputMode
103
+ });
104
+ if (!result.value.ok) {
105
+ process.exit(1);
106
+ }
107
+ return Result.ok(result.value);
108
+ }
109
+ });
110
+ var checkSurfaceMapAction = defineAction({
111
+ id: "check.surface-map",
112
+ description: "Validate canonical surface map path usage (.outfitter/surface.json only)",
113
+ surfaces: ["cli"],
114
+ input: checkAutomationInputSchema,
115
+ cli: {
116
+ group: "check",
117
+ command: "surface-map",
118
+ description: "Validate canonical surface map path usage (.outfitter/surface.json only)",
119
+ options: [...checkAutomationOutput.options, ...checkAutomationCwd.options],
120
+ mapInput: mapCheckAutomationInput
121
+ },
122
+ handler: async (input) => {
123
+ const result = await runCheckSurfaceMap({ cwd: input.cwd });
124
+ if (result.isErr()) {
125
+ return actionInternalErr("check.surface-map", result.error);
126
+ }
127
+ await printCheckSurfaceMapResult(result.value, {
128
+ mode: input.outputMode
129
+ });
130
+ if (!result.value.ok) {
131
+ process.exit(1);
132
+ }
133
+ return Result.ok(result.value);
134
+ }
135
+ });
136
+ var checkSurfaceMapFormatAction = defineAction({
137
+ id: "check.surface-map-format",
138
+ description: "Validate canonical formatting for .outfitter/surface.json",
139
+ surfaces: ["cli"],
140
+ input: checkAutomationInputSchema,
141
+ cli: {
142
+ group: "check",
143
+ command: "surface-map-format",
144
+ description: "Validate canonical formatting for .outfitter/surface.json",
145
+ options: [...checkAutomationOutput.options, ...checkAutomationCwd.options],
146
+ mapInput: mapCheckAutomationInput
147
+ },
148
+ handler: async (input) => {
149
+ const result = await runCheckSurfaceMapFormat({ cwd: input.cwd });
150
+ if (result.isErr()) {
151
+ return actionInternalErr("check.surface-map-format", result.error);
152
+ }
153
+ await printCheckSurfaceMapFormatResult(result.value, {
154
+ mode: input.outputMode
155
+ });
156
+ if (!result.value.ok) {
157
+ process.exit(1);
158
+ }
159
+ return Result.ok(result.value);
160
+ }
161
+ });
162
+ var checkDocsSentinelAction = defineAction({
163
+ id: "check.docs-sentinel",
164
+ description: "Validate docs/README.md PACKAGE_LIST sentinel freshness",
165
+ surfaces: ["cli"],
166
+ input: checkAutomationInputSchema,
167
+ cli: {
168
+ group: "check",
169
+ command: "docs-sentinel",
170
+ description: "Validate docs/README.md PACKAGE_LIST sentinel freshness",
171
+ options: [...checkAutomationOutput.options, ...checkAutomationCwd.options],
172
+ mapInput: mapCheckAutomationInput
173
+ },
174
+ handler: async (input) => {
175
+ const result = await runCheckDocsSentinel({ cwd: input.cwd });
176
+ if (result.isErr()) {
177
+ return actionInternalErr("check.docs-sentinel", result.error);
178
+ }
179
+ await printCheckDocsSentinelResult(result.value, {
180
+ mode: input.outputMode
181
+ });
182
+ if (!result.value.ok) {
183
+ process.exit(1);
184
+ }
185
+ return Result.ok(result.value);
186
+ }
187
+ });
188
+ var checkActionCeremonyAction = defineAction({
189
+ id: "check.action-ceremony",
190
+ description: "Validate action ceremony guardrails in apps/outfitter/src/actions",
191
+ surfaces: ["cli"],
192
+ input: checkAutomationInputSchema,
193
+ cli: {
194
+ group: "check",
195
+ command: "action-ceremony",
196
+ description: "Validate action ceremony guardrails in apps/outfitter/src/actions",
197
+ options: [...checkAutomationOutput.options, ...checkAutomationCwd.options],
198
+ mapInput: mapCheckAutomationInput
199
+ },
200
+ handler: async (input) => {
201
+ const result = await runCheckActionCeremony({ cwd: input.cwd });
202
+ if (result.isErr()) {
203
+ return actionInternalErr("check.action-ceremony", result.error);
204
+ }
205
+ await printCheckActionCeremonyResult(result.value, {
206
+ mode: input.outputMode
207
+ });
208
+ if (!result.value.ok) {
209
+ process.exit(1);
210
+ }
211
+ return Result.ok(result.value);
212
+ }
213
+ });
214
+
215
+ export { checkPublishGuardrailsAction, checkPresetVersionsAction, checkSurfaceMapAction, checkSurfaceMapFormatAction, checkDocsSentinelAction, checkActionCeremonyAction };
@@ -0,0 +1,101 @@
1
+ // @bun
2
+ import {
3
+ renderOperationPlan
4
+ } from "./outfitter-ttjr95y9.js";
5
+ import {
6
+ resolveStructuredOutputMode
7
+ } from "./outfitter-7r12fj7f.js";
8
+ import {
9
+ OperationCollector
10
+ } from "./outfitter-1h7k8xxt.js";
11
+
12
+ // apps/outfitter/src/commands/init-output.ts
13
+ import { realpath } from "fs/promises";
14
+ import { output } from "@outfitter/cli";
15
+ async function printInitResults(result, options) {
16
+ let rootDir = result.rootDir;
17
+ let projectDir = result.projectDir;
18
+ try {
19
+ rootDir = await realpath(rootDir);
20
+ projectDir = await realpath(projectDir);
21
+ } catch {}
22
+ const structuredMode = resolveStructuredOutputMode(options?.mode);
23
+ if (result.dryRunPlan) {
24
+ if (structuredMode) {
25
+ await output({
26
+ rootDir,
27
+ projectDir,
28
+ structure: result.structure,
29
+ preset: result.preset,
30
+ packageName: result.packageName,
31
+ ...result.dryRunPlan
32
+ }, { mode: structuredMode });
33
+ return;
34
+ }
35
+ const collector = new OperationCollector;
36
+ for (const op of result.dryRunPlan.operations) {
37
+ collector.add(op);
38
+ }
39
+ await renderOperationPlan(collector, { rootDir });
40
+ return;
41
+ }
42
+ if (structuredMode) {
43
+ await output({
44
+ structure: result.structure,
45
+ rootDir,
46
+ projectDir,
47
+ preset: result.preset,
48
+ packageName: result.packageName,
49
+ blocksAdded: result.blocksAdded ?? null,
50
+ postScaffold: result.postScaffold,
51
+ nextSteps: result.postScaffold.nextSteps
52
+ }, { mode: structuredMode });
53
+ return;
54
+ }
55
+ const lines = [
56
+ `Project initialized successfully in ${rootDir}`,
57
+ `Structure: ${result.structure}`,
58
+ `Preset: ${result.preset}`
59
+ ];
60
+ if (result.structure === "workspace") {
61
+ lines.push(`Workspace project path: ${projectDir}`);
62
+ }
63
+ if (result.blocksAdded) {
64
+ const { created, skipped, dependencies, devDependencies } = result.blocksAdded;
65
+ if (created.length > 0) {
66
+ lines.push("", `Added ${created.length} tooling file(s):`);
67
+ for (const file of created) {
68
+ lines.push(` \u2713 ${file}`);
69
+ }
70
+ }
71
+ if (skipped.length > 0) {
72
+ lines.push("", `Skipped ${skipped.length} existing file(s):`);
73
+ for (const file of skipped) {
74
+ lines.push(` - ${file}`);
75
+ }
76
+ }
77
+ const depCount = Object.keys(dependencies).length + Object.keys(devDependencies).length;
78
+ if (depCount > 0) {
79
+ lines.push("", `Added ${depCount} package(s) to package.json:`);
80
+ for (const [name, version] of Object.entries(dependencies)) {
81
+ lines.push(` + ${name}@${version}`);
82
+ }
83
+ for (const [name, version] of Object.entries(devDependencies)) {
84
+ lines.push(` + ${name}@${version} (dev)`);
85
+ }
86
+ }
87
+ }
88
+ if (result.postScaffold.installResult === "failed") {
89
+ lines.push("", `Warning: bun install failed: ${result.postScaffold.installError ?? "unknown"}`);
90
+ }
91
+ if (result.postScaffold.gitInitResult === "failed") {
92
+ lines.push("", `Warning: git setup failed: ${result.postScaffold.gitError ?? "unknown"}`);
93
+ }
94
+ lines.push("", "Next steps:");
95
+ for (const step of result.postScaffold.nextSteps) {
96
+ lines.push(` ${step}`);
97
+ }
98
+ await output(lines, { mode: "human" });
99
+ }
100
+
101
+ export { printInitResults };
@@ -0,0 +1,19 @@
1
+ // @bun
2
+ // apps/outfitter/src/commands/upgrade-latest-version.ts
3
+ async function getLatestVersion(name) {
4
+ try {
5
+ const proc = Bun.spawn(["npm", "view", name, "version"], {
6
+ stdout: "pipe",
7
+ stderr: "pipe"
8
+ });
9
+ const stdout = await new Response(proc.stdout).text();
10
+ const exitCode = await proc.exited;
11
+ if (exitCode !== 0)
12
+ return null;
13
+ return stdout.trim() || null;
14
+ } catch {
15
+ return null;
16
+ }
17
+ }
18
+
19
+ export { getLatestVersion };
@@ -0,0 +1,48 @@
1
+ import { CliOutputMode } from "./outfitter-a79xrm12.js";
2
+ import { InternalError, Result } from "@outfitter/contracts";
3
+ /** Validated input for the docs.search action handler. */
4
+ interface DocsSearchInput {
5
+ readonly cwd: string;
6
+ readonly jq?: string | undefined;
7
+ readonly kind?: string | undefined;
8
+ readonly outputMode: CliOutputMode;
9
+ readonly package?: string | undefined;
10
+ readonly query: string;
11
+ }
12
+ /** A single match found in a documentation file. */
13
+ interface DocsSearchMatch {
14
+ readonly id: string;
15
+ readonly kind: string;
16
+ readonly matchLines: string[];
17
+ readonly outputPath: string;
18
+ readonly package?: string;
19
+ readonly sourcePath: string;
20
+ readonly title: string;
21
+ }
22
+ /** Output shape for the docs.search action. */
23
+ interface DocsSearchOutput {
24
+ readonly matches: DocsSearchMatch[];
25
+ readonly query: string;
26
+ readonly total: number;
27
+ }
28
+ /**
29
+ * Search documentation content for a query string.
30
+ *
31
+ * Generates the docs map for the workspace, reads each file's content,
32
+ * and performs case-insensitive substring matching to find relevant lines.
33
+ *
34
+ * @param input - Validated action input
35
+ * @returns Result containing the search matches or an error
36
+ */
37
+ declare function runDocsSearch(input: DocsSearchInput): Promise<Result<DocsSearchOutput, InternalError>>;
38
+ /**
39
+ * Print docs search results in the appropriate output format.
40
+ *
41
+ * @param result - The docs search output
42
+ * @param options - Output formatting options
43
+ */
44
+ declare function printDocsSearchResults(result: DocsSearchOutput, options?: {
45
+ mode?: CliOutputMode;
46
+ jq?: string | undefined;
47
+ }): Promise<void>;
48
+ export { DocsSearchInput, DocsSearchMatch, DocsSearchOutput, runDocsSearch, printDocsSearchResults };