@astryxdesign/cli 0.7.2-canary.fdd384f → 0.7.2

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 (450) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/README.md +169 -149
  3. package/api/build/_adapter.d.mts +8 -0
  4. package/api/build/_adapter.mjs +12 -1
  5. package/api/build/build.doc.mjs +4 -0
  6. package/api/build/kit/kit.mjs +3 -11
  7. package/api/component/_adapter.d.mts +31 -0
  8. package/api/component/_adapter.mjs +119 -11
  9. package/api/component/component.doc.mjs +6 -1
  10. package/api/component/component.mjs +60 -10
  11. package/api/component/doc-links.test.mjs +386 -0
  12. package/api/discover/_adapter.d.mts +132 -12
  13. package/api/discover/_adapter.mjs +488 -27
  14. package/api/discover/_adapter.test.mjs +599 -17
  15. package/api/discover/_catalog-view.d.mts +16 -5
  16. package/api/discover/_catalog-view.mjs +32 -8
  17. package/api/discover/detail/doc/doc.mjs +9 -1
  18. package/api/discover/discover.d.mts +11 -0
  19. package/api/discover/discover.doc.mjs +9 -7
  20. package/api/discover/discover.mjs +121 -19
  21. package/api/discover/discover.type.d.mts +20 -7
  22. package/api/discover/discover.type.mjs +17 -7
  23. package/api/discover/list/list.d.mts +4 -3
  24. package/api/discover/list/list.mjs +17 -10
  25. package/api/docs/_adapter.d.mts +63 -0
  26. package/api/docs/_adapter.mjs +312 -18
  27. package/api/docs/docs.doc.mjs +2 -1
  28. package/api/docs/docs.mjs +2 -1
  29. package/api/docs/docs.test.mjs +5 -2
  30. package/api/docs/integration-tree.test.mjs +22 -0
  31. package/api/docs/list/list.mjs +12 -2
  32. package/api/docs/reference-blocks.test.mjs +1 -3
  33. package/api/doctor/_adapter.d.mts +108 -0
  34. package/api/doctor/_adapter.mjs +223 -4
  35. package/api/doctor/doctor.d.mts +199 -0
  36. package/api/doctor/doctor.doc.mjs +3 -2
  37. package/api/doctor/doctor.mjs +530 -34
  38. package/api/doctor/doctor.test.mjs +180 -14
  39. package/api/doctor/release-checks.test.mjs +156 -0
  40. package/api/doctor/theme-checks.mjs +16 -3
  41. package/api/doctor/theme-checks.test.mjs +223 -7
  42. package/api/error.d.mts +10 -0
  43. package/api/error.mjs +25 -0
  44. package/api/gap-report/gap-report.d.mts +3 -0
  45. package/api/gap-report/gap-report.doc.mjs +11 -3
  46. package/api/gap-report/gap-report.mjs +152 -48
  47. package/api/gap-report/gap-report.test.mjs +233 -0
  48. package/api/gap-report/gap-report.type.d.mts +41 -0
  49. package/api/gap-report/gap-report.type.mjs +18 -0
  50. package/api/hook/_adapter.mjs +3 -11
  51. package/api/hook/hook.doc.mjs +4 -0
  52. package/api/hook/list/list.d.mts +1 -1
  53. package/api/init/_adapter.d.mts +22 -0
  54. package/api/init/_adapter.mjs +59 -0
  55. package/api/init/init.d.mts +7 -5
  56. package/api/init/init.doc.mjs +28 -7
  57. package/api/init/init.mjs +28 -4
  58. package/api/init/init.type.d.mts +48 -3
  59. package/api/init/init.type.mjs +37 -3
  60. package/api/init/run/run.d.mts +1 -1
  61. package/api/init/run/run.mjs +15 -4
  62. package/api/init/user/user.d.mts +14 -0
  63. package/api/init/user/user.mjs +87 -0
  64. package/api/init/user/user.test.mjs +232 -0
  65. package/api/integration/_adapter.d.mts +33 -0
  66. package/api/integration/_adapter.mjs +58 -0
  67. package/api/integration/authoring-checks.mjs +100 -5
  68. package/api/integration/authoring-checks.test.mjs +769 -0
  69. package/api/integration/authoring-checks.type.d.mts +134 -0
  70. package/api/integration/authoring-checks.type.mjs +60 -1
  71. package/api/integration/integrationCheck.doc.mjs +1 -1
  72. package/api/integration/integrationComponentConflicts.doc.mjs +11 -3
  73. package/api/integration/integrationDocConflicts.doc.mjs +22 -5
  74. package/api/integration/pack-check.mjs +303 -13
  75. package/api/integration/pack-check.test.mjs +371 -10
  76. package/api/integration/validate-integration-fixes.test.mjs +67 -0
  77. package/api/integration/validate-integration.d.mts +8 -0
  78. package/api/integration/validate-integration.mjs +55 -9
  79. package/api/integration/validate-integration.test.mjs +77 -8
  80. package/api/integration/validate-integration.type.d.mts +8 -0
  81. package/api/integration/validate-integration.type.mjs +3 -1
  82. package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
  83. package/api/integration/validateIntegration.doc.mjs +4 -2
  84. package/api/search/_adapter.d.mts +11 -0
  85. package/api/search/_adapter.mjs +25 -0
  86. package/api/search/search.d.mts +73 -13
  87. package/api/search/search.doc.mjs +8 -3
  88. package/api/search/search.domain-priority.test.mjs +108 -18
  89. package/api/search/search.mjs +541 -52
  90. package/api/search/search.test.mjs +143 -1
  91. package/api/search/search.type.d.mts +14 -1
  92. package/api/search/search.type.mjs +6 -1
  93. package/api/swizzle/_adapter.mjs +2 -2
  94. package/api/swizzle/copy/copy.mjs +1 -1
  95. package/api/template/template-integration.test.mjs +1 -1
  96. package/api/theme/_adapter.d.mts +16 -0
  97. package/api/theme/_adapter.mjs +32 -5
  98. package/api/theme/build/build.d.mts +2 -1
  99. package/api/theme/build/build.mjs +70 -14
  100. package/api/theme/build/build.packed-old-core.test.mjs +20 -3
  101. package/api/theme/build/font-warning.mjs +5 -3
  102. package/api/theme/build/font-warning.test.mjs +2 -1
  103. package/api/theme/remove/remove.test.mjs +2 -2
  104. package/api/theme/targets/targets.mjs +3 -10
  105. package/api/theme/themeTargets.doc.mjs +4 -0
  106. package/api/theme/use/use.test.mjs +1 -1
  107. package/api/upgrade/_adapter.d.mts +40 -2
  108. package/api/upgrade/_adapter.mjs +118 -5
  109. package/api/upgrade/run/cli-behind-core.test.mjs +438 -0
  110. package/api/upgrade/run/run.mjs +35 -2
  111. package/api/upgrade/status/status.d.mts +21 -5
  112. package/api/upgrade/status/status.mjs +45 -8
  113. package/api/upgrade/upgrade.doc.mjs +6 -3
  114. package/api/upgrade/upgrade.mjs +5 -1
  115. package/api/upgrade/upgrade.type.d.mts +23 -0
  116. package/api/upgrade/upgrade.type.mjs +16 -1
  117. package/assets/codemods/__tests__/registry.test.mjs +1 -0
  118. package/assets/codemods/registry.mjs +1 -0
  119. package/assets/codemods/runner.mjs +7 -1
  120. package/assets/codemods/transforms/next/index.mjs +1 -11
  121. package/assets/codemods/transforms/v0.7.2/index.mjs +20 -0
  122. package/assets/discover/official-packages.json +367 -0
  123. package/assets/docs/author-a-theme.doc.mjs +2 -2
  124. package/assets/docs/browser-support.doc.mjs +1 -1
  125. package/assets/docs/getting-started.doc.mjs +23 -3
  126. package/assets/docs/styling-overview.doc.mjs +1 -1
  127. package/assets/docs/theme.doc.mjs +1 -1
  128. package/assets/docs/tree/add-a-component.doc.mjs +12 -2
  129. package/assets/docs/tree/add-a-theme.doc.mjs +13 -3
  130. package/assets/docs/tree/add-a-topic.doc.mjs +54 -9
  131. package/assets/docs/tree/agent-guidance.doc.mjs +19 -5
  132. package/assets/docs/tree/block-template.doc.mjs +6 -18
  133. package/assets/docs/tree/build-the-template.doc.mjs +1 -1
  134. package/assets/docs/tree/building-blocks.doc.mjs +4 -0
  135. package/assets/docs/tree/check-the-props.doc.mjs +8 -3
  136. package/assets/docs/tree/check-your-docs.doc.mjs +30 -13
  137. package/assets/docs/tree/checks.doc.mjs +17 -17
  138. package/assets/docs/tree/ci-and-containers.doc.mjs +88 -0
  139. package/assets/docs/tree/cli-command.doc.mjs +142 -0
  140. package/assets/docs/tree/cli.doc.mjs +6 -0
  141. package/assets/docs/tree/codemods.doc.mjs +17 -7
  142. package/assets/docs/tree/commands.doc.mjs +7 -1
  143. package/assets/docs/tree/component-family.doc.mjs +3 -5
  144. package/assets/docs/tree/component-imports.doc.mjs +13 -3
  145. package/assets/docs/tree/components.doc.mjs +7 -1
  146. package/assets/docs/tree/computer-agent-guide.doc.mjs +160 -0
  147. package/assets/docs/tree/computer-integrations.doc.mjs +93 -0
  148. package/assets/docs/tree/configuration.doc.mjs +7 -3
  149. package/assets/docs/tree/debug-and-gap-reports.doc.mjs +41 -22
  150. package/assets/docs/tree/define-the-theme.doc.mjs +6 -5
  151. package/assets/docs/tree/describe-the-component.doc.mjs +2 -2
  152. package/assets/docs/tree/docs.doc.mjs +9 -3
  153. package/assets/docs/tree/document-the-template.doc.mjs +1 -1
  154. package/assets/docs/tree/document-the-theme.doc.mjs +3 -3
  155. package/assets/docs/tree/export-template-assets.doc.mjs +1 -1
  156. package/assets/docs/tree/extend-or-replace.doc.mjs +19 -9
  157. package/assets/docs/tree/fonts-and-assets.doc.mjs +2 -2
  158. package/assets/docs/tree/generate-a-palette.doc.mjs +7 -5
  159. package/assets/docs/tree/global-integrations.doc.mjs +124 -0
  160. package/assets/docs/tree/global.doc.mjs +131 -0
  161. package/assets/docs/tree/grade-template-with-agent.doc.mjs +5 -5
  162. package/assets/docs/tree/install-once.doc.mjs +105 -0
  163. package/assets/docs/tree/integrations.doc.mjs +13 -1
  164. package/assets/docs/tree/layout-spacing.doc.mjs +2 -3
  165. package/assets/docs/tree/layout.doc.mjs +6 -6
  166. package/assets/docs/tree/links.doc.mjs +6 -5
  167. package/assets/docs/tree/migration-setup.doc.mjs +3 -2
  168. package/assets/docs/tree/migration-verification.doc.mjs +0 -1
  169. package/assets/docs/tree/migration.doc.mjs +0 -1
  170. package/assets/docs/tree/monorepos.doc.mjs +84 -0
  171. package/assets/docs/tree/package-and-test.doc.mjs +1 -1
  172. package/assets/docs/tree/page-template.doc.mjs +3 -7
  173. package/assets/docs/tree/problems.doc.mjs +205 -0
  174. package/assets/docs/tree/project-global-or-both.doc.mjs +131 -0
  175. package/assets/docs/tree/publishing.doc.mjs +6 -6
  176. package/assets/docs/tree/quick-start.doc.mjs +52 -26
  177. package/assets/docs/tree/reference.doc.mjs +192 -0
  178. package/assets/docs/tree/replace-a-core-component.doc.mjs +15 -7
  179. package/assets/docs/tree/replace-a-core-template.doc.mjs +9 -11
  180. package/assets/docs/tree/scaffold.doc.mjs +1 -1
  181. package/assets/docs/tree/sections-and-placement.doc.mjs +9 -11
  182. package/assets/docs/tree/see-it-in-an-app.doc.mjs +17 -5
  183. package/assets/docs/tree/short-and-findable.doc.mjs +9 -8
  184. package/assets/docs/tree/single-component.doc.mjs +14 -6
  185. package/assets/docs/tree/start-a-template.doc.mjs +18 -8
  186. package/assets/docs/tree/subcomponent.doc.mjs +6 -6
  187. package/assets/docs/tree/template-assets.doc.mjs +2 -2
  188. package/assets/docs/tree/template-doc-overview.doc.mjs +6 -17
  189. package/assets/docs/tree/template-fonts.doc.mjs +1 -1
  190. package/assets/docs/tree/template-icons.doc.mjs +1 -1
  191. package/assets/docs/tree/template-images-media.doc.mjs +1 -1
  192. package/assets/docs/tree/template-styles.doc.mjs +2 -2
  193. package/assets/docs/tree/templates.doc.mjs +7 -1
  194. package/assets/docs/tree/test-in-an-app.doc.mjs +7 -7
  195. package/assets/docs/tree/test-template-in-app.doc.mjs +5 -5
  196. package/assets/docs/tree/themes.doc.mjs +4 -0
  197. package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
  198. package/assets/docs/tree/troubleshooting.doc.mjs +22 -14
  199. package/assets/docs/tree/uninstall.doc.mjs +109 -0
  200. package/assets/docs/tree/updates.doc.mjs +92 -0
  201. package/assets/docs/tree/upgrading.doc.mjs +6 -6
  202. package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +14 -2
  203. package/assets/docs/tree/verify-packed-template.doc.mjs +3 -3
  204. package/assets/docs/tree/versioning.doc.mjs +9 -9
  205. package/assets/docs/tree/who-answers.doc.mjs +119 -0
  206. package/assets/docs/tree/write-the-template-file.doc.mjs +5 -5
  207. package/assets/docs/working-with-ai.doc.mjs +23 -9
  208. package/authoring/codemod/codemod.doc.mjs +7 -3
  209. package/authoring/config/config.doc.mjs +9 -6
  210. package/authoring/config/type.ts +4 -2
  211. package/authoring/debug/parse.d.mts +5 -5
  212. package/authoring/discover/discover.doc.mjs +7 -1
  213. package/authoring/doctypes/_schema.d.mts +8 -3
  214. package/authoring/doctypes/_schema.mjs +1 -0
  215. package/authoring/doctypes/base/graph-fields.doc.mjs +6 -4
  216. package/authoring/doctypes/command/command.doc.mjs +20 -12
  217. package/authoring/doctypes/command/type.ts +14 -0
  218. package/authoring/doctypes/component/component.doc.mjs +29 -26
  219. package/authoring/doctypes/component/type.ts +15 -5
  220. package/authoring/doctypes/enum/enum.doc.mjs +7 -4
  221. package/authoring/doctypes/function/function.doc.mjs +9 -8
  222. package/authoring/doctypes/hook/hook.doc.mjs +5 -4
  223. package/authoring/doctypes/hook/type.ts +4 -0
  224. package/authoring/doctypes/namespace/namespace.doc.mjs +7 -6
  225. package/authoring/doctypes/reference/reference.doc.mjs +12 -11
  226. package/authoring/doctypes/schema/schema.doc.mjs +9 -9
  227. package/authoring/doctypes/template/template.doc.mjs +2 -2
  228. package/authoring/doctypes/theme/theme.doc.mjs +2 -2
  229. package/authoring/gap-report/gap-report.doc.mjs +2 -2
  230. package/authoring/identity/identity.doc.mjs +3 -3
  231. package/authoring/index.d.ts +1 -0
  232. package/authoring/integration/integration.doc.mjs +22 -5
  233. package/authoring/integration/parse.test.mjs +11 -0
  234. package/authoring/integration/schema.d.mts +14 -3
  235. package/authoring/integration/schema.mjs +33 -2
  236. package/authoring/integration/type.ts +8 -0
  237. package/clients/cli/bin/astryx.mjs +20 -3
  238. package/clients/cli/cli-command.test.mjs +166 -0
  239. package/clients/cli/commands/blog.doc.mjs +1 -0
  240. package/clients/cli/commands/build-theme.batch-report.test.mjs +14 -2
  241. package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
  242. package/clients/cli/commands/build-theme.mjs +25 -12
  243. package/clients/cli/commands/build.doc.mjs +1 -0
  244. package/clients/cli/commands/build.exit-codes-doc.test.mjs +4 -0
  245. package/clients/cli/commands/cli-postinstall.test.mjs +49 -1
  246. package/clients/cli/commands/component.doc.mjs +1 -0
  247. package/clients/cli/commands/discover.broken-integration.test.mjs +11 -7
  248. package/clients/cli/commands/discover.doc.mjs +9 -1
  249. package/clients/cli/commands/discover.mjs +144 -93
  250. package/clients/cli/commands/discover.no-source.test.mjs +448 -33
  251. package/clients/cli/commands/discover.sources.test.mjs +20 -1
  252. package/clients/cli/commands/docs.doc.mjs +1 -0
  253. package/clients/cli/commands/docs.mjs +49 -19
  254. package/clients/cli/commands/docs.test.mjs +2 -2
  255. package/clients/cli/commands/doctor-integration-components.doc.mjs +7 -3
  256. package/clients/cli/commands/doctor-integration-docs.doc.mjs +20 -5
  257. package/clients/cli/commands/doctor-integration-templates.doc.mjs +1 -0
  258. package/clients/cli/commands/doctor-integration-validate.doc.mjs +13 -2
  259. package/clients/cli/commands/doctor-integration.test.mjs +52 -4
  260. package/clients/cli/commands/doctor.doc.mjs +12 -2
  261. package/clients/cli/commands/doctor.mjs +102 -7
  262. package/clients/cli/commands/doctor.test.mjs +10 -4
  263. package/clients/cli/commands/gap-report.doc.mjs +15 -2
  264. package/clients/cli/commands/gap-report.mjs +24 -2
  265. package/clients/cli/commands/gap-report.test.mjs +79 -0
  266. package/clients/cli/commands/hook.doc.mjs +1 -0
  267. package/clients/cli/commands/init.behavior.test.mjs +5 -0
  268. package/clients/cli/commands/init.doc.mjs +29 -3
  269. package/clients/cli/commands/integration-add.doc.mjs +7 -0
  270. package/clients/cli/commands/integration-authoring.test.mjs +49 -3
  271. package/clients/cli/commands/integration-check.doc.mjs +10 -2
  272. package/clients/cli/commands/integration-check.test.mjs +175 -1
  273. package/clients/cli/commands/integration-pack.doc.mjs +8 -1
  274. package/clients/cli/commands/integration-verify.doc.mjs +8 -1
  275. package/clients/cli/commands/integration.mjs +15 -9
  276. package/clients/cli/commands/json-contract.test.mjs +11 -2
  277. package/clients/cli/commands/manifest.doc.mjs +1 -0
  278. package/clients/cli/commands/outside-project.test.mjs +774 -0
  279. package/clients/cli/commands/search.doc.mjs +1 -0
  280. package/clients/cli/commands/search.mjs +16 -11
  281. package/clients/cli/commands/search.test.mjs +429 -296
  282. package/clients/cli/commands/setup-nudge.test.mjs +102 -2
  283. package/clients/cli/commands/swizzle.doc.mjs +7 -0
  284. package/clients/cli/commands/swizzle.mjs +5 -3
  285. package/clients/cli/commands/swizzle.routing.test.mjs +19 -2
  286. package/clients/cli/commands/template.doc.mjs +1 -0
  287. package/clients/cli/commands/theme-add-lifecycle.test.mjs +3 -3
  288. package/clients/cli/commands/theme-add.doc.mjs +8 -1
  289. package/clients/cli/commands/theme-build.doc.mjs +1 -0
  290. package/clients/cli/commands/theme-eject.doc.mjs +1 -0
  291. package/clients/cli/commands/theme-list.behavior.test.mjs +6 -0
  292. package/clients/cli/commands/theme-list.doc.mjs +1 -0
  293. package/clients/cli/commands/theme-palette-generate.doc.mjs +1 -0
  294. package/clients/cli/commands/theme-remove.doc.mjs +7 -0
  295. package/clients/cli/commands/theme-targets.doc.mjs +1 -0
  296. package/clients/cli/commands/theme-template.doc.mjs +1 -0
  297. package/clients/cli/commands/theme-use.doc.mjs +7 -0
  298. package/clients/cli/commands/upgrade.config-ordering.test.mjs +2 -1
  299. package/clients/cli/commands/upgrade.doc.mjs +22 -1
  300. package/clients/cli/commands/upgrade.file-protection.test.mjs +3 -2
  301. package/clients/cli/commands/upgrade.hook-output.test.mjs +2 -1
  302. package/clients/cli/commands/upgrade.older-cli.test.mjs +160 -0
  303. package/clients/cli/index.mjs +111 -16
  304. package/clients/cli/lib/cli-error.mjs +4 -1
  305. package/clients/cli/lib/component-format.test.mjs +1 -1
  306. package/clients/cli/lib/define-command.mjs +2 -2
  307. package/clients/cli/lib/json-shim.mjs +3 -1
  308. package/clients/cli/lib/manifest.d.ts +9 -0
  309. package/clients/cli/lib/manifest.mjs +17 -1
  310. package/clients/cli/lib/manifest.test.mjs +25 -0
  311. package/foundation/agent-docs/agent-doc-state.d.mts +35 -6
  312. package/foundation/agent-docs/agent-doc-state.mjs +66 -6
  313. package/foundation/agent-docs/agent-docs.d.mts +4 -3
  314. package/foundation/agent-docs/agent-docs.mjs +11 -9
  315. package/foundation/agent-docs/computer-agent-text.d.mts +133 -0
  316. package/foundation/agent-docs/computer-agent-text.mjs +623 -0
  317. package/foundation/agent-docs/computer-agent-text.test.mjs +602 -0
  318. package/foundation/config/project.d.mts +35 -3
  319. package/foundation/config/project.mjs +145 -8
  320. package/foundation/config/project.test.mjs +66 -0
  321. package/foundation/config/theme-state.mjs +5 -4
  322. package/foundation/discovery/authoring-self-docs.mjs +1 -1
  323. package/foundation/discovery/cli-self-docs.mjs +20 -3
  324. package/foundation/discovery/cli-self-docs.test.mjs +3 -2
  325. package/foundation/discovery/component-replacement.mjs +2 -1
  326. package/foundation/discovery/copied-passages.d.mts +216 -0
  327. package/foundation/discovery/copied-passages.mjs +720 -0
  328. package/foundation/discovery/copied-passages.test.mjs +124 -0
  329. package/foundation/discovery/doc-consistency.d.mts +34 -0
  330. package/foundation/discovery/doc-consistency.mjs +513 -0
  331. package/foundation/discovery/doc-consistency.test.mjs +347 -0
  332. package/foundation/discovery/doc-fluff.d.mts +112 -0
  333. package/foundation/discovery/doc-fluff.mjs +328 -0
  334. package/foundation/discovery/doc-fluff.test.mjs +142 -0
  335. package/foundation/discovery/doc-types.d.mts +1 -1
  336. package/foundation/discovery/doc-types.mjs +15 -8
  337. package/foundation/discovery/doc-types.test.mjs +94 -2
  338. package/foundation/discovery/docs-discovery.d.mts +7 -0
  339. package/foundation/discovery/docs-discovery.mjs +26 -2
  340. package/foundation/discovery/project-typescript.d.mts +11 -2
  341. package/foundation/discovery/project-typescript.mjs +32 -4
  342. package/foundation/discovery/prop-drift.d.mts +26 -7
  343. package/foundation/discovery/prop-drift.mjs +173 -8
  344. package/foundation/discovery/prop-drift.test.mjs +120 -2
  345. package/foundation/discovery/runner-allowlist.d.mts +40 -0
  346. package/foundation/discovery/runner-allowlist.mjs +53 -0
  347. package/foundation/discovery/stray-pointers.d.mts +52 -0
  348. package/foundation/discovery/stray-pointers.mjs +293 -0
  349. package/foundation/discovery/stray-pointers.test.mjs +86 -0
  350. package/foundation/discovery/template-needs.mjs +5 -2
  351. package/foundation/discovery/theme-imports.mjs +8 -4
  352. package/foundation/discovery/theme-imports.test.mjs +1 -1
  353. package/foundation/discovery/type-text.mjs +1 -1
  354. package/foundation/discovery/type-text.test.mjs +1 -1
  355. package/foundation/doc-compiler/doc-loads.test.mjs +42 -2
  356. package/foundation/doc-compiler/inputs.mjs +4 -1
  357. package/foundation/doc-compiler/links.d.mts +32 -0
  358. package/foundation/doc-compiler/links.mjs +163 -26
  359. package/foundation/doc-compiler/links.test.mjs +97 -4
  360. package/foundation/doc-compiler/read.d.mts +1 -1
  361. package/foundation/doc-compiler/tree.mjs +30 -1
  362. package/foundation/doc-compiler/tree.test.mjs +8 -1
  363. package/foundation/env/cli-command.d.mts +83 -0
  364. package/foundation/env/cli-command.mjs +152 -0
  365. package/foundation/env/cli-command.test.mjs +129 -0
  366. package/foundation/env/node-version.test.mjs +15 -3
  367. package/foundation/env/package-manager.d.mts +93 -9
  368. package/foundation/env/package-manager.global.test.mjs +66 -0
  369. package/foundation/env/package-manager.mjs +184 -13
  370. package/foundation/env/package-manager.test.mjs +341 -15
  371. package/foundation/env/project-scope.d.mts +9 -0
  372. package/foundation/env/project-scope.mjs +33 -0
  373. package/foundation/env/search-path.d.mts +42 -0
  374. package/foundation/env/search-path.mjs +205 -0
  375. package/foundation/env/search-path.test.mjs +122 -0
  376. package/foundation/env/user-dirs.d.mts +39 -0
  377. package/foundation/env/user-dirs.mjs +93 -0
  378. package/foundation/env/user-dirs.test.mjs +72 -0
  379. package/foundation/env/user-settings.d.mts +46 -0
  380. package/foundation/env/user-settings.mjs +106 -0
  381. package/foundation/env/user-settings.test.mjs +64 -0
  382. package/foundation/fs/file-protection.mjs +15 -1
  383. package/foundation/fs/module-loader.d.mts +2 -1
  384. package/foundation/fs/module-loader.mjs +60 -4
  385. package/foundation/fs/module-loader.stdout.test.mjs +3 -2
  386. package/foundation/fs/module-loader.test.mjs +194 -0
  387. package/foundation/fs/path-compare.d.mts +33 -0
  388. package/foundation/fs/path-compare.mjs +73 -0
  389. package/foundation/fs/paths.d.mts +57 -1
  390. package/foundation/fs/paths.mjs +131 -3
  391. package/foundation/fs/paths.test.mjs +10 -1
  392. package/foundation/integrations/computer-integrations.d.mts +78 -0
  393. package/foundation/integrations/computer-integrations.mjs +316 -0
  394. package/foundation/integrations/computer-integrations.test.mjs +292 -0
  395. package/foundation/integrations/contribution-inventory.d.mts +11 -0
  396. package/foundation/integrations/contribution-inventory.mjs +50 -2
  397. package/foundation/integrations/integration-warnings.mjs +3 -2
  398. package/foundation/integrations/integration-warnings.test.mjs +8 -9
  399. package/foundation/integrations/integrations.d.mts +25 -1
  400. package/foundation/integrations/integrations.mjs +46 -3
  401. package/foundation/integrations/issue.ts +6 -0
  402. package/foundation/integrations/validate-contributions.d.mts +2 -0
  403. package/foundation/integrations/validate-contributions.mjs +41 -1
  404. package/foundation/release/agent-text-worker.d.mts +4 -0
  405. package/foundation/release/agent-text-worker.mjs +52 -0
  406. package/foundation/release/cache.d.mts +310 -0
  407. package/foundation/release/cache.mjs +1216 -0
  408. package/foundation/release/cache.test.mjs +920 -0
  409. package/foundation/release/choose.d.mts +207 -0
  410. package/foundation/release/choose.mjs +677 -0
  411. package/foundation/release/choose.test.mjs +427 -0
  412. package/foundation/release/core-worker.d.mts +4 -0
  413. package/foundation/release/core-worker.mjs +38 -0
  414. package/foundation/release/global-state.d.mts +259 -0
  415. package/foundation/release/global-state.mjs +472 -0
  416. package/foundation/release/global-state.test.mjs +381 -0
  417. package/foundation/release/handoff.d.mts +60 -0
  418. package/foundation/release/handoff.e2e.test.mjs +278 -0
  419. package/foundation/release/handoff.mjs +357 -0
  420. package/foundation/release/lock-lease.d.mts +23 -0
  421. package/foundation/release/lock-lease.mjs +80 -0
  422. package/foundation/release/notices.d.mts +253 -0
  423. package/foundation/release/notices.mjs +596 -0
  424. package/foundation/release/notices.test.mjs +565 -0
  425. package/foundation/release/npm-guard.d.mts +4 -0
  426. package/foundation/release/npm-guard.mjs +126 -0
  427. package/foundation/release/project.d.mts +141 -0
  428. package/foundation/release/project.mjs +466 -0
  429. package/foundation/release/project.test.mjs +288 -0
  430. package/foundation/release/refresh-worker.d.mts +4 -0
  431. package/foundation/release/refresh-worker.mjs +27 -0
  432. package/foundation/release/run-context.d.mts +47 -0
  433. package/foundation/release/run-context.mjs +149 -0
  434. package/foundation/release/update-notice-env.d.mts +28 -0
  435. package/foundation/release/update-notice-env.mjs +39 -0
  436. package/foundation/response/base.d.ts +26 -3
  437. package/foundation/response/error-codes.d.mts +3 -1
  438. package/foundation/response/error-codes.doc.mjs +12 -0
  439. package/foundation/response/error-codes.mjs +17 -0
  440. package/foundation/response/error-codes.test.mjs +2 -0
  441. package/foundation/response/json-contract.test.mjs +7 -2
  442. package/foundation/response/json.mjs +4 -1
  443. package/foundation/response/response-types.doc.mjs +17 -11
  444. package/foundation/response/response-types.doc.test.mjs +46 -0
  445. package/foundation/response/response.doc.mjs +3 -3
  446. package/foundation/xle/browser-imports.test.mjs +74 -0
  447. package/package.json +11 -11
  448. package/scripts/postinstall.mjs +24 -5
  449. /package/assets/codemods/transforms/{next → v0.7.2}/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +0 -0
  450. /package/assets/codemods/transforms/{next → v0.7.2}/migrate-list-edge-compensation-to-edge.mjs +0 -0
@@ -34,20 +34,22 @@ export const docs = {
34
34
  },
35
35
  {
36
36
  type: 'prose',
37
- text: 'An integration starts as a normal npm package. Make a folder for it, create a package.json inside that folder, give the package a name, then install the Astryx CLI and Core for development.',
37
+ text: 'An integration starts as a normal npm package. Make a folder for it, create a package.json inside that folder, give the package a name, make it an ES module, then install the Astryx CLI, Core, and TypeScript for development.',
38
38
  },
39
39
  {
40
40
  type: 'code',
41
41
  lang: 'bash',
42
- code: "mkdir acme-widgets && cd acme-widgets\nnpm init -y\nnpm pkg set name=@acme/astryx-widgets\nnpm pkg set 'exports={}' --json\nnpm install -D @astryxdesign/cli @astryxdesign/core",
42
+ code: "mkdir acme-widgets && cd acme-widgets\nnpm init -y\nnpm pkg set name=@acme/astryx-widgets type=module\nnpm pkg set 'exports={}' --json\nnpm install -D @astryxdesign/cli @astryxdesign/core typescript@6",
43
43
  },
44
44
  {
45
45
  type: 'list',
46
46
  style: 'unordered',
47
47
  items: [
48
+ 'Set `"type": "module"`: the `.js` files the CLI generates, such as a built theme, are ES modules, and Node fails to load them in a package marked `"type": "commonjs"`, which `npm init -y` writes on npm 11.',
48
49
  'Start with `"exports": {}`: each component and template you add then writes the public import that `integration verify` resolves.',
49
- 'Run the CLI as `npx astryx`, which runs the `@astryxdesign/cli` you installed as a devDependency.',
50
+ 'Run the CLI as `astryx`, which runs the `@astryxdesign/cli` you installed as a devDependency.',
50
51
  'Component commands read Core, so they need `@astryxdesign/core` installed.',
52
+ "The checks compare your docs with your code through TypeScript's JavaScript compiler API, which `typescript` 5.0 through 6 has. TypeScript 7 does not ship that API: on TypeScript 7, also install `@typescript/typescript6`, its TypeScript 6 API package, and the checks use it.",
51
53
  ],
52
54
  },
53
55
  {
@@ -62,7 +64,7 @@ export const docs = {
62
64
  {
63
65
  type: 'code',
64
66
  lang: 'bash',
65
- code: 'npx astryx integration add component AcmeCarousel',
67
+ code: 'astryx integration add component AcmeCarousel',
66
68
  },
67
69
  {
68
70
  type: 'code',
@@ -80,12 +82,39 @@ export const docs = {
80
82
  {
81
83
  type: 'code',
82
84
  lang: 'bash',
83
- code: 'npx astryx component AcmeCarousel',
85
+ code: 'astryx component AcmeCarousel',
84
86
  },
85
87
  {
86
88
  type: 'prose',
87
89
  text: 'You now have an integration package with one exported component.',
88
90
  },
91
+ {
92
+ type: 'heading',
93
+ level: 3,
94
+ text: 'Check it in every build (required)',
95
+ },
96
+ {
97
+ type: 'prose',
98
+ text: "Run `integration check --strict` in every build ({@link generic:checks}): a doc, prop, template, or link that drifts from the code then fails your build, not your users' apps. Set it up now, as the `typecheck` script, and run it.",
99
+ },
100
+ {
101
+ type: 'code',
102
+ lang: 'bash',
103
+ code: 'npm pkg set scripts.typecheck="astryx integration check --strict"\nnpm run typecheck',
104
+ },
105
+ {
106
+ type: 'code',
107
+ lang: 'text',
108
+ code: '[ok] 0 errors, 0 warnings, 0 skipped. Every check passed.',
109
+ },
110
+ {
111
+ type: 'list',
112
+ style: 'unordered',
113
+ items: [
114
+ 'Run `typecheck` in CI and before every publish. When you add a `tsconfig.json`, put `tsc --noEmit && ` in front of the check so the same script checks your types.',
115
+ 'What each check covers, and what `--strict` adds: {@link generic:checks}.',
116
+ ],
117
+ },
89
118
  {
90
119
  type: 'heading',
91
120
  level: 3,
@@ -98,7 +127,7 @@ export const docs = {
98
127
  {
99
128
  type: 'code',
100
129
  lang: 'bash',
101
- code: 'npx astryx integration verify\nnpm pack --pack-destination ..',
130
+ code: 'astryx integration verify\nnpm pack --pack-destination ..',
102
131
  },
103
132
  {
104
133
  type: 'code',
@@ -107,7 +136,7 @@ export const docs = {
107
136
  },
108
137
  {
109
138
  type: 'prose',
110
- text: '`integration verify` packs the package, unpacks it into a temporary app, and checks that the component resolves through its public import there. It publishes nothing and leaves no `.tgz` file, so `npm pack` writes `../acme-astryx-widgets-1.0.0.tgz` for the next step.',
139
+ text: '`integration verify` installs the packed package in a temporary app and confirms the component resolves through its public import there ({@link generic:checks}). It publishes nothing and leaves no `.tgz` file, so `npm pack` writes `../acme-astryx-widgets-1.0.0.tgz` for the next step.',
111
140
  },
112
141
  {
113
142
  type: 'heading',
@@ -121,7 +150,7 @@ export const docs = {
121
150
  {
122
151
  type: 'code',
123
152
  lang: 'bash',
124
- code: 'cd ..\nmkdir my-app && cd my-app\nnpm init -y\nnpm install @astryxdesign/core @astryxdesign/cli ../acme-astryx-widgets-1.0.0.tgz\nnpx astryx component AcmeCarousel',
153
+ code: 'cd ..\nmkdir my-app && cd my-app\nnpm init -y\nnpm install @astryxdesign/core @astryxdesign/cli ../acme-astryx-widgets-1.0.0.tgz\nastryx component AcmeCarousel',
125
154
  },
126
155
  {
127
156
  type: 'code',
@@ -172,13 +201,13 @@ export const docs = {
172
201
  ],
173
202
  [
174
203
  '`peerDependencies`',
175
- '`@astryxdesign/cli`; add `@astryxdesign/core` when your code imports it',
204
+ '`@astryxdesign/core` when your code imports it; `@astryxdesign/cli`, optional, when you ship a feature that needs a newer CLI ({@link generic:versioning})',
176
205
  'The app supplies these packages for your integration.',
177
206
  ],
178
207
  [
179
208
  '`devDependencies`',
180
- '`@astryxdesign/cli` and `@astryxdesign/core`',
181
- 'Lets you run the CLI and build components while working on the integration.',
209
+ '`@astryxdesign/cli`, `@astryxdesign/core`, and `typescript`',
210
+ 'Lets you run the CLI, build components, and run the checks while working on the integration.',
182
211
  ],
183
212
  ],
184
213
  },
@@ -226,21 +255,8 @@ export const docs = {
226
255
  text: 'The file tells the CLI where this package keeps its integration items. Edit it only when you want a custom root or another optional setting. Paths are relative to package.json, and later adds keep a custom path you already set.',
227
256
  },
228
257
  {
229
- type: 'reference',
230
- target: 'schema:integration',
231
- projection: {
232
- fields: [
233
- 'providerId',
234
- 'components',
235
- 'templates',
236
- 'codemods',
237
- 'docs',
238
- 'themes',
239
- 'agentDocs',
240
- 'issuesUrl',
241
- ],
242
- },
243
- presentation: 'full',
258
+ type: 'prose',
259
+ text: 'Every field is in {@link schema:integration}.',
244
260
  },
245
261
  {
246
262
  type: 'heading',
@@ -268,5 +284,15 @@ export const docs = {
268
284
  },
269
285
  ],
270
286
  },
287
+ {
288
+ id: 'global-mode',
289
+ title: 'In global mode',
290
+ content: [
291
+ {
292
+ type: 'prose',
293
+ text: 'In global mode: users can also install your package for their computer, beside the global CLI (`npm i -g @astryxdesign/cli your-package`). It then applies in folders outside any project, and inside a project only if the project installs it. See {@link namespace:global} and {@link generic:global-integrations}.',
294
+ },
295
+ ],
296
+ },
271
297
  ],
272
298
  };
@@ -0,0 +1,192 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file `astryx docs global/reference`: every folder, environment variable, JSON
5
+ * field, and error code of global mode, and a short glossary (spec AST-081).
6
+ */
7
+
8
+ /** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
9
+ export const docs = {
10
+ type: 'generic',
11
+ name: 'reference',
12
+ placement: {
13
+ parent: 'namespace:global',
14
+ slot: 'guides',
15
+ order: 11,
16
+ },
17
+ title: 'Global mode reference',
18
+ category: 'guide',
19
+ keywords: [
20
+ 'reference',
21
+ 'paths',
22
+ 'folders',
23
+ 'environment variables',
24
+ 'env vars',
25
+ 'XDG_CACHE_HOME',
26
+ 'XDG_CONFIG_HOME',
27
+ 'LOCALAPPDATA',
28
+ 'APPDATA',
29
+ 'meta.available',
30
+ 'error codes',
31
+ 'glossary',
32
+ 'state.json',
33
+ 'settings.json',
34
+ ],
35
+ description:
36
+ 'Every folder global mode uses on each system, the environment variables it reads, the JSON fields it adds, its error codes, and a short glossary.',
37
+ sections: [
38
+ {
39
+ id: 'paths',
40
+ title: 'Folders and files',
41
+ content: [
42
+ {
43
+ type: 'table',
44
+ headers: ['What', 'Linux', 'macOS', 'Windows'],
45
+ rows: [
46
+ [
47
+ 'Cache folder',
48
+ '`~/.cache/astryx` (or `$XDG_CACHE_HOME/astryx`)',
49
+ '`~/Library/Caches/astryx`',
50
+ '`%LOCALAPPDATA%\\astryx\\Cache`',
51
+ ],
52
+ [
53
+ 'Versions for projects',
54
+ '`<cache>/releases/<version>`',
55
+ '`<cache>/releases/<version>`',
56
+ '`<cache>\\releases\\<version>`',
57
+ ],
58
+ [
59
+ 'Settings folder',
60
+ '`~/.config/astryx` (or `$XDG_CONFIG_HOME/astryx`)',
61
+ '`~/Library/Application Support/astryx`',
62
+ '`%APPDATA%\\astryx`',
63
+ ],
64
+ [
65
+ 'Update checks and notices, and why the last notice or check did not happen (for `astryx doctor` only)',
66
+ '`<settings>/state.json`',
67
+ '`<settings>/state.json`',
68
+ '`<settings>\\state.json`',
69
+ ],
70
+ [
71
+ 'Agent guide setting, and the links Astryx made',
72
+ '`<settings>/settings.json`',
73
+ '`<settings>/settings.json`',
74
+ '`<settings>\\settings.json`',
75
+ ],
76
+ [
77
+ 'Agent guide',
78
+ '`~/.agents/skills/astryx/SKILL.md`, linked from `~/.claude/skills/astryx` and others',
79
+ 'the same',
80
+ 'the same, under `%USERPROFILE%`',
81
+ ],
82
+ ],
83
+ },
84
+ {
85
+ type: 'prose',
86
+ text: 'Every folder the agent guide is linked into: {@link generic:computer-agent-guide}.',
87
+ },
88
+ ],
89
+ },
90
+ {
91
+ id: 'env',
92
+ title: 'Environment variables',
93
+ content: [
94
+ {
95
+ type: 'table',
96
+ headers: ['Variable', 'Effect'],
97
+ rows: [
98
+ [
99
+ '`CI`',
100
+ 'Set to anything but empty, `0`, or `false`: no update check and no notice.',
101
+ ],
102
+ [
103
+ '`NO_UPDATE_NOTIFIER`',
104
+ 'Set to anything: no update check and no notice.',
105
+ ],
106
+ [
107
+ '`XDG_CACHE_HOME`, `XDG_CONFIG_HOME`',
108
+ 'On Linux, move the cache and settings folders; used only when absolute.',
109
+ ],
110
+ [
111
+ '`LOCALAPPDATA`, `APPDATA`',
112
+ 'On Windows, the cache and settings folders; used only when absolute.',
113
+ ],
114
+ ],
115
+ },
116
+ {
117
+ type: 'prose',
118
+ text: "Astryx reads no environment variable of its own. npm's own settings, such as its registry and proxy, apply to the versions it installs for projects.",
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ id: 'json',
124
+ title: 'JSON fields',
125
+ content: [
126
+ {
127
+ type: 'list',
128
+ style: 'unordered',
129
+ items: [
130
+ "`meta.answeredBy` on every successful `--json` result: `cli` (the version that answered), `core` (the Core it used, or `null`), and `copy`: `project` (the project's own CLI), `starting` (the astryx command you started, in a project with no CLI of its own), `matched` (the CLI version equal to the project's Core, when the project's own CLI cannot start), `carried` (outside a project), or `fallback` (that version could not be obtained, so the astryx command you started answered instead).",
131
+ '`meta.available` entries from `astryx discover` with `source: "installed for this computer"`: an integration installed next to your global install that the project could add, with its install command in `install`.',
132
+ ],
133
+ },
134
+ ],
135
+ },
136
+ {
137
+ id: 'errors',
138
+ title: 'Error codes',
139
+ content: [
140
+ {
141
+ type: 'list',
142
+ style: 'unordered',
143
+ items: [
144
+ '`ERR_VERSIONS_UNAVAILABLE`: nothing can answer, such as a command that needs Core outside a project that cannot install it. When only the matching version is missing, the run answers anyway, with a warning. {@link generic:problems}',
145
+ '`ERR_PROJECT_REQUIRED`: a command that only works in a project ran outside one. Commands released before global mode keep the codes they already used: `theme use`, `theme remove`, and `theme add <slug>` use `ERR_THEME_INVALID`, `integration add` uses `ERR_FILE_NOT_FOUND`, `swizzle` uses `ERR_CORE_NOT_FOUND`, and `upgrade` uses `ERR_VERSION_DETECT`.',
146
+ ],
147
+ },
148
+ ],
149
+ },
150
+ {
151
+ id: 'changes',
152
+ title: 'What changes in global mode',
153
+ content: [
154
+ {
155
+ type: 'list',
156
+ style: 'unordered',
157
+ items: [
158
+ "Which version answers: in a project, the project's own CLI (with only Core, the astryx command you started); outside one, your global version. {@link generic:who-answers}",
159
+ 'Commands that change a project write nothing outside one; `doctor`, `init`, and `theme add` do something else there. {@link namespace:commands}',
160
+ 'Integrations installed globally work only outside projects. {@link generic:computer-integrations}',
161
+ 'The programmatic API runs in your process with the package you import and never hands off to another version; with `cwd` outside a project, its functions answer as the commands do there. {@link namespace:api}',
162
+ ],
163
+ },
164
+ ],
165
+ },
166
+ {
167
+ id: 'glossary',
168
+ title: 'Glossary',
169
+ content: [
170
+ {
171
+ type: 'list',
172
+ style: 'unordered',
173
+ items: [
174
+ '**Global install**: the CLI installed for your computer with `npm i -g` or another package manager.',
175
+ "**The project's version**: the project's own CLI; it answers every command in that project. A project with only Core has none, so the astryx command you started answers.",
176
+ '**Cache**: the folder where Astryx keeps versions projects need but do not install.',
177
+ ],
178
+ },
179
+ ],
180
+ },
181
+ {
182
+ id: 'more',
183
+ title: 'More on global mode',
184
+ content: [
185
+ {
186
+ type: 'prose',
187
+ text: 'This page is part of {@link namespace:global}, which explains what global mode is and how each part works.',
188
+ },
189
+ ],
190
+ },
191
+ ],
192
+ };
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
3
  /**
4
- * @file `astryx docs cli/integrations/components/replace-a-core-component`:
4
+ * @file `astryx docs cli/integrations/building-blocks/components/replace-a-core-component`:
5
5
  * intentionally make an integration component the default for a Core identity.
6
6
  */
7
7
 
@@ -65,10 +65,8 @@ export default {
65
65
  };`,
66
66
  },
67
67
  {
68
- type: 'reference',
69
- target: 'schema:component-doc',
70
- projection: {fields: ['replaces']},
71
- presentation: 'full',
68
+ type: 'prose',
69
+ text: 'Every field is in {@link schema:component-doc}.',
72
70
  },
73
71
  {
74
72
  type: 'prose',
@@ -87,7 +85,7 @@ export default {
87
85
  type: 'list',
88
86
  style: 'unordered',
89
87
  items: [
90
- 'Any `@astryxdesign/cli` range that starts at that release or later turns it on, including the `>=0.7.0` that earlier `integration add theme` and `integration add doc --parent` wrote.',
88
+ 'Any `@astryxdesign/cli` range that starts at that release or later turns it on, including the `>=0.7.0` that `integration add doc --parent` wrote in published 0.6.4 and 0.6.5, and `integration add theme` in published 0.6.5.',
91
89
  'Without such a range, the component keeps its own name, the Core component stays selected (a component named like its target stays ambiguous by that bare name, as before), and `doctor integration components` warns with the range to add. Apps that load such a package see no change.',
92
90
  '`replaces` names the Core `ComponentDoc` identity, not its display label, import path, or a standalone hook.',
93
91
  'Your component may keep a distinct name or use the same name as the target. A distinct name remains directly addressable on older CLIs that ignore `replaces`.',
@@ -105,7 +103,7 @@ export default {
105
103
  {
106
104
  type: 'code',
107
105
  lang: 'bash',
108
- code: 'npx astryx doctor integration components\nnpx astryx component SideNav\nnpx astryx component AcmeSideNav\nnpx astryx component SideNav --package @astryxdesign/core',
106
+ code: 'astryx doctor integration components\nastryx component SideNav\nastryx component AcmeSideNav\nastryx component SideNav --package @astryxdesign/core',
109
107
  },
110
108
  {
111
109
  type: 'list',
@@ -117,5 +115,15 @@ export default {
117
115
  },
118
116
  ],
119
117
  },
118
+ {
119
+ id: 'global-mode',
120
+ title: 'In global mode',
121
+ content: [
122
+ {
123
+ type: 'prose',
124
+ text: 'In global mode: a replacement from a package installed for the computer applies in folders outside any project; inside a project, only replacements from packages the project installs apply. See {@link namespace:global} and {@link generic:global-integrations}.',
125
+ },
126
+ ],
127
+ },
120
128
  ],
121
129
  };
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
3
  /**
4
- * @file `astryx docs cli/integrations/templates/document-the-template/replace-a-core-template`:
4
+ * @file `astryx docs cli/integrations/building-blocks/templates/document-the-template/replace-a-core-template`:
5
5
  * deliberately replace one Core template through template metadata.
6
6
  */
7
7
 
@@ -48,7 +48,7 @@ export const docs = {
48
48
  {
49
49
  type: 'code',
50
50
  lang: 'bash',
51
- code: 'npx astryx --json template --list --package @astryxdesign/core',
51
+ code: 'astryx --json template --list --package @astryxdesign/core',
52
52
  },
53
53
  {
54
54
  type: 'code',
@@ -67,10 +67,8 @@ export default {
67
67
  };`,
68
68
  },
69
69
  {
70
- type: 'reference',
71
- target: 'schema:template-doc',
72
- projection: {fields: ['replaces']},
73
- presentation: 'full',
70
+ type: 'prose',
71
+ text: 'Every field is in {@link schema:template-doc}.',
74
72
  },
75
73
  {
76
74
  type: 'prose',
@@ -84,7 +82,7 @@ export default {
84
82
  content: [
85
83
  {
86
84
  type: 'prose',
87
- text: 'Declare the CLI floor from the field above as an optional peer ({@link generic:versioning}).',
85
+ text: 'Declare the CLI floor that `integration verify` names as an optional peer ({@link generic:versioning}).',
88
86
  },
89
87
  {
90
88
  type: 'code',
@@ -103,7 +101,7 @@ export default {
103
101
  },
104
102
  {
105
103
  type: 'prose',
106
- text: '`integration verify` reports `replaces_needs_cli` when that peer is missing or too old. Without it, an older CLI drops that template and hides your doc topics.',
104
+ text: '`integration verify` reports `replaces_needs_cli` when that peer is missing or too old. Without it, published 0.6.3 and earlier drop that template and hide your doc topics.',
107
105
  },
108
106
  ],
109
107
  },
@@ -115,10 +113,10 @@ export default {
115
113
  type: 'code',
116
114
  lang: 'bash',
117
115
  code: `# Receives the active replacement
118
- npx astryx template shell-side-nav src/app
116
+ astryx template shell-side-nav src/app
119
117
 
120
118
  # Receives the original Core template
121
- npx astryx template shell-side-nav --package @astryxdesign/core src/app`,
119
+ astryx template shell-side-nav --package @astryxdesign/core src/app`,
122
120
  },
123
121
  {
124
122
  type: 'prose',
@@ -142,7 +140,7 @@ npx astryx template shell-side-nav --package @astryxdesign/core src/app`,
142
140
  {
143
141
  type: 'code',
144
142
  lang: 'bash',
145
- code: 'npx astryx doctor integration templates',
143
+ code: 'astryx doctor integration templates',
146
144
  },
147
145
  {
148
146
  type: 'table',
@@ -132,7 +132,7 @@ export const docs = {
132
132
  },
133
133
  {
134
134
  type: 'prose',
135
- text: 'Verify: you can state the reason in one sentence, and the choice still holds if the nav doubles in size. `npx astryx build "<idea>"` names the template to start from; scaffold it and the pairing is already wired up.',
135
+ text: 'Verify: you can state the reason in one sentence, and the choice still holds if the nav doubles in size. `astryx build "<idea>"` names the template to start from; scaffold it and the pairing is already wired up.',
136
136
  },
137
137
  ],
138
138
  },
@@ -1,9 +1,9 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
3
  /**
4
- * @file `astryx docs cli/integrations/docs/sections-and-placement`: give an
5
- * integration package its own section in the docs tree, place guides in it,
6
- * and fix a placement that fails.
4
+ * @file `astryx docs cli/integrations/building-blocks/docs/sections-and-placement`:
5
+ * give an integration package its own section in the docs tree, place guides
6
+ * in it, and fix a placement that fails.
7
7
  */
8
8
 
9
9
  /** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
@@ -26,7 +26,7 @@ export const docs = {
26
26
  {
27
27
  type: 'code',
28
28
  lang: 'bash',
29
- code: 'npx astryx integration add doc deploying --parent acme\n# Open your section\nnpx astryx docs acme',
29
+ code: 'astryx integration add doc deploying --parent acme\n# Open your section\nastryx docs acme',
30
30
  },
31
31
  {
32
32
  type: 'code',
@@ -62,16 +62,14 @@ export const docs = {
62
62
  type: 'list',
63
63
  style: 'unordered',
64
64
  items: [
65
- "`parent` is `namespace:<name>`, a namespace that your own package ships. You cannot place a doc in the CLI's sections or in another package's.",
66
- "`slot` is a slot that the namespace declares for the doc's kind. You can leave it out when the namespace has only one slot.",
67
- '`order` is an integer that sorts the guides in the slot and sets their Previous and Next moves. Guides without one come last, by name.',
65
+ 'Every field is in {@link schema:authored-doc-graph-fields}.',
68
66
  'A placed guide opens only by its route, `acme/deploying`. Its bare name no longer opens it.',
69
67
  ],
70
68
  },
71
69
  {
72
70
  type: 'code',
73
71
  lang: 'bash',
74
- code: 'npx astryx docs acme/deploying',
72
+ code: 'astryx docs acme/deploying',
75
73
  },
76
74
  ],
77
75
  },
@@ -86,7 +84,7 @@ export const docs = {
86
84
  {
87
85
  type: 'code',
88
86
  lang: 'bash',
89
- code: 'npx astryx doctor integration docs',
87
+ code: 'astryx doctor integration docs',
90
88
  },
91
89
  {
92
90
  type: 'code',
@@ -97,8 +95,8 @@ export const docs = {
97
95
  type: 'list',
98
96
  style: 'unordered',
99
97
  items: [
100
- 'A `parent` that your package does not ship, such as `namespace:cli`, "names no namespace".',
101
- 'A `slot` that the namespace does not declare "is not a slot of namespace"; the message lists the slots it does declare.',
98
+ 'A `parent` your package does not ship, such as `namespace:cli`, "names no namespace".',
99
+ 'A `slot` the namespace does not declare "is not a slot of namespace"; the message lists the declared slots.',
102
100
  'The check exits 1; see {@link generic:check-your-docs}.',
103
101
  ],
104
102
  },
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
3
  /**
4
- * @file `astryx docs cli/integrations/components/see-it-in-an-app`: inspect an
4
+ * @file `astryx docs cli/integrations/building-blocks/components/see-it-in-an-app`: inspect an
5
5
  * integration component from an app that installs the package.
6
6
  */
7
7
 
@@ -26,14 +26,16 @@ export const docs = {
26
26
  {
27
27
  type: 'code',
28
28
  lang: 'bash',
29
- code: `npx astryx component AcmeCarousel
30
- npx astryx component --list
31
- npx astryx search carousel`,
29
+ code: `astryx component AcmeCarousel
30
+ astryx component --list
31
+ astryx search carousel`,
32
32
  },
33
33
  {
34
34
  type: 'code',
35
35
  lang: 'text',
36
- code: `# AcmeCarousel
36
+ code: `package: @acme/astryx-widgets
37
+
38
+ # AcmeCarousel
37
39
 
38
40
  Cycles through slides one at a time. Use it for a small set of related cards.
39
41
 
@@ -55,5 +57,15 @@ Cycles through slides one at a time. Use it for a small set of related cards.
55
57
  },
56
58
  ],
57
59
  },
60
+ {
61
+ id: 'global-mode',
62
+ title: 'In global mode',
63
+ content: [
64
+ {
65
+ type: 'prose',
66
+ text: 'In global mode: to check your package in an app, install it in that app; a copy installed for your computer is not used inside a project. To check it outside projects, install it for your computer beside the CLI. See {@link namespace:global} and {@link generic:global-integrations}.',
67
+ },
68
+ ],
69
+ },
58
70
  ],
59
71
  };
@@ -1,8 +1,9 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
3
  /**
4
- * @file `astryx docs cli/integrations/docs/short-and-findable`: keep each read
5
- * short, lead each section with its summary, and write docs that search finds.
4
+ * @file `astryx docs cli/integrations/building-blocks/docs/short-and-findable`:
5
+ * keep each read short, lead each section with its summary, and write docs
6
+ * that search finds.
6
7
  */
7
8
 
8
9
  /** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
@@ -20,7 +21,7 @@ export const docs = {
20
21
  content: [
21
22
  {
22
23
  type: 'prose',
23
- text: 'Readers open one section at a time, so give each section one idea and keep it to about 30 lines. `npx astryx doctor` warns on any read over 32 KB.',
24
+ text: 'Readers open one section at a time, so give each section one idea and keep it to about 30 lines. `astryx doctor` warns on any read over 32 KB.',
24
25
  },
25
26
  {
26
27
  type: 'list',
@@ -34,7 +35,7 @@ export const docs = {
34
35
  {
35
36
  type: 'code',
36
37
  lang: 'bash',
37
- code: '# The section list\nnpx astryx docs acme/deploying\n# One section\nnpx astryx docs acme/deploying check-before-you-ship\n# Everything\nnpx astryx docs acme/deploying --full',
38
+ code: '# The section list\nastryx docs acme/deploying\n# One section\nastryx docs acme/deploying check-before-you-ship\n# Everything\nastryx docs acme/deploying --full',
38
39
  },
39
40
  ],
40
41
  },
@@ -58,7 +59,7 @@ export const docs = {
58
59
  {
59
60
  type: 'code',
60
61
  lang: 'text',
61
- code: 'build-before-you-ship Build before you ship - Build the app, then upload the `dist` folder to your host.',
62
+ code: 'build-before-you-ship Build before you ship - Build the app, then upload the `dist` folder.',
62
63
  },
63
64
  ],
64
65
  },
@@ -68,14 +69,14 @@ export const docs = {
68
69
  content: [
69
70
  {
70
71
  type: 'prose',
71
- text: 'Search ranks a query that matches a whole title, or an identifier in backticks, above words in body text. Title each section with the task a reader searches for.',
72
+ text: 'In a topic with more than one section, search ranks a section whose title matches the query, or that names it in backticks, above words in body text. Title each section with the task a reader searches for.',
72
73
  },
73
74
  {
74
75
  type: 'list',
75
76
  style: 'unordered',
76
77
  items: [
77
78
  'Name the task in the words a reader types, such as "Deploy to production". Avoid titles such as "Overview" or "Details".',
78
- 'Write field names, file names, and error codes in backticks, such as `deployTarget`: search treats each one as a keyword.',
79
+ 'Write field names, file names, and error codes in backticks, such as `deployTarget`: in a topic with more than one section, search treats each one as a keyword.',
79
80
  'Other words in the summary and body match too, but rank below titles and identifiers. The summary shows under each hit, so make it answer the query.',
80
81
  ],
81
82
  },
@@ -92,7 +93,7 @@ export const docs = {
92
93
  {
93
94
  type: 'code',
94
95
  lang: 'bash',
95
- code: 'npx astryx search "place a doc" --type doc',
96
+ code: 'astryx search "place a doc" --type doc',
96
97
  },
97
98
  {
98
99
  type: 'list',