@astryxdesign/cli 0.6.4-canary.f0355e3 → 0.6.4

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 (331) hide show
  1. package/README.md +96 -99
  2. package/api/build/build.doc.mjs +1 -6
  3. package/api/build/build.test.mjs +0 -22
  4. package/api/build/kit/kit.mjs +5 -44
  5. package/api/component/_adapter.d.mts +0 -25
  6. package/api/component/_adapter.mjs +5 -59
  7. package/api/component/component.d.mts +3 -6
  8. package/api/component/component.doc.mjs +17 -37
  9. package/api/component/component.mjs +9 -249
  10. package/api/component/component.type.d.mts +0 -25
  11. package/api/component/component.type.mjs +0 -44
  12. package/api/discover/_adapter.d.mts +6 -114
  13. package/api/discover/_adapter.mjs +17 -372
  14. package/api/discover/detail/detail.d.mts +6 -18
  15. package/api/discover/detail/detail.mjs +13 -67
  16. package/api/discover/detail/detail.test.mjs +0 -85
  17. package/api/discover/discover.d.mts +9 -3
  18. package/api/discover/discover.doc.mjs +18 -61
  19. package/api/discover/discover.mjs +36 -220
  20. package/api/discover/discover.test.mjs +2 -11
  21. package/api/discover/discover.type.d.mts +8 -147
  22. package/api/discover/discover.type.mjs +12 -102
  23. package/api/discover/list/list.d.mts +6 -20
  24. package/api/discover/list/list.mjs +12 -45
  25. package/api/discover/list/list.test.mjs +0 -46
  26. package/api/discover/search/search.d.mts +16 -18
  27. package/api/discover/search/search.mjs +56 -102
  28. package/api/discover/search/search.test.mjs +10 -144
  29. package/api/docs/_adapter.d.mts +3 -8
  30. package/api/docs/_adapter.mjs +6 -14
  31. package/api/docs/docOverlays.test.mjs +1 -27
  32. package/api/docs/docs.doc.mjs +2 -2
  33. package/api/docs/docs.test.mjs +243 -0
  34. package/api/docs/integration-tree.test.mjs +555 -0
  35. package/api/docs/integrationDocs.test.mjs +314 -0
  36. package/api/doctor/doctor.d.mts +3 -8
  37. package/api/doctor/doctor.doc.mjs +8 -17
  38. package/api/doctor/doctor.mjs +9 -90
  39. package/api/doctor/doctor.test.mjs +10 -122
  40. package/api/doctor/doctor.type.d.mts +1 -1
  41. package/api/doctor/doctor.type.mjs +1 -1
  42. package/api/gap-report/gap-report.doc.mjs +10 -19
  43. package/api/hook/hook.doc.mjs +3 -6
  44. package/api/index.d.mts +2 -1
  45. package/api/index.mjs +5 -5
  46. package/api/init/init.doc.mjs +12 -17
  47. package/api/integration/add-helpers.d.mts +2 -5
  48. package/api/integration/add-helpers.mjs +9 -36
  49. package/api/integration/add-theme.mjs +1 -22
  50. package/api/integration/add-theme.test.mjs +0 -34
  51. package/api/integration/authoring-checks.mjs +2 -2
  52. package/api/integration/integrationPackCheck.doc.mjs +3 -3
  53. package/api/integration/pack-check.mjs +9 -82
  54. package/api/integration/pack-check.test.mjs +0 -90
  55. package/api/integration/pack-check.type.mjs +1 -1
  56. package/api/json/assertResponse.doc.mjs +1 -1
  57. package/api/json/index.ts +1 -0
  58. package/api/json/isError.doc.mjs +1 -1
  59. package/api/layout/_adapter.d.mts +34 -0
  60. package/api/layout/_adapter.mjs +148 -0
  61. package/api/layout/check/check.d.mts +16 -0
  62. package/api/layout/check/check.mjs +40 -0
  63. package/api/layout/expand/expand.d.mts +22 -0
  64. package/api/layout/expand/expand.mjs +155 -0
  65. package/api/layout/expand/expand.path-safety.test.mjs +53 -0
  66. package/api/layout/grammar/grammar.d.mts +13 -0
  67. package/api/layout/grammar/grammar.mjs +87 -0
  68. package/api/layout/layout.d.mts +6 -0
  69. package/api/layout/layout.mjs +17 -0
  70. package/api/layout/layout.test.mjs +297 -0
  71. package/api/layout/layout.type.d.mts +89 -0
  72. package/api/layout/layout.type.mjs +103 -0
  73. package/api/layout/layoutCheck.doc.d.mts +11 -0
  74. package/api/layout/layoutCheck.doc.mjs +85 -0
  75. package/api/layout/layoutExpand.doc.d.mts +11 -0
  76. package/api/layout/layoutExpand.doc.mjs +107 -0
  77. package/api/layout/layoutGrammar.doc.d.mts +11 -0
  78. package/api/layout/layoutGrammar.doc.mjs +57 -0
  79. package/api/search/search.d.mts +1 -27
  80. package/api/search/search.doc.mjs +2 -2
  81. package/api/search/search.mjs +16 -228
  82. package/api/search/search.test.mjs +512 -0
  83. package/api/swizzle/swizzle.doc.mjs +5 -7
  84. package/api/template/copy/copy.mjs +1 -1
  85. package/api/template/copy/copy.test.mjs +0 -9
  86. package/api/template/template-integration.test.mjs +65 -1
  87. package/api/template/template.doc.mjs +1 -2
  88. package/api/template/template.mjs +1 -1
  89. package/api/theme/add/add.mjs +25 -17
  90. package/api/theme/add/add.staging.test.mjs +23 -40
  91. package/api/theme/build/build.family.test.mjs +12 -7
  92. package/api/theme/build/build.mjs +18 -8
  93. package/api/theme/generateTonalPalette.doc.mjs +2 -1
  94. package/api/theme/listThemes.doc.mjs +1 -1
  95. package/api/theme/themeAdd.doc.mjs +10 -9
  96. package/api/theme/themeBuild.doc.mjs +13 -13
  97. package/api/theme/themeList.doc.mjs +1 -1
  98. package/api/theme/themeListAvailable.doc.mjs +1 -2
  99. package/api/theme/themePaletteGenerate.doc.mjs +8 -15
  100. package/api/theme/themeTargets.doc.mjs +2 -3
  101. package/api/theme/themeTemplate.doc.mjs +1 -2
  102. package/api/upgrade/run/run.mjs +4 -6
  103. package/api/upgrade/upgrade.doc.mjs +22 -24
  104. package/api/upgrade/upgrade.type.mjs +2 -2
  105. package/assets/codemods/__tests__/runner.test.mjs +1 -3
  106. package/assets/codemods/integration-runner.mjs +3 -3
  107. package/assets/codemods/runner.mjs +4 -5
  108. package/assets/docs/README.md +2 -4
  109. package/assets/docs/browser-support.doc.mjs +11 -11
  110. package/assets/docs/color.doc.mjs +2 -8
  111. package/assets/docs/elevation.doc.mjs +4 -6
  112. package/assets/docs/getting-started.doc.mjs +16 -5
  113. package/assets/docs/icons.doc.mjs +21 -2
  114. package/assets/docs/illustrations.doc.mjs +15 -7
  115. package/assets/docs/internationalization.doc.mjs +5 -7
  116. package/assets/docs/layout.doc.dense.mjs +82 -130
  117. package/assets/docs/layout.doc.mjs +77 -133
  118. package/assets/docs/migration.doc.mjs +21 -19
  119. package/assets/docs/motion.doc.mjs +3 -16
  120. package/assets/docs/principles.doc.dense.mjs +5 -5
  121. package/assets/docs/principles.doc.mjs +0 -8
  122. package/assets/docs/principles.doc.zh.mjs +6 -6
  123. package/assets/docs/shape.doc.mjs +3 -8
  124. package/assets/docs/spacing.doc.mjs +2 -7
  125. package/assets/docs/styling-libraries.doc.mjs +2 -6
  126. package/assets/docs/styling.doc.mjs +23 -19
  127. package/assets/docs/theme.doc.dense.mjs +18 -58
  128. package/assets/docs/theme.doc.mjs +46 -56
  129. package/assets/docs/theme.doc.zh.mjs +8 -9
  130. package/assets/docs/tokens.doc.dense.mjs +2 -2
  131. package/assets/docs/tokens.doc.mjs +8 -389
  132. package/assets/docs/tokens.doc.zh.mjs +2 -2
  133. package/assets/docs/tree/integrations.doc.mjs +451 -25
  134. package/assets/docs/tree/integrations.test.mjs +62 -0
  135. package/assets/docs/tree/writing-docs.doc.mjs +286 -0
  136. package/assets/docs/typography.doc.mjs +4 -24
  137. package/assets/docs/working-with-ai.doc.mjs +22 -30
  138. package/assets/templates/blocks/components/InternationalizationProvider/InternationalizationProvider01ShippedLocale.tsx +1 -1
  139. package/authoring/config/config.doc.mjs +2 -10
  140. package/authoring/config/parse.d.mts +0 -2
  141. package/authoring/config/parse.mjs +0 -19
  142. package/authoring/config/parse.test.mjs +0 -8
  143. package/authoring/config/type.ts +2 -13
  144. package/authoring/doctypes/_schema.d.mts +2 -3
  145. package/authoring/doctypes/_schema.mjs +0 -6
  146. package/authoring/doctypes/base/graph-fields.doc.mjs +3 -3
  147. package/authoring/doctypes/base/type.ts +2 -4
  148. package/authoring/doctypes/command/command.doc.mjs +1 -1
  149. package/authoring/doctypes/command/type.ts +1 -1
  150. package/authoring/doctypes/component/component.doc.mjs +0 -6
  151. package/authoring/doctypes/component/type.ts +0 -8
  152. package/authoring/doctypes/reference/reference.doc.mjs +0 -7
  153. package/authoring/doctypes/reference/type.ts +0 -5
  154. package/authoring/doctypes/schema/schema.doc.mjs +2 -2
  155. package/authoring/doctypes/template/template.doc.mjs +1 -1
  156. package/authoring/doctypes/template/type.ts +2 -2
  157. package/authoring/index.d.mts +0 -1
  158. package/authoring/index.d.ts +0 -10
  159. package/authoring/index.mjs +0 -1
  160. package/authoring/integration/integration.doc.mjs +10 -12
  161. package/clients/cli/command-result-coverage.test.mjs +7 -7
  162. package/clients/cli/commands/component/index.mjs +55 -152
  163. package/clients/cli/commands/component-ownership.test.mjs +0 -89
  164. package/clients/cli/commands/component.doc.mjs +9 -27
  165. package/clients/cli/commands/debug-result-summary.test.mjs +2 -2
  166. package/clients/cli/commands/discover.doc.mjs +9 -53
  167. package/clients/cli/commands/discover.mjs +118 -393
  168. package/clients/cli/commands/docs.doc.mjs +1 -1
  169. package/clients/cli/commands/docs.mjs +17 -60
  170. package/clients/cli/commands/docs.test.mjs +294 -0
  171. package/clients/cli/commands/doctor-integration-docs.doc.mjs +2 -3
  172. package/clients/cli/commands/doctor-integration.test.mjs +0 -53
  173. package/clients/cli/commands/doctor.doc.mjs +1 -3
  174. package/clients/cli/commands/doctor.mjs +5 -49
  175. package/clients/cli/commands/gap-report.doc.mjs +9 -10
  176. package/clients/cli/commands/init.doc.mjs +6 -9
  177. package/clients/cli/commands/integration-add.doc.mjs +9 -9
  178. package/clients/cli/commands/integration-authoring.test.mjs +10 -61
  179. package/clients/cli/commands/integration-pack.doc.mjs +9 -5
  180. package/clients/cli/commands/integration-real-world.test.mjs +1 -1
  181. package/clients/cli/commands/integration.doc.mjs +4 -4
  182. package/clients/cli/commands/integration.mjs +43 -74
  183. package/clients/cli/commands/layout-check.doc.mjs +65 -0
  184. package/clients/cli/commands/layout-expand.doc.mjs +83 -0
  185. package/clients/cli/commands/layout-grammar.doc.mjs +30 -0
  186. package/clients/cli/commands/layout.doc.mjs +34 -0
  187. package/clients/cli/commands/layout.error-codes.test.mjs +66 -0
  188. package/clients/cli/commands/layout.exit-parity.test.mjs +41 -0
  189. package/clients/cli/commands/layout.mjs +275 -0
  190. package/clients/cli/commands/layout.path-help.test.mjs +33 -0
  191. package/clients/cli/commands/layout.stdin-cap.test.mjs +47 -0
  192. package/clients/cli/commands/layout.text-fields.test.mjs +39 -0
  193. package/clients/cli/commands/manifest.doc.mjs +1 -1
  194. package/clients/cli/commands/search.doc.mjs +3 -10
  195. package/clients/cli/commands/search.mjs +2 -21
  196. package/clients/cli/commands/search.test.mjs +4 -21
  197. package/clients/cli/commands/swizzle.doc.mjs +1 -1
  198. package/clients/cli/commands/template.doc.mjs +1 -1
  199. package/clients/cli/commands/text-json-parity.test.mjs +16 -5
  200. package/clients/cli/commands/theme-add.doc.mjs +1 -1
  201. package/clients/cli/commands/theme-palette-generate.doc.mjs +2 -3
  202. package/clients/cli/commands/theme-palette.doc.mjs +2 -1
  203. package/clients/cli/commands/theme-targets.doc.mjs +2 -2
  204. package/clients/cli/commands/theme.doc.mjs +1 -2
  205. package/clients/cli/commands/upgrade.doc.mjs +3 -62
  206. package/clients/cli/index.mjs +10 -28
  207. package/clients/cli/lib/define-command.mjs +4 -28
  208. package/clients/cli/lib/define-command.test.mjs +0 -54
  209. package/clients/cli/lib/exit-codes.test.mjs +9 -18
  210. package/clients/cli/lib/json-shim.mjs +14 -24
  211. package/clients/cli/lib/json-shim.test.mjs +20 -6
  212. package/clients/cli/lib/manifest.mjs +13 -18
  213. package/clients/cli/lib/manifest.test.mjs +2 -5
  214. package/foundation/agent-docs/agent-docs.mjs +1 -1
  215. package/foundation/agent-docs/agent-docs.test.mjs +1159 -0
  216. package/foundation/discovery/authoring-self-docs.mjs +0 -1
  217. package/foundation/discovery/authoring-self-docs.test.mjs +2 -6
  218. package/foundation/discovery/cli-self-docs.mjs +2 -16
  219. package/foundation/discovery/cli-self-docs.test.mjs +0 -20
  220. package/foundation/discovery/docs-discovery.mjs +1 -5
  221. package/foundation/discovery/docs-discovery.test.mjs +0 -21
  222. package/foundation/discovery/docs-section-key.d.mts +1 -1
  223. package/foundation/discovery/docs-section-key.mjs +1 -1
  224. package/foundation/discovery/template-adapter.mjs +1 -1
  225. package/foundation/doc-compiler/doc-loads.test.mjs +14 -3
  226. package/foundation/doc-compiler/tree.d.mts +0 -4
  227. package/foundation/doc-compiler/tree.mjs +1 -6
  228. package/foundation/doc-compiler/tree.test.mjs +598 -0
  229. package/foundation/integrations/cli-requirement.d.mts +6 -26
  230. package/foundation/integrations/cli-requirement.mjs +11 -46
  231. package/foundation/integrations/cli-requirement.test.mjs +2 -7
  232. package/foundation/integrations/contribution-inventory.mjs +1 -1
  233. package/foundation/integrations/integrations.d.mts +1 -14
  234. package/foundation/integrations/integrations.mjs +1 -41
  235. package/foundation/integrations/integrations.test.mjs +0 -31
  236. package/foundation/response/error-codes.doc.mjs +8 -6
  237. package/foundation/response/error-codes.test.mjs +5 -30
  238. package/foundation/response/response-types.doc.d.mts +3 -4
  239. package/foundation/response/response-types.doc.mjs +27 -40
  240. package/foundation/response/response-types.doc.test.mjs +0 -23
  241. package/foundation/response/response.doc.mjs +10 -11
  242. package/foundation/xle/browser.d.mts +3 -3
  243. package/foundation/xle/browser.mjs +3 -3
  244. package/foundation/xle/expand.mjs +2 -2
  245. package/foundation/xle/parse.mjs +1 -1
  246. package/foundation/xle/print.mjs +2 -2
  247. package/foundation/xle/splice.mjs +1 -1
  248. package/package.json +9 -9
  249. package/api/discover/_adapter.test.mjs +0 -215
  250. package/api/discover/_catalog-view.d.mts +0 -115
  251. package/api/discover/_catalog-view.mjs +0 -203
  252. package/api/discover/_catalog-view.test.mjs +0 -128
  253. package/api/discover/detail/item/item.d.mts +0 -26
  254. package/api/discover/detail/item/item.mjs +0 -78
  255. package/api/discover/detail/item/item.test.mjs +0 -73
  256. package/api/integration/pack-check.lifecycle-output.test.mjs +0 -107
  257. package/api/theme/add/add.rollback.test.mjs +0 -158
  258. package/api/theme/build/build.rollback.test.mjs +0 -148
  259. package/api/upgrade/run/files-changed.test.mjs +0 -111
  260. package/assets/codemods/file-count.test.mjs +0 -163
  261. package/assets/docs/tree/add-a-component.doc.mjs +0 -75
  262. package/assets/docs/tree/add-a-theme.doc.mjs +0 -85
  263. package/assets/docs/tree/add-a-topic.doc.mjs +0 -144
  264. package/assets/docs/tree/agent-guidance.doc.mjs +0 -138
  265. package/assets/docs/tree/block-template.doc.mjs +0 -130
  266. package/assets/docs/tree/build-the-template.doc.mjs +0 -28
  267. package/assets/docs/tree/building-blocks.doc.mjs +0 -46
  268. package/assets/docs/tree/check-your-docs.doc.mjs +0 -137
  269. package/assets/docs/tree/checks.doc.mjs +0 -119
  270. package/assets/docs/tree/codemods.doc.mjs +0 -147
  271. package/assets/docs/tree/component-family.doc.mjs +0 -113
  272. package/assets/docs/tree/component-imports.doc.mjs +0 -69
  273. package/assets/docs/tree/component-lookups.doc.mjs +0 -149
  274. package/assets/docs/tree/components.doc.mjs +0 -23
  275. package/assets/docs/tree/configuration.doc.mjs +0 -23
  276. package/assets/docs/tree/debug-and-gap-reports.doc.mjs +0 -182
  277. package/assets/docs/tree/define-the-theme.doc.mjs +0 -118
  278. package/assets/docs/tree/describe-the-component.doc.mjs +0 -57
  279. package/assets/docs/tree/docs.doc.mjs +0 -21
  280. package/assets/docs/tree/document-the-template.doc.mjs +0 -28
  281. package/assets/docs/tree/document-the-theme.doc.mjs +0 -68
  282. package/assets/docs/tree/export-template-assets.doc.mjs +0 -147
  283. package/assets/docs/tree/extend-or-replace.doc.mjs +0 -103
  284. package/assets/docs/tree/fonts-and-assets.doc.mjs +0 -106
  285. package/assets/docs/tree/generate-a-palette.doc.mjs +0 -66
  286. package/assets/docs/tree/grade-template-with-agent.doc.mjs +0 -105
  287. package/assets/docs/tree/help.doc.mjs +0 -16
  288. package/assets/docs/tree/links.doc.mjs +0 -98
  289. package/assets/docs/tree/package-and-test.doc.mjs +0 -32
  290. package/assets/docs/tree/page-template.doc.mjs +0 -71
  291. package/assets/docs/tree/publishing.doc.mjs +0 -111
  292. package/assets/docs/tree/quick-start.doc.mjs +0 -272
  293. package/assets/docs/tree/replace-a-core-component.doc.mjs +0 -104
  294. package/assets/docs/tree/replace-a-core-template.doc.mjs +0 -172
  295. package/assets/docs/tree/sections-and-placement.doc.mjs +0 -108
  296. package/assets/docs/tree/see-it-in-an-app.doc.mjs +0 -59
  297. package/assets/docs/tree/ship.doc.mjs +0 -16
  298. package/assets/docs/tree/short-and-findable.doc.mjs +0 -108
  299. package/assets/docs/tree/single-component.doc.mjs +0 -165
  300. package/assets/docs/tree/start-a-template.doc.mjs +0 -143
  301. package/assets/docs/tree/subcomponent.doc.mjs +0 -115
  302. package/assets/docs/tree/template-assets.doc.mjs +0 -64
  303. package/assets/docs/tree/template-doc-overview.doc.mjs +0 -109
  304. package/assets/docs/tree/template-fonts.doc.mjs +0 -102
  305. package/assets/docs/tree/template-grading-rubric.doc.mjs +0 -452
  306. package/assets/docs/tree/template-icons.doc.mjs +0 -97
  307. package/assets/docs/tree/template-images-media.doc.mjs +0 -127
  308. package/assets/docs/tree/template-styles.doc.mjs +0 -93
  309. package/assets/docs/tree/templates.doc.mjs +0 -34
  310. package/assets/docs/tree/test-in-an-app.doc.mjs +0 -115
  311. package/assets/docs/tree/test-template-in-app.doc.mjs +0 -128
  312. package/assets/docs/tree/themes.doc.mjs +0 -39
  313. package/assets/docs/tree/troubleshooting.doc.mjs +0 -149
  314. package/assets/docs/tree/upgrading.doc.mjs +0 -103
  315. package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +0 -51
  316. package/assets/docs/tree/verify-packed-template.doc.mjs +0 -77
  317. package/assets/docs/tree/versioning.doc.mjs +0 -161
  318. package/assets/docs/tree/write-good-templates.doc.mjs +0 -64
  319. package/assets/docs/tree/write-the-template-file.doc.mjs +0 -154
  320. package/authoring/discover/discover.doc.d.mts +0 -13
  321. package/authoring/discover/discover.doc.mjs +0 -138
  322. package/authoring/discover/parse.d.mts +0 -24
  323. package/authoring/discover/parse.mjs +0 -128
  324. package/authoring/discover/parse.test.mjs +0 -124
  325. package/authoring/discover/type.ts +0 -87
  326. package/clients/cli/commands/component-batch.test.mjs +0 -341
  327. package/clients/cli/commands/discover.sources.test.mjs +0 -267
  328. package/clients/cli/commands/integration-verify.doc.mjs +0 -22
  329. package/clients/cli/lib/parse-error-format.test.mjs +0 -81
  330. package/foundation/response/batch.type.d.mts +0 -33
  331. package/foundation/response/batch.type.mjs +0 -34
@@ -0,0 +1,89 @@
1
+ // @generated by scripts/sync-api-types.mjs from the JSDoc in api/**/*.mjs.
2
+ // DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
3
+
4
+ /**
5
+ * The input surface an expression was parsed as.
6
+ */
7
+ export type LayoutForm = "compact" | "outline" | "auto";
8
+ /**
9
+ * A validation issue with its formatted, human-readable rendering.
10
+ */
11
+ export type LayoutIssue = {
12
+ line?: number | undefined;
13
+ col?: number | undefined;
14
+ message: string;
15
+ formatted: string;
16
+ suggestions?: string[] | undefined;
17
+ };
18
+ /**
19
+ * A block referenced by a layout expression and how it was spliced in.
20
+ */
21
+ export type LayoutBlockReference = {
22
+ name: string;
23
+ mode: string;
24
+ };
25
+ /**
26
+ * astryx --json layout expand "<expr>" [path]
27
+ */
28
+ export type LayoutExpandResponse = {
29
+ type: "layout.expand";
30
+ data: {
31
+ form: LayoutForm;
32
+ code: string;
33
+ componentsUsed: string[];
34
+ states: number;
35
+ todos: string[];
36
+ blocksReferenced: LayoutBlockReference[];
37
+ warnings: string[];
38
+ written: string | null;
39
+ };
40
+ };
41
+ /**
42
+ * astryx --json layout check "<expr>"
43
+ */
44
+ export type LayoutCheckResponse = {
45
+ type: "layout.check";
46
+ data: {
47
+ valid: boolean;
48
+ form: LayoutForm;
49
+ errors: LayoutIssue[];
50
+ warnings: string[];
51
+ compact: string;
52
+ outline: string;
53
+ };
54
+ };
55
+ /**
56
+ * astryx --json layout grammar
57
+ */
58
+ export type LayoutGrammarResponse = {
59
+ type: "layout.grammar";
60
+ data: {
61
+ text: string;
62
+ aliases: Record<string, string>;
63
+ };
64
+ };
65
+ export type LayoutResponse = LayoutExpandResponse | LayoutCheckResponse | LayoutGrammarResponse;
66
+ /**
67
+ * Options for `layoutExpand()`.
68
+ */
69
+ export type LayoutExpandOptions = {
70
+ targetPath?: string | undefined;
71
+ form?: LayoutForm | undefined;
72
+ loose?: boolean | undefined;
73
+ name?: string | undefined;
74
+ cwd?: string | undefined;
75
+ };
76
+ /**
77
+ * Options for `layoutCheck()`.
78
+ */
79
+ export type LayoutCheckOptions = {
80
+ form?: LayoutForm | undefined;
81
+ loose?: boolean | undefined;
82
+ cwd?: string | undefined;
83
+ };
84
+ /**
85
+ * Options for `layoutGrammar()`.
86
+ */
87
+ export type LayoutGrammarOptions = {
88
+ cwd?: string | undefined;
89
+ };
@@ -0,0 +1,103 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file Colocated types for the `layout` command — source of truth for its JSON
5
+ * responses. `astryx layout expand|check|grammar` turn compressed XLE/XLO
6
+ * expressions into validated XDS TSX (or echo canonical surfaces / a grammar
7
+ * cheatsheet). The `types/layout.d.ts` barrel re-exports from here.
8
+ *
9
+ * Invocation -> type discriminator
10
+ * -----------------------------------------------------------------
11
+ * astryx --json layout expand "<expr>" -> layout.expand
12
+ * astryx --json layout check "<expr>" -> layout.check
13
+ * astryx --json layout grammar -> layout.grammar
14
+ */
15
+
16
+ /**
17
+ * The input surface an expression was parsed as.
18
+ * @typedef {'compact' | 'outline' | 'auto'} LayoutForm
19
+ */
20
+
21
+ /**
22
+ * A validation issue with its formatted, human-readable rendering.
23
+ * @typedef {object} LayoutIssue
24
+ * @property {number} [line]
25
+ * @property {number} [col]
26
+ * @property {string} message
27
+ * @property {string} formatted
28
+ * @property {string[]} [suggestions]
29
+ */
30
+
31
+ /**
32
+ * A block referenced by a layout expression and how it was spliced in.
33
+ * @typedef {object} LayoutBlockReference
34
+ * @property {string} name
35
+ * @property {string} mode
36
+ */
37
+
38
+ /**
39
+ * astryx --json layout expand "<expr>" [path]
40
+ * @typedef {object} LayoutExpandResponse
41
+ * @property {'layout.expand'} type
42
+ * @property {object} data
43
+ * @property {LayoutForm} data.form
44
+ * @property {string} data.code
45
+ * @property {string[]} data.componentsUsed
46
+ * @property {number} data.states Number of useState hooks the expansion scaffolded.
47
+ * @property {string[]} data.todos
48
+ * @property {LayoutBlockReference[]} data.blocksReferenced
49
+ * @property {string[]} data.warnings
50
+ * @property {string | null} data.written
51
+ */
52
+
53
+ /**
54
+ * astryx --json layout check "<expr>"
55
+ * @typedef {object} LayoutCheckResponse
56
+ * @property {'layout.check'} type
57
+ * @property {object} data
58
+ * @property {boolean} data.valid
59
+ * @property {LayoutForm} data.form
60
+ * @property {LayoutIssue[]} data.errors
61
+ * @property {string[]} data.warnings
62
+ * @property {string} data.compact
63
+ * @property {string} data.outline
64
+ */
65
+
66
+ /**
67
+ * astryx --json layout grammar
68
+ * @typedef {object} LayoutGrammarResponse
69
+ * @property {'layout.grammar'} type
70
+ * @property {object} data
71
+ * @property {string} data.text
72
+ * @property {Record<string, string>} data.aliases Alias table (short name -> canonical component), from the registry.
73
+ */
74
+
75
+ /**
76
+ * @typedef {LayoutExpandResponse | LayoutCheckResponse | LayoutGrammarResponse} LayoutResponse
77
+ */
78
+
79
+ /**
80
+ * Options for `layoutExpand()`.
81
+ * @typedef {object} LayoutExpandOptions
82
+ * @property {string} [targetPath]
83
+ * @property {LayoutForm} [form]
84
+ * @property {boolean} [loose]
85
+ * @property {string} [name]
86
+ * @property {string} [cwd]
87
+ */
88
+
89
+ /**
90
+ * Options for `layoutCheck()`.
91
+ * @typedef {object} LayoutCheckOptions
92
+ * @property {LayoutForm} [form]
93
+ * @property {boolean} [loose]
94
+ * @property {string} [cwd]
95
+ */
96
+
97
+ /**
98
+ * Options for `layoutGrammar()`.
99
+ * @typedef {object} LayoutGrammarOptions
100
+ * @property {string} [cwd]
101
+ */
102
+
103
+ export {};
@@ -0,0 +1,11 @@
1
+ // @generated by scripts/sync-api-types.mjs from the JSDoc in api/**/*.mjs.
2
+ // DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
3
+
4
+ /**
5
+ * @file FunctionDoc for `layoutCheck()` / `astryx layout check`. Colocated with
6
+ * the API function it documents; the response-shape source of truth stays in
7
+ * `layout.type.mjs`.
8
+ * @position packages/cli/api/layout — function documentation
9
+ */
10
+ /** @type {import('@astryxdesign/cli/authoring').FunctionDoc} */
11
+ export const doc: import("@astryxdesign/cli/authoring").FunctionDoc;
@@ -0,0 +1,85 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file FunctionDoc for `layoutCheck()` / `astryx layout check`. Colocated with
5
+ * the API function it documents; the response-shape source of truth stays in
6
+ * `layout.type.mjs`.
7
+ * @position packages/cli/api/layout — function documentation
8
+ */
9
+
10
+ /** @type {import('@astryxdesign/cli/authoring').FunctionDoc} */
11
+ export const doc = {
12
+ type: 'function',
13
+ kind: 'api',
14
+ name: 'layoutCheck',
15
+ namespace: 'cli/api',
16
+ displayName: 'layoutCheck()',
17
+ summary: 'Validate a layout expression without expanding it.',
18
+ description:
19
+ 'The validator behind `astryx layout check`. Parses and validates a compressed XLE/XLO ' +
20
+ 'expression without generating any TSX, and echoes it back in both canonical surfaces ' +
21
+ '(compact and outline). Validation failures are reported in the layout.check envelope ' +
22
+ '(valid: false) with line/col and suggestions (not thrown) so callers can lint an ' +
23
+ 'expression and surface fixes.',
24
+ importPath: '@astryxdesign/cli/api',
25
+ signature:
26
+ 'layoutCheck(expression: string, options?: LayoutCheckOptions): Promise<LayoutCheckResponse>',
27
+ keywords: ['layout', 'check', 'validate', 'xle', 'xlo', 'lint'],
28
+ params: [
29
+ {
30
+ name: 'expression',
31
+ type: 'string',
32
+ description: 'The layout expression to validate.',
33
+ required: true,
34
+ },
35
+ {
36
+ name: 'options.form',
37
+ type: "'compact' | 'outline' | 'auto'",
38
+ description:
39
+ 'Force which input surface the expression is parsed as, or auto-detect it.',
40
+ default: "'auto'",
41
+ },
42
+ {
43
+ name: 'options.loose',
44
+ type: 'boolean',
45
+ description:
46
+ 'Treat unknown {hint} references as warnings instead of errors.',
47
+ default: 'false',
48
+ },
49
+ {
50
+ name: 'options.cwd',
51
+ type: 'string',
52
+ description: 'Directory the block catalog and registry resolve against.',
53
+ },
54
+ ],
55
+ returns: [
56
+ {
57
+ type: 'layout.check',
58
+ description:
59
+ 'The validation result: a valid flag, the detected form, errors (each with line/col, message, formatted text, and suggestions), warnings, and the expression re-printed in both canonical surfaces (compact and outline).',
60
+ },
61
+ ],
62
+ throws: [
63
+ {code: 'ERR_INVALID_ARGUMENT', when: 'the expression is empty'},
64
+ {
65
+ code: 'ERR_INVALID_OPTION',
66
+ when: 'form is not one of "compact", "outline", or "auto"',
67
+ },
68
+ {
69
+ code: 'ERR_LAYOUT_PARSE',
70
+ when: 'the expression has a syntax error (reported with line/col)',
71
+ },
72
+ ],
73
+ examples: [
74
+ {
75
+ label: 'Validate an expression',
76
+ code: 'const r = await layoutCheck(\'VStack[g4] > Text"Hi"\');',
77
+ },
78
+ {
79
+ label: 'Read the canonical forms',
80
+ code: 'const {data} = await layoutCheck(\'Card > Text"Hi"\');',
81
+ },
82
+ ],
83
+ command: 'layout check',
84
+ related: ['layoutExpand', 'layoutGrammar'],
85
+ };
@@ -0,0 +1,11 @@
1
+ // @generated by scripts/sync-api-types.mjs from the JSDoc in api/**/*.mjs.
2
+ // DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
3
+
4
+ /**
5
+ * @file FunctionDoc for `layoutExpand()` / `astryx layout expand`. Colocated
6
+ * with the API function it documents; the response-shape source of truth stays
7
+ * in `layout.type.mjs`.
8
+ * @position packages/cli/api/layout — function documentation
9
+ */
10
+ /** @type {import('@astryxdesign/cli/authoring').FunctionDoc} */
11
+ export const doc: import("@astryxdesign/cli/authoring").FunctionDoc;
@@ -0,0 +1,107 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file FunctionDoc for `layoutExpand()` / `astryx layout expand`. Colocated
5
+ * with the API function it documents; the response-shape source of truth stays
6
+ * in `layout.type.mjs`.
7
+ * @position packages/cli/api/layout — function documentation
8
+ */
9
+
10
+ /** @type {import('@astryxdesign/cli/authoring').FunctionDoc} */
11
+ export const doc = {
12
+ type: 'function',
13
+ kind: 'api',
14
+ name: 'layoutExpand',
15
+ namespace: 'cli/api',
16
+ displayName: 'layoutExpand()',
17
+ summary: 'Expand a validated layout expression into XDS TSX.',
18
+ description:
19
+ 'The generator behind `astryx layout expand`. Parses and validates a compressed XLE/XLO ' +
20
+ 'expression, then expands it into ready-to-use XDS TSX, auto-routing structural children ' +
21
+ 'into the right slots, scaffolding typed useState for interactive controls, and splicing or ' +
22
+ 'importing any referenced template blocks. Returns the code (and metadata) in a layout.expand ' +
23
+ 'envelope, optionally writing it to a path within cwd.',
24
+ importPath: '@astryxdesign/cli/api',
25
+ signature:
26
+ 'layoutExpand(expression: string, options?: LayoutExpandOptions): Promise<LayoutExpandResponse>',
27
+ keywords: ['layout', 'expand', 'xle', 'xlo', 'tsx', 'scaffold', 'generate'],
28
+ params: [
29
+ {
30
+ name: 'expression',
31
+ type: 'string',
32
+ description:
33
+ 'The layout expression to expand (XLE compact or XLO outline form).',
34
+ required: true,
35
+ },
36
+ {
37
+ name: 'options.targetPath',
38
+ type: 'string',
39
+ description:
40
+ 'Write the generated TSX here (validated to stay within cwd). A path that ends in .tsx, .ts, .jsx, .js, .mjs, .cjs, .css, .scss, .json, .md or .html is used as-is; any other path is a directory that gets <name>.tsx. An existing file is replaced. Omit to return the code without writing.',
41
+ },
42
+ {
43
+ name: 'options.form',
44
+ type: "'compact' | 'outline' | 'auto'",
45
+ description:
46
+ 'Force which input surface the expression is parsed as, or auto-detect it.',
47
+ default: "'auto'",
48
+ },
49
+ {
50
+ name: 'options.loose',
51
+ type: 'boolean',
52
+ description:
53
+ 'Downgrade unknown {hint} references to TODO warnings instead of hard errors.',
54
+ default: 'false',
55
+ },
56
+ {
57
+ name: 'options.name',
58
+ type: 'string',
59
+ description: 'PascalCase name for the generated component.',
60
+ default: "'GeneratedLayout'",
61
+ },
62
+ {
63
+ name: 'options.cwd',
64
+ type: 'string',
65
+ description:
66
+ 'Directory the block catalog, registry, and target path resolve against.',
67
+ },
68
+ ],
69
+ returns: [
70
+ {
71
+ type: 'layout.expand',
72
+ description:
73
+ 'The expansion: the parsed form, the generated TSX code, componentsUsed, states (count of useState hooks scaffolded), todos, blocksReferenced (each {name, mode}), warnings, and written (the relative output path, or null when nothing was written).',
74
+ },
75
+ ],
76
+ throws: [
77
+ {
78
+ code: 'ERR_INVALID_ARGUMENT',
79
+ when: 'the expression is empty, or name is not a PascalCase identifier',
80
+ },
81
+ {
82
+ code: 'ERR_INVALID_OPTION',
83
+ when: 'form is not one of "compact", "outline", or "auto"',
84
+ },
85
+ {
86
+ code: 'ERR_LAYOUT_PARSE',
87
+ when: 'the expression has a syntax error (reported with line/col)',
88
+ },
89
+ {
90
+ code: 'ERR_LAYOUT_INVALID',
91
+ when: 'the expression parses but fails validation (unknown component/prop/enum/block)',
92
+ },
93
+ {code: 'ERR_PATH_TRAVERSAL', when: 'the target path escapes cwd'},
94
+ ],
95
+ examples: [
96
+ {
97
+ label: 'Expand to TSX',
98
+ code: 'const r = await layoutExpand(\'VStack[g4] > Heading"Title" + Text"Body"\');',
99
+ },
100
+ {
101
+ label: 'Write to a file',
102
+ code: "await layoutExpand('Card > Text\"Hi\"', {targetPath: 'src/Generated.tsx', name: 'Generated'});",
103
+ },
104
+ ],
105
+ command: 'layout expand',
106
+ related: ['layoutCheck', 'layoutGrammar'],
107
+ };
@@ -0,0 +1,11 @@
1
+ // @generated by scripts/sync-api-types.mjs from the JSDoc in api/**/*.mjs.
2
+ // DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
3
+
4
+ /**
5
+ * @file FunctionDoc for `layoutGrammar()` / `astryx layout grammar`. Colocated
6
+ * with the API function it documents; the response-shape source of truth stays
7
+ * in `layout.type.mjs`.
8
+ * @position packages/cli/api/layout — function documentation
9
+ */
10
+ /** @type {import('@astryxdesign/cli/authoring').FunctionDoc} */
11
+ export const doc: import("@astryxdesign/cli/authoring").FunctionDoc;
@@ -0,0 +1,57 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file FunctionDoc for `layoutGrammar()` / `astryx layout grammar`. Colocated
5
+ * with the API function it documents; the response-shape source of truth stays
6
+ * in `layout.type.mjs`.
7
+ * @position packages/cli/api/layout — function documentation
8
+ */
9
+
10
+ /** @type {import('@astryxdesign/cli/authoring').FunctionDoc} */
11
+ export const doc = {
12
+ type: 'function',
13
+ kind: 'api',
14
+ name: 'layoutGrammar',
15
+ namespace: 'cli/api',
16
+ displayName: 'layoutGrammar()',
17
+ summary: 'Return the XLE/XLO grammar cheatsheet for this install.',
18
+ description:
19
+ 'The reference behind `astryx layout grammar`: the agent cheatsheet for writing XLE/XLO ' +
20
+ "layout expressions, with the alias table generated from this branch's registry rather than " +
21
+ 'hand-maintained, so short names always reflect the components actually installed.',
22
+ importPath: '@astryxdesign/cli/api',
23
+ signature:
24
+ 'layoutGrammar(options?: LayoutGrammarOptions): Promise<LayoutGrammarResponse>',
25
+ keywords: [
26
+ 'layout',
27
+ 'grammar',
28
+ 'cheatsheet',
29
+ 'xle',
30
+ 'xlo',
31
+ 'aliases',
32
+ 'reference',
33
+ ],
34
+ params: [
35
+ {
36
+ name: 'options.cwd',
37
+ type: 'string',
38
+ description:
39
+ 'Directory the component registry (and its alias table) resolves against.',
40
+ },
41
+ ],
42
+ returns: [
43
+ {
44
+ type: 'layout.grammar',
45
+ description:
46
+ "The cheatsheet: a text field with the full grammar reference, plus an aliases map (short name → canonical component) generated from this install's registry.",
47
+ },
48
+ ],
49
+ examples: [
50
+ {
51
+ label: 'Get the cheatsheet',
52
+ code: 'const {data} = await layoutGrammar();',
53
+ },
54
+ ],
55
+ command: 'layout grammar',
56
+ related: ['layoutExpand', 'layoutCheck'],
57
+ };
@@ -24,23 +24,6 @@ export function sameWord(a: string, b: string): boolean;
24
24
  * @returns {string[]}
25
25
  */
26
26
  export function tokenizeQuery(term: string): string[];
27
- /**
28
- * The first title or heading that holds every word of the query, in order and
29
- * side by side, or null.
30
- * @param {string} term - Lowercased full query.
31
- * @param {string[] | undefined} titles
32
- * @returns {string | null}
33
- */
34
- export function headingWithPhrase(term: string, titles: string[] | undefined): string | null;
35
- /**
36
- * The first title or heading of two words or more that the query holds whole,
37
- * in order and side by side, or null. A question such as "how do I add dark
38
- * mode" names the "Dark mode" section outright, around words no title has.
39
- * @param {string} term - Lowercased full query.
40
- * @param {string[] | undefined} titles
41
- * @returns {string | null}
42
- */
43
- export function titleInQuery(term: string, titles: string[] | undefined): string | null;
44
27
  /**
45
28
  * @param {string} term - Lowercased full query.
46
29
  * @param {string[]} tokens - Content tokens from tokenizeQuery(term).
@@ -66,8 +49,6 @@ export function scoreQuery(term: string, tokens: string[], candidate: Candidate)
66
49
  * @param {string} term - Lowercased search term.
67
50
  * @param {object} candidate
68
51
  * @param {string} candidate.name - Primary identifier (component/hook name, topic, template name).
69
- * @param {string} [candidate.domain] - A component, hook, or template name
70
- * also matches typed as words: `command palette` is CommandPalette.
71
52
  * @param {string[]} [candidate.keywords] - Authored intent (componentsUsed, category words).
72
53
  * @param {string[]} [candidate.weakKeywords] - Derived signal (components a page renders).
73
54
  * @param {string} [candidate.description]
@@ -76,9 +57,8 @@ export function scoreQuery(term: string, tokens: string[], candidate: Candidate)
76
57
  * @param {{fuzzy?: boolean}} [opts] - `fuzzy`: allow edit-distance (typo) matches. Default true; multi-word queries pass false.
77
58
  * @returns {{score: number, reason: string} | null}
78
59
  */
79
- export function scoreCandidate(term: string, { name, domain, keywords, weakKeywords, description, prose, guidance, }: {
60
+ export function scoreCandidate(term: string, { name, keywords, weakKeywords, description, prose, guidance, }: {
80
61
  name: string;
81
- domain?: string | undefined;
82
62
  keywords?: string[] | undefined;
83
63
  weakKeywords?: string[] | undefined;
84
64
  description?: string | undefined;
@@ -142,12 +122,6 @@ export type Candidate = {
142
122
  description?: string | undefined;
143
123
  prose?: string[] | undefined;
144
124
  guidance?: string[] | undefined;
145
- /**
146
- * - A doc's title and the headings inside it:
147
- * the lines a reader scans to pick it. The whole query standing in one of
148
- * them, or one of them standing whole in the query, is a top-tier match.
149
- */
150
- titles?: string[] | undefined;
151
125
  _import?: string | undefined;
152
126
  _title?: string | undefined;
153
127
  /**
@@ -48,7 +48,7 @@ export const doc = {
48
48
  name: 'options.cwd',
49
49
  type: 'string',
50
50
  description:
51
- "Directory to resolve @astryxdesign/core from. A docs-only search (`type: 'doc'`) does not need it, and a search with no `type` covers the docs alone when core is missing.",
51
+ "Directory to resolve @astryxdesign/core from. A docs-only search (`type: 'doc'`) does not need it.",
52
52
  },
53
53
  ],
54
54
  returns: [
@@ -65,7 +65,7 @@ export const doc = {
65
65
  },
66
66
  {
67
67
  code: 'ERR_CORE_NOT_FOUND',
68
- when: '@astryxdesign/core cannot be found from the cwd, and `type` names a domain that reads it: `component`, `hook`, or `template`',
68
+ when: '@astryxdesign/core cannot be found from the cwd, and the search reads it: every `type` but `doc`',
69
69
  },
70
70
  ],
71
71
  examples: [