@astryxdesign/cli 0.7.2-canary.fe2c655 → 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.
- package/CHANGELOG.md +119 -0
- package/README.md +175 -154
- package/api/build/_adapter.d.mts +8 -0
- package/api/build/_adapter.mjs +12 -1
- package/api/build/build.doc.mjs +4 -0
- package/api/build/help/help.mjs +1 -1
- package/api/build/kit/kit.mjs +3 -11
- package/api/component/_adapter.d.mts +72 -1
- package/api/component/_adapter.mjs +212 -18
- package/api/component/component.doc.mjs +6 -1
- package/api/component/component.mjs +82 -15
- package/api/component/component.test.mjs +80 -0
- package/api/component/doc-links.test.mjs +386 -0
- package/api/component/integration-export-name.test.mjs +644 -0
- package/api/component/list/list.mjs +42 -4
- package/api/discover/_adapter.d.mts +132 -12
- package/api/discover/_adapter.mjs +488 -27
- package/api/discover/_adapter.test.mjs +599 -17
- package/api/discover/_catalog-view.d.mts +16 -5
- package/api/discover/_catalog-view.mjs +32 -8
- package/api/discover/detail/doc/doc.mjs +9 -1
- package/api/discover/discover.d.mts +11 -0
- package/api/discover/discover.doc.mjs +9 -7
- package/api/discover/discover.mjs +121 -19
- package/api/discover/discover.type.d.mts +20 -7
- package/api/discover/discover.type.mjs +17 -7
- package/api/discover/list/list.d.mts +4 -3
- package/api/discover/list/list.mjs +17 -10
- package/api/docs/_adapter.d.mts +74 -0
- package/api/docs/_adapter.mjs +553 -16
- package/api/docs/docs.doc.mjs +2 -1
- package/api/docs/docs.mjs +2 -1
- package/api/docs/docs.test.mjs +5 -2
- package/api/docs/integration-tree.test.mjs +22 -0
- package/api/docs/integrationDocs.test.mjs +124 -0
- package/api/docs/list/list.mjs +12 -2
- package/api/docs/reference-blocks.test.mjs +1 -3
- package/api/doctor/_adapter.d.mts +108 -0
- package/api/doctor/_adapter.mjs +223 -4
- package/api/doctor/doctor.d.mts +199 -0
- package/api/doctor/doctor.doc.mjs +3 -2
- package/api/doctor/doctor.mjs +530 -34
- package/api/doctor/doctor.test.mjs +180 -14
- package/api/doctor/release-checks.test.mjs +156 -0
- package/api/doctor/theme-checks.mjs +17 -4
- package/api/doctor/theme-checks.test.mjs +223 -7
- package/api/error.d.mts +10 -0
- package/api/error.mjs +25 -0
- package/api/gap-report/gap-report.d.mts +3 -0
- package/api/gap-report/gap-report.doc.mjs +11 -3
- package/api/gap-report/gap-report.mjs +219 -52
- package/api/gap-report/gap-report.test.mjs +233 -0
- package/api/gap-report/gap-report.type.d.mts +41 -0
- package/api/gap-report/gap-report.type.mjs +18 -0
- package/api/hook/_adapter.mjs +3 -11
- package/api/hook/hook.doc.mjs +4 -0
- package/api/hook/list/list.d.mts +1 -1
- package/api/index.d.mts +2 -0
- package/api/index.mjs +2 -0
- package/api/init/_adapter.d.mts +22 -0
- package/api/init/_adapter.mjs +59 -0
- package/api/init/init.d.mts +7 -5
- package/api/init/init.doc.mjs +28 -7
- package/api/init/init.mjs +28 -4
- package/api/init/init.type.d.mts +48 -3
- package/api/init/init.type.mjs +37 -3
- package/api/init/run/run.d.mts +1 -1
- package/api/init/run/run.mjs +17 -6
- package/api/init/user/user.d.mts +14 -0
- package/api/init/user/user.mjs +87 -0
- package/api/init/user/user.test.mjs +232 -0
- package/api/integration/_adapter.d.mts +45 -0
- package/api/integration/_adapter.mjs +112 -0
- package/api/integration/add-contribution.component-names.test.mjs +66 -0
- package/api/integration/add-contribution.mjs +8 -4
- package/api/integration/add-contribution.test.mjs +4 -2
- package/api/integration/authoring-checks.mjs +110 -6
- package/api/integration/authoring-checks.test.mjs +808 -0
- package/api/integration/authoring-checks.type.d.mts +143 -0
- package/api/integration/authoring-checks.type.mjs +74 -2
- package/api/integration/check/check.d.mts +96 -0
- package/api/integration/check/check.mjs +357 -0
- package/api/integration/check/check.test.mjs +489 -0
- package/api/integration/integration-check.type.d.mts +118 -0
- package/api/integration/integration-check.type.mjs +84 -0
- package/api/integration/integrationCheck.doc.d.mts +10 -0
- package/api/integration/integrationCheck.doc.mjs +73 -0
- package/api/integration/integrationComponentConflicts.doc.mjs +45 -6
- package/api/integration/integrationDocConflicts.doc.mjs +22 -5
- package/api/integration/pack-check.mjs +364 -120
- package/api/integration/pack-check.test.mjs +730 -10
- package/api/integration/validate-integration-fixes.test.mjs +67 -0
- package/api/integration/validate-integration.d.mts +8 -0
- package/api/integration/validate-integration.mjs +63 -9
- package/api/integration/validate-integration.test.mjs +88 -8
- package/api/integration/validate-integration.type.d.mts +16 -0
- package/api/integration/validate-integration.type.mjs +14 -1
- package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
- package/api/integration/validateIntegration.doc.mjs +19 -3
- package/api/search/_adapter.d.mts +11 -0
- package/api/search/_adapter.mjs +25 -0
- package/api/search/search.d.mts +82 -13
- package/api/search/search.doc.mjs +8 -3
- package/api/search/search.domain-priority.test.mjs +108 -18
- package/api/search/search.integration-check.test.mjs +24 -0
- package/api/search/search.mjs +645 -64
- package/api/search/search.test.mjs +179 -1
- package/api/search/search.type.d.mts +14 -1
- package/api/search/search.type.mjs +6 -1
- package/api/swizzle/_adapter.mjs +2 -2
- package/api/swizzle/copy/copy.mjs +29 -15
- package/api/template/template-integration.test.mjs +1 -1
- package/api/template/template.test.mjs +120 -3
- package/api/theme/_adapter.d.mts +16 -0
- package/api/theme/_adapter.mjs +32 -5
- package/api/theme/build/build.d.mts +2 -1
- package/api/theme/build/build.family.test.mjs +64 -0
- package/api/theme/build/build.mjs +250 -38
- package/api/theme/build/build.packed-old-core.test.mjs +20 -3
- package/api/theme/build/font-warning.mjs +5 -3
- package/api/theme/build/font-warning.test.mjs +2 -1
- package/api/theme/remove/remove.test.mjs +2 -2
- package/api/theme/targets/targets.mjs +3 -10
- package/api/theme/themeBuild.doc.mjs +4 -4
- package/api/theme/themeTargets.doc.mjs +4 -0
- package/api/theme/use/use.test.mjs +1 -1
- package/api/upgrade/_adapter.d.mts +40 -2
- package/api/upgrade/_adapter.mjs +118 -5
- package/api/upgrade/run/cli-behind-core.test.mjs +438 -0
- package/api/upgrade/run/run.mjs +35 -2
- package/api/upgrade/status/status.d.mts +21 -5
- package/api/upgrade/status/status.mjs +45 -8
- package/api/upgrade/upgrade.doc.mjs +6 -3
- package/api/upgrade/upgrade.mjs +5 -1
- package/api/upgrade/upgrade.type.d.mts +23 -0
- package/api/upgrade/upgrade.type.mjs +16 -1
- package/assets/codemods/__tests__/registry.test.mjs +1 -0
- package/assets/codemods/registry.mjs +1 -0
- package/assets/codemods/runner.mjs +7 -1
- package/assets/codemods/transforms/v0.7.2/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +120 -0
- package/assets/codemods/transforms/v0.7.2/index.mjs +20 -0
- package/assets/codemods/transforms/v0.7.2/migrate-list-edge-compensation-to-edge.mjs +198 -0
- package/assets/discover/official-packages.json +367 -0
- package/assets/docs/README.md +10 -0
- package/assets/docs/author-a-theme.doc.mjs +3 -3
- package/assets/docs/browser-support.doc.mjs +1 -1
- package/assets/docs/getting-started.doc.mjs +26 -6
- package/assets/docs/styling-overview.doc.mjs +1 -1
- package/assets/docs/theme.doc.dense.mjs +1 -1
- package/assets/docs/theme.doc.mjs +2 -2
- package/assets/docs/theme.doc.zh.mjs +1 -1
- package/assets/docs/tree/add-a-component.doc.mjs +22 -2
- package/assets/docs/tree/add-a-theme.doc.mjs +13 -3
- package/assets/docs/tree/add-a-topic.doc.mjs +54 -9
- package/assets/docs/tree/agent-guidance.doc.mjs +19 -5
- package/assets/docs/tree/block-template.doc.mjs +8 -20
- package/assets/docs/tree/build-the-template.doc.mjs +1 -1
- package/assets/docs/tree/building-blocks.doc.mjs +4 -0
- package/assets/docs/tree/check-the-props.doc.mjs +201 -0
- package/assets/docs/tree/check-your-docs.doc.mjs +69 -11
- package/assets/docs/tree/checks.doc.mjs +32 -24
- package/assets/docs/tree/ci-and-containers.doc.mjs +88 -0
- package/assets/docs/tree/cli-command.doc.mjs +142 -0
- package/assets/docs/tree/cli.doc.mjs +6 -0
- package/assets/docs/tree/codemods.doc.mjs +17 -7
- package/assets/docs/tree/commands.doc.mjs +7 -1
- package/assets/docs/tree/component-family.doc.mjs +8 -6
- package/assets/docs/tree/component-imports.doc.mjs +21 -3
- package/assets/docs/tree/components.doc.mjs +7 -1
- package/assets/docs/tree/computer-agent-guide.doc.mjs +160 -0
- package/assets/docs/tree/computer-integrations.doc.mjs +93 -0
- package/assets/docs/tree/configuration.doc.mjs +7 -3
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +41 -22
- package/assets/docs/tree/define-the-theme.doc.mjs +6 -5
- package/assets/docs/tree/describe-the-component.doc.mjs +3 -3
- package/assets/docs/tree/docs.doc.mjs +9 -3
- package/assets/docs/tree/document-the-template.doc.mjs +1 -1
- package/assets/docs/tree/document-the-theme.doc.mjs +3 -3
- package/assets/docs/tree/export-template-assets.doc.mjs +1 -1
- package/assets/docs/tree/extend-or-replace.doc.mjs +19 -9
- package/assets/docs/tree/fonts-and-assets.doc.mjs +2 -2
- package/assets/docs/tree/generate-a-palette.doc.mjs +7 -5
- package/assets/docs/tree/global-integrations.doc.mjs +124 -0
- package/assets/docs/tree/global.doc.mjs +131 -0
- package/assets/docs/tree/grade-template-with-agent.doc.mjs +5 -5
- package/assets/docs/tree/install-once.doc.mjs +105 -0
- package/assets/docs/tree/integrations.doc.mjs +13 -1
- package/assets/docs/tree/layout-spacing.doc.mjs +2 -3
- package/assets/docs/tree/layout.doc.mjs +6 -6
- package/assets/docs/tree/links.doc.mjs +7 -6
- package/assets/docs/tree/migration-setup.doc.mjs +3 -2
- package/assets/docs/tree/migration-verification.doc.mjs +0 -1
- package/assets/docs/tree/migration.doc.mjs +0 -1
- package/assets/docs/tree/monorepos.doc.mjs +84 -0
- package/assets/docs/tree/package-and-test.doc.mjs +1 -1
- package/assets/docs/tree/page-template.doc.mjs +4 -8
- package/assets/docs/tree/problems.doc.mjs +205 -0
- package/assets/docs/tree/project-global-or-both.doc.mjs +131 -0
- package/assets/docs/tree/publishing.doc.mjs +6 -6
- package/assets/docs/tree/quick-start.doc.mjs +53 -27
- package/assets/docs/tree/reference.doc.mjs +192 -0
- package/assets/docs/tree/replace-a-core-component.doc.mjs +15 -7
- package/assets/docs/tree/replace-a-core-template.doc.mjs +10 -12
- package/assets/docs/tree/scaffold.doc.mjs +1 -1
- package/assets/docs/tree/sections-and-placement.doc.mjs +9 -11
- package/assets/docs/tree/see-it-in-an-app.doc.mjs +17 -5
- package/assets/docs/tree/short-and-findable.doc.mjs +9 -8
- package/assets/docs/tree/single-component.doc.mjs +15 -6
- package/assets/docs/tree/start-a-template.doc.mjs +18 -8
- package/assets/docs/tree/subcomponent.doc.mjs +6 -6
- package/assets/docs/tree/template-assets.doc.mjs +2 -2
- package/assets/docs/tree/template-doc-overview.doc.mjs +6 -17
- package/assets/docs/tree/template-fonts.doc.mjs +1 -1
- package/assets/docs/tree/template-icons.doc.mjs +1 -1
- package/assets/docs/tree/template-images-media.doc.mjs +1 -1
- package/assets/docs/tree/template-styles.doc.mjs +2 -2
- package/assets/docs/tree/templates.doc.mjs +7 -1
- package/assets/docs/tree/test-in-an-app.doc.mjs +7 -7
- package/assets/docs/tree/test-template-in-app.doc.mjs +5 -5
- package/assets/docs/tree/themes.doc.mjs +4 -0
- package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
- package/assets/docs/tree/troubleshooting.doc.mjs +29 -13
- package/assets/docs/tree/type-scale.doc.mjs +3 -3
- package/assets/docs/tree/uninstall.doc.mjs +109 -0
- package/assets/docs/tree/updates.doc.mjs +92 -0
- package/assets/docs/tree/upgrading.doc.mjs +6 -6
- package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +14 -2
- package/assets/docs/tree/verify-packed-template.doc.mjs +3 -3
- package/assets/docs/tree/versioning.doc.mjs +10 -9
- package/assets/docs/tree/who-answers.doc.mjs +119 -0
- package/assets/docs/tree/write-the-template-file.doc.mjs +7 -6
- package/assets/docs/use-a-theme.doc.mjs +2 -2
- package/assets/docs/working-with-ai.doc.mjs +66 -13
- package/assets/theme.template.ts +1 -1
- package/authoring/codemod/codemod.doc.mjs +7 -3
- package/authoring/config/config.doc.mjs +9 -6
- package/authoring/config/type.ts +4 -2
- package/authoring/debug/parse.d.mts +5 -5
- package/authoring/discover/discover.doc.mjs +7 -1
- package/authoring/doctypes/_schema.d.mts +8 -3
- package/authoring/doctypes/_schema.mjs +1 -0
- package/authoring/doctypes/base/graph-fields.doc.mjs +6 -4
- package/authoring/doctypes/command/command.doc.mjs +20 -12
- package/authoring/doctypes/command/type.ts +14 -0
- package/authoring/doctypes/component/component.doc.mjs +30 -27
- package/authoring/doctypes/component/type.ts +21 -8
- package/authoring/doctypes/enum/enum.doc.mjs +7 -4
- package/authoring/doctypes/function/function.doc.mjs +9 -8
- package/authoring/doctypes/hook/hook.doc.mjs +5 -4
- package/authoring/doctypes/hook/type.ts +4 -0
- package/authoring/doctypes/namespace/namespace.doc.mjs +7 -6
- package/authoring/doctypes/reference/reference.doc.mjs +12 -11
- package/authoring/doctypes/schema/schema.doc.mjs +9 -9
- package/authoring/doctypes/template/integration-template.doc.d.mts +11 -0
- package/authoring/doctypes/template/integration-template.doc.mjs +49 -0
- package/authoring/doctypes/template/parse.d.mts +6 -2
- package/authoring/doctypes/template/parse.mjs +3 -1
- package/authoring/doctypes/template/template.doc.mjs +3 -3
- package/authoring/doctypes/template/type.ts +22 -0
- package/authoring/doctypes/theme/theme.doc.mjs +2 -2
- package/authoring/gap-report/gap-report.doc.mjs +2 -2
- package/authoring/identity/identity.doc.mjs +3 -3
- package/authoring/index.d.ts +2 -0
- package/authoring/integration/integration.doc.mjs +30 -6
- package/authoring/integration/parse.test.mjs +21 -0
- package/authoring/integration/schema.d.mts +16 -3
- package/authoring/integration/schema.mjs +34 -2
- package/authoring/integration/type.ts +12 -0
- package/clients/cli/bin/astryx.mjs +20 -3
- package/clients/cli/cli-command.test.mjs +166 -0
- package/clients/cli/commands/blog.doc.mjs +1 -0
- package/clients/cli/commands/build-theme.batch-report.test.mjs +17 -3
- package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
- package/clients/cli/commands/build-theme.mjs +26 -13
- package/clients/cli/commands/build-theme.path-safety.test.mjs +224 -6
- package/clients/cli/commands/build-theme.registry.test.mjs +5 -2
- package/clients/cli/commands/build.doc.mjs +1 -0
- package/clients/cli/commands/build.exit-codes-doc.test.mjs +4 -0
- package/clients/cli/commands/cli-postinstall.test.mjs +49 -1
- package/clients/cli/commands/component.doc.mjs +1 -0
- package/clients/cli/commands/discover.broken-integration.test.mjs +11 -7
- package/clients/cli/commands/discover.doc.mjs +9 -1
- package/clients/cli/commands/discover.mjs +144 -93
- package/clients/cli/commands/discover.no-source.test.mjs +448 -33
- package/clients/cli/commands/discover.sources.test.mjs +20 -1
- package/clients/cli/commands/docs.doc.mjs +1 -0
- package/clients/cli/commands/docs.mjs +49 -19
- package/clients/cli/commands/docs.test.mjs +2 -2
- package/clients/cli/commands/doctor-integration-components.doc.mjs +19 -4
- package/clients/cli/commands/doctor-integration-docs.doc.mjs +20 -5
- package/clients/cli/commands/doctor-integration-templates.doc.mjs +1 -0
- package/clients/cli/commands/doctor-integration-validate.doc.mjs +22 -2
- package/clients/cli/commands/doctor-integration.test.mjs +888 -3
- package/clients/cli/commands/doctor.doc.mjs +12 -2
- package/clients/cli/commands/doctor.mjs +292 -7
- package/clients/cli/commands/doctor.test.mjs +10 -4
- package/clients/cli/commands/gap-report.doc.mjs +15 -2
- package/clients/cli/commands/gap-report.mjs +24 -2
- package/clients/cli/commands/gap-report.test.mjs +79 -0
- package/clients/cli/commands/hook.doc.mjs +1 -0
- package/clients/cli/commands/init.behavior.test.mjs +5 -0
- package/clients/cli/commands/init.doc.mjs +29 -3
- package/clients/cli/commands/integration-add.doc.mjs +7 -0
- package/clients/cli/commands/integration-authoring.test.mjs +49 -3
- package/clients/cli/commands/integration-check.doc.mjs +93 -0
- package/clients/cli/commands/integration-check.test.mjs +441 -0
- package/clients/cli/commands/integration-pack.doc.mjs +8 -1
- package/clients/cli/commands/integration-verify.doc.mjs +8 -1
- package/clients/cli/commands/integration.doc.mjs +6 -2
- package/clients/cli/commands/integration.mjs +119 -7
- package/clients/cli/commands/json-contract.test.mjs +11 -2
- package/clients/cli/commands/manifest.doc.mjs +1 -0
- package/clients/cli/commands/outside-project.test.mjs +774 -0
- package/clients/cli/commands/search.doc.mjs +1 -0
- package/clients/cli/commands/search.mjs +16 -11
- package/clients/cli/commands/search.test.mjs +429 -296
- package/clients/cli/commands/setup-nudge.test.mjs +102 -2
- package/clients/cli/commands/swizzle.doc.mjs +7 -0
- package/clients/cli/commands/swizzle.mjs +5 -3
- package/clients/cli/commands/swizzle.routing.test.mjs +19 -2
- package/clients/cli/commands/template.doc.mjs +1 -0
- package/clients/cli/commands/text-json-parity.test.mjs +5 -0
- package/clients/cli/commands/theme-add-lifecycle.test.mjs +3 -3
- package/clients/cli/commands/theme-add.doc.mjs +8 -1
- package/clients/cli/commands/theme-build.doc.mjs +3 -2
- package/clients/cli/commands/theme-eject.doc.mjs +1 -0
- package/clients/cli/commands/theme-list.behavior.test.mjs +6 -0
- package/clients/cli/commands/theme-list.doc.mjs +1 -0
- package/clients/cli/commands/theme-palette-generate.doc.mjs +1 -0
- package/clients/cli/commands/theme-remove.doc.mjs +7 -0
- package/clients/cli/commands/theme-targets.doc.mjs +1 -0
- package/clients/cli/commands/theme-template.doc.mjs +1 -0
- package/clients/cli/commands/theme-use.doc.mjs +7 -0
- package/clients/cli/commands/upgrade.config-ordering.test.mjs +2 -1
- package/clients/cli/commands/upgrade.doc.mjs +22 -1
- package/clients/cli/commands/upgrade.file-protection.test.mjs +3 -2
- package/clients/cli/commands/upgrade.hook-output.test.mjs +2 -1
- package/clients/cli/commands/upgrade.older-cli.test.mjs +160 -0
- package/clients/cli/index.mjs +112 -16
- package/clients/cli/lib/cli-error.mjs +4 -1
- package/clients/cli/lib/component-format.test.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +2 -2
- package/clients/cli/lib/json-shim.mjs +3 -1
- package/clients/cli/lib/manifest.d.ts +9 -0
- package/clients/cli/lib/manifest.mjs +17 -1
- package/clients/cli/lib/manifest.test.mjs +25 -0
- package/foundation/agent-docs/agent-doc-state.d.mts +35 -6
- package/foundation/agent-docs/agent-doc-state.mjs +66 -6
- package/foundation/agent-docs/agent-docs.d.mts +4 -3
- package/foundation/agent-docs/agent-docs.mjs +11 -9
- package/foundation/agent-docs/computer-agent-text.d.mts +133 -0
- package/foundation/agent-docs/computer-agent-text.mjs +623 -0
- package/foundation/agent-docs/computer-agent-text.test.mjs +602 -0
- package/foundation/config/project.d.mts +35 -3
- package/foundation/config/project.mjs +226 -7
- package/foundation/config/project.test.mjs +66 -0
- package/foundation/config/theme-state.mjs +5 -4
- package/foundation/discovery/authoring-self-docs.mjs +2 -1
- package/foundation/discovery/cli-self-docs.mjs +20 -3
- package/foundation/discovery/cli-self-docs.test.mjs +3 -2
- package/foundation/discovery/component-discovery.d.mts +190 -10
- package/foundation/discovery/component-discovery.export-names.test.mjs +760 -0
- package/foundation/discovery/component-discovery.mjs +864 -56
- package/foundation/discovery/component-discovery.test.mjs +96 -0
- package/foundation/discovery/component-replacement.mjs +20 -1
- package/foundation/discovery/component-replacement.test.mjs +40 -0
- package/foundation/discovery/copied-passages.d.mts +216 -0
- package/foundation/discovery/copied-passages.mjs +720 -0
- package/foundation/discovery/copied-passages.test.mjs +124 -0
- package/foundation/discovery/doc-consistency.d.mts +34 -0
- package/foundation/discovery/doc-consistency.mjs +513 -0
- package/foundation/discovery/doc-consistency.test.mjs +347 -0
- package/foundation/discovery/doc-fluff.d.mts +112 -0
- package/foundation/discovery/doc-fluff.mjs +328 -0
- package/foundation/discovery/doc-fluff.test.mjs +142 -0
- package/foundation/discovery/doc-types.d.mts +157 -0
- package/foundation/discovery/doc-types.mjs +1231 -0
- package/foundation/discovery/doc-types.test.mjs +744 -0
- package/foundation/discovery/docs-discovery.d.mts +88 -0
- package/foundation/discovery/docs-discovery.mjs +83 -2
- package/foundation/discovery/integration-doc-files.d.mts +22 -0
- package/foundation/discovery/integration-doc-files.mjs +231 -0
- package/foundation/discovery/integration-doc-files.test.mjs +246 -0
- package/foundation/discovery/module-exports.d.mts +27 -0
- package/foundation/discovery/module-exports.mjs +356 -31
- package/foundation/discovery/module-exports.test.mjs +172 -0
- package/foundation/discovery/package-tsconfig.d.mts +14 -0
- package/foundation/discovery/package-tsconfig.mjs +228 -0
- package/foundation/discovery/package-tsconfig.test.mjs +210 -0
- package/foundation/discovery/project-typescript.d.mts +32 -0
- package/foundation/discovery/project-typescript.mjs +89 -0
- package/foundation/discovery/prop-drift.d.mts +297 -0
- package/foundation/discovery/prop-drift.mjs +2428 -0
- package/foundation/discovery/prop-drift.test.mjs +2337 -0
- package/foundation/discovery/runner-allowlist.d.mts +40 -0
- package/foundation/discovery/runner-allowlist.mjs +53 -0
- package/foundation/discovery/stray-pointers.d.mts +52 -0
- package/foundation/discovery/stray-pointers.mjs +293 -0
- package/foundation/discovery/stray-pointers.test.mjs +86 -0
- package/foundation/discovery/template-adapter.mjs +74 -5
- package/foundation/discovery/template-needs.mjs +5 -2
- package/foundation/discovery/theme-imports.mjs +8 -4
- package/foundation/discovery/theme-imports.test.mjs +1 -1
- package/foundation/discovery/type-match.d.mts +53 -0
- package/foundation/discovery/type-match.mjs +660 -0
- package/foundation/discovery/type-match.test.mjs +169 -0
- package/foundation/discovery/type-text.d.mts +68 -0
- package/foundation/discovery/type-text.mjs +658 -0
- package/foundation/discovery/type-text.test.mjs +196 -0
- package/foundation/discovery/unresolved-references.d.mts +62 -0
- package/foundation/discovery/unresolved-references.mjs +790 -0
- package/foundation/discovery/unresolved-references.test.mjs +567 -0
- package/foundation/doc-compiler/doc-loads.test.mjs +51 -1
- package/foundation/doc-compiler/inputs.mjs +27 -1
- package/foundation/doc-compiler/inputs.test.mjs +0 -1
- package/foundation/doc-compiler/links.d.mts +41 -5
- package/foundation/doc-compiler/links.mjs +167 -28
- package/foundation/doc-compiler/links.test.mjs +97 -4
- package/foundation/doc-compiler/read.d.mts +1 -1
- package/foundation/doc-compiler/tree.mjs +30 -1
- package/foundation/doc-compiler/tree.test.mjs +8 -1
- package/foundation/env/cli-command.d.mts +83 -0
- package/foundation/env/cli-command.mjs +152 -0
- package/foundation/env/cli-command.test.mjs +129 -0
- package/foundation/env/node-version.test.mjs +15 -3
- package/foundation/env/package-manager.d.mts +93 -9
- package/foundation/env/package-manager.global.test.mjs +66 -0
- package/foundation/env/package-manager.mjs +184 -13
- package/foundation/env/package-manager.test.mjs +341 -15
- package/foundation/env/project-scope.d.mts +9 -0
- package/foundation/env/project-scope.mjs +33 -0
- package/foundation/env/search-path.d.mts +42 -0
- package/foundation/env/search-path.mjs +205 -0
- package/foundation/env/search-path.test.mjs +122 -0
- package/foundation/env/user-dirs.d.mts +39 -0
- package/foundation/env/user-dirs.mjs +93 -0
- package/foundation/env/user-dirs.test.mjs +72 -0
- package/foundation/env/user-settings.d.mts +46 -0
- package/foundation/env/user-settings.mjs +106 -0
- package/foundation/env/user-settings.test.mjs +64 -0
- package/foundation/fs/file-protection.mjs +15 -1
- package/foundation/fs/module-loader.d.mts +2 -1
- package/foundation/fs/module-loader.mjs +60 -4
- package/foundation/fs/module-loader.stdout.test.mjs +3 -2
- package/foundation/fs/module-loader.test.mjs +194 -0
- package/foundation/fs/path-compare.d.mts +33 -0
- package/foundation/fs/path-compare.mjs +73 -0
- package/foundation/fs/paths.d.mts +57 -1
- package/foundation/fs/paths.mjs +131 -3
- package/foundation/fs/paths.test.mjs +10 -1
- package/foundation/integrations/computer-integrations.d.mts +78 -0
- package/foundation/integrations/computer-integrations.mjs +316 -0
- package/foundation/integrations/computer-integrations.test.mjs +292 -0
- package/foundation/integrations/contribution-inventory.d.mts +11 -0
- package/foundation/integrations/contribution-inventory.mjs +56 -3
- package/foundation/integrations/integration-warnings.mjs +3 -2
- package/foundation/integrations/integration-warnings.test.mjs +8 -9
- package/foundation/integrations/integrations.d.mts +25 -1
- package/foundation/integrations/integrations.mjs +46 -3
- package/foundation/integrations/issue.ts +6 -0
- package/foundation/integrations/validate-contributions.d.mts +2 -0
- package/foundation/integrations/validate-contributions.mjs +41 -1
- package/foundation/release/agent-text-worker.d.mts +4 -0
- package/foundation/release/agent-text-worker.mjs +52 -0
- package/foundation/release/cache.d.mts +310 -0
- package/foundation/release/cache.mjs +1216 -0
- package/foundation/release/cache.test.mjs +920 -0
- package/foundation/release/choose.d.mts +207 -0
- package/foundation/release/choose.mjs +677 -0
- package/foundation/release/choose.test.mjs +427 -0
- package/foundation/release/core-worker.d.mts +4 -0
- package/foundation/release/core-worker.mjs +38 -0
- package/foundation/release/global-state.d.mts +259 -0
- package/foundation/release/global-state.mjs +472 -0
- package/foundation/release/global-state.test.mjs +381 -0
- package/foundation/release/handoff.d.mts +60 -0
- package/foundation/release/handoff.e2e.test.mjs +278 -0
- package/foundation/release/handoff.mjs +357 -0
- package/foundation/release/lock-lease.d.mts +23 -0
- package/foundation/release/lock-lease.mjs +80 -0
- package/foundation/release/notices.d.mts +253 -0
- package/foundation/release/notices.mjs +596 -0
- package/foundation/release/notices.test.mjs +565 -0
- package/foundation/release/npm-guard.d.mts +4 -0
- package/foundation/release/npm-guard.mjs +126 -0
- package/foundation/release/project.d.mts +141 -0
- package/foundation/release/project.mjs +466 -0
- package/foundation/release/project.test.mjs +288 -0
- package/foundation/release/refresh-worker.d.mts +4 -0
- package/foundation/release/refresh-worker.mjs +27 -0
- package/foundation/release/run-context.d.mts +47 -0
- package/foundation/release/run-context.mjs +149 -0
- package/foundation/release/update-notice-env.d.mts +28 -0
- package/foundation/release/update-notice-env.mjs +39 -0
- package/foundation/response/base.d.ts +26 -3
- package/foundation/response/error-codes.d.mts +3 -1
- package/foundation/response/error-codes.doc.mjs +12 -0
- package/foundation/response/error-codes.mjs +17 -0
- package/foundation/response/error-codes.test.mjs +2 -0
- package/foundation/response/json-contract.test.mjs +7 -2
- package/foundation/response/json.mjs +4 -1
- package/foundation/response/response-types.doc.mjs +22 -11
- package/foundation/response/response-types.doc.test.mjs +46 -0
- package/foundation/response/response.doc.mjs +3 -3
- package/foundation/xle/browser-imports.test.mjs +74 -0
- package/foundation/xle/registry.mjs +4 -0
- package/foundation/xle/registry.test.mjs +28 -0
- package/package.json +11 -11
- package/scripts/postinstall.mjs +24 -5
|
@@ -36,7 +36,7 @@ export const docs = {
|
|
|
36
36
|
type: 'code',
|
|
37
37
|
lang: 'text',
|
|
38
38
|
label: 'Paste this into your AI',
|
|
39
|
-
code: 'Install @astryxdesign/cli and run `
|
|
39
|
+
code: 'Install @astryxdesign/cli and run `astryx init --features agents` to set up your Astryx context. Read the generated file.',
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
type: 'prose',
|
|
@@ -44,18 +44,22 @@ export const docs = {
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
type: 'prose',
|
|
47
|
-
text:
|
|
47
|
+
text: "By default this creates `AGENTS.md` (the tool-agnostic standard most agents read). To target a specific tool's file instead:",
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
type: 'code',
|
|
51
51
|
lang: 'bash',
|
|
52
52
|
label: 'Manual options',
|
|
53
|
-
code: `
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
code: `astryx init --features agents --agent claude # CLAUDE.md if present, else .claude/CLAUDE.md
|
|
54
|
+
astryx init --features agents --agent cursor # .cursorrules if present, else AGENTS.md
|
|
55
|
+
astryx init --features agents --agent codex # AGENTS.md (Copilot, Codex, etc.)
|
|
56
|
+
astryx init --features agents --agent hermes # .hermes.md or HERMES.md if present, else AGENTS.md
|
|
57
|
+
astryx init --features agents --agent muse # AGENTS.md (Muse)
|
|
58
|
+
astryx init --features agents --agent all # every agent file present, else AGENTS.md and .claude/CLAUDE.md`,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'prose',
|
|
62
|
+
text: "For agents that work outside any one project, your global install keeps one short Astryx skill, `~/.agents/skills/astryx/SKILL.md`, linked into the skill folders agent tools read, such as `~/.claude/skills/astryx`. It tells agents Astryx is there and when to use it; `astryx init --user` writes it now or, with `--remove-agents`, turns it off. Inside a project, agents follow that project's own agent docs. See {@link generic:computer-agent-guide}.",
|
|
59
63
|
},
|
|
60
64
|
],
|
|
61
65
|
},
|
|
@@ -92,7 +96,7 @@ npx @astryxdesign/cli init --features agents --agent all # every agent fil
|
|
|
92
96
|
type: 'code',
|
|
93
97
|
lang: 'bash',
|
|
94
98
|
label: 'Install as a Cursor project rule',
|
|
95
|
-
code: `
|
|
99
|
+
code: `astryx init --features agents --agent-docs-path .cursor/rules/astryx.mdc`,
|
|
96
100
|
},
|
|
97
101
|
{
|
|
98
102
|
type: 'prose',
|
|
@@ -117,7 +121,7 @@ npx @astryxdesign/cli init --features agents --agent all # every agent fil
|
|
|
117
121
|
2. How do you make a Dialog non-dismissible?
|
|
118
122
|
3. What prop does Selector use for its items?
|
|
119
123
|
|
|
120
|
-
If you don't know all three, run \`
|
|
124
|
+
If you don't know all three, run \`astryx init --features agents\` to generate agent docs, then read the generated file.`,
|
|
121
125
|
},
|
|
122
126
|
],
|
|
123
127
|
},
|
|
@@ -182,26 +186,75 @@ astryx docs principles --dense`,
|
|
|
182
186
|
},
|
|
183
187
|
{
|
|
184
188
|
type: 'prose',
|
|
185
|
-
text: 'Add the server to your MCP config file.
|
|
189
|
+
text: 'Add the server to your MCP config file. The entry is a remote HTTP server, and the exact shape differs per client, so use the snippet for the tool you run. An entry with an unrecognized transport is skipped with a warning rather than an error, which reads as a server that connects but exposes no tools.',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'code',
|
|
193
|
+
lang: 'json',
|
|
194
|
+
label: 'Claude Code (.mcp.json)',
|
|
195
|
+
code: `{
|
|
196
|
+
"mcpServers": {
|
|
197
|
+
"astryx": {
|
|
198
|
+
"type": "http",
|
|
199
|
+
"url": "https://astryx.atmeta.com/mcp"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}`,
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'prose',
|
|
206
|
+
text: 'Claude Code can also write that entry from the terminal:',
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'code',
|
|
210
|
+
lang: 'bash',
|
|
211
|
+
code: `claude mcp add --transport http astryx https://astryx.atmeta.com/mcp`,
|
|
186
212
|
},
|
|
187
213
|
{
|
|
188
214
|
type: 'code',
|
|
189
215
|
lang: 'json',
|
|
190
|
-
label: '
|
|
216
|
+
label: 'Cline (cline_mcp_settings.json) - type is streamableHttp',
|
|
217
|
+
code: `{
|
|
218
|
+
"mcpServers": {
|
|
219
|
+
"astryx": {
|
|
220
|
+
"type": "streamableHttp",
|
|
221
|
+
"url": "https://astryx.atmeta.com/mcp"
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}`,
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
type: 'code',
|
|
228
|
+
lang: 'json',
|
|
229
|
+
label:
|
|
230
|
+
'Cursor (.cursor/mcp.json) - remote servers take no type field',
|
|
191
231
|
code: `{
|
|
192
232
|
"mcpServers": {
|
|
193
233
|
"astryx": {
|
|
194
|
-
"type": "url",
|
|
195
234
|
"url": "https://astryx.atmeta.com/mcp"
|
|
196
235
|
}
|
|
197
236
|
}
|
|
198
237
|
}`,
|
|
199
238
|
},
|
|
239
|
+
{
|
|
240
|
+
type: 'prose',
|
|
241
|
+
text: 'Claude Desktop is the exception: claude_desktop_config.json holds local stdio servers, so a remote server is added through Settings, then Connectors, then Add custom connector, pasting the URL above.',
|
|
242
|
+
},
|
|
200
243
|
{
|
|
201
244
|
type: 'prose',
|
|
202
245
|
text: 'Once connected, your AI tool can search for components by natural language (e.g. "dropdown menu", "success message") and retrieve full documentation without any manual CLI invocation. The server uses the same keyword index from component docs, so search quality improves automatically as component documentation is updated.',
|
|
203
246
|
},
|
|
204
247
|
],
|
|
205
248
|
},
|
|
249
|
+
{
|
|
250
|
+
id: 'global-mode',
|
|
251
|
+
title: 'In global mode',
|
|
252
|
+
content: [
|
|
253
|
+
{
|
|
254
|
+
type: 'prose',
|
|
255
|
+
text: "In global mode: your global install keeps one Astryx skill in your home folder, linked into the folders agent tools read, so agents outside any project know Astryx is there; inside a project, its own agent docs come first. See {@link namespace:global} and {@link generic:computer-agent-guide}.",
|
|
256
|
+
},
|
|
257
|
+
],
|
|
258
|
+
},
|
|
206
259
|
],
|
|
207
260
|
};
|
package/assets/theme.template.ts
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
* 1. WRAP THE APP. A theme does nothing until it is provided.
|
|
20
20
|
*
|
|
21
|
-
* import {Theme} from '@astryxdesign/core';
|
|
21
|
+
* import {Theme} from '@astryxdesign/core/theme';
|
|
22
22
|
* import {myTheme} from './theme';
|
|
23
23
|
*
|
|
24
24
|
* <Theme theme={myTheme} mode="system"> // 'system' | 'light' | 'dark'
|
|
@@ -17,7 +17,8 @@ export const doc = {
|
|
|
17
17
|
'A codemod module the CLI runs during `astryx upgrade`. Default-export a ' +
|
|
18
18
|
"plain object with a `type` discriminant: 'code' rewrites source files, " +
|
|
19
19
|
"'config' rewrites the astryx.config.* file. There is no factory to call.",
|
|
20
|
-
appliesTo:
|
|
20
|
+
appliesTo:
|
|
21
|
+
'`<codemods>/<version>/<id>.{ts,mjs,js}` in an integration package: `<codemods>` is the codemods root of astryx.integration.*, and `<version>` is the exact @astryxdesign/core version (such as 0.7.0) whose upgrade runs the codemod. A file directly in the root never runs.',
|
|
21
22
|
fields: [
|
|
22
23
|
{
|
|
23
24
|
name: 'title',
|
|
@@ -44,6 +45,7 @@ export const doc = {
|
|
|
44
45
|
description:
|
|
45
46
|
'File extensions this codemod applies to. Code codemods only; a ' +
|
|
46
47
|
'config codemod always targets astryx.config.*.',
|
|
48
|
+
default: "['.tsx', '.ts', '.jsx', '.js', '.mjs', '.cjs']",
|
|
47
49
|
example: "['.tsx', '.ts']",
|
|
48
50
|
},
|
|
49
51
|
{
|
|
@@ -58,6 +60,7 @@ export const doc = {
|
|
|
58
60
|
name: 'file',
|
|
59
61
|
type: 'AstryxCodemodFile',
|
|
60
62
|
description: 'The source file presented to the transform.',
|
|
63
|
+
required: true,
|
|
61
64
|
fields: [
|
|
62
65
|
{
|
|
63
66
|
name: 'file.path',
|
|
@@ -77,6 +80,7 @@ export const doc = {
|
|
|
77
80
|
name: 'api',
|
|
78
81
|
type: 'AstryxCodemodApi',
|
|
79
82
|
description: 'Helpers and context passed as the second argument.',
|
|
83
|
+
required: true,
|
|
80
84
|
fields: [
|
|
81
85
|
{
|
|
82
86
|
name: 'api.jscodeshift',
|
|
@@ -89,14 +93,14 @@ export const doc = {
|
|
|
89
93
|
name: 'api.stats',
|
|
90
94
|
type: '(...args: unknown[]) => void',
|
|
91
95
|
description:
|
|
92
|
-
'
|
|
96
|
+
'Accepted for jscodeshift parity. A call does nothing, and upgrade shows nothing for it.',
|
|
93
97
|
required: true,
|
|
94
98
|
},
|
|
95
99
|
{
|
|
96
100
|
name: 'api.report',
|
|
97
101
|
type: '(...args: unknown[]) => void',
|
|
98
102
|
description:
|
|
99
|
-
'
|
|
103
|
+
'Accepted for jscodeshift parity. A call does nothing, and upgrade shows nothing for it.',
|
|
100
104
|
required: true,
|
|
101
105
|
},
|
|
102
106
|
],
|
|
@@ -15,8 +15,8 @@ export const doc = {
|
|
|
15
15
|
description:
|
|
16
16
|
'The optional astryx.config.* file at your project root. Declares which ' +
|
|
17
17
|
'integrations to load, where to route issue links, post-codemod hooks, local ' +
|
|
18
|
-
'debug-log and gap-report handlers,
|
|
19
|
-
'optional; {} is valid.',
|
|
18
|
+
'debug-log and gap-report handlers, a discover source, and experimental ' +
|
|
19
|
+
'layout components. All optional; {} is valid.',
|
|
20
20
|
appliesTo: 'astryx.config.{ts,mjs,js}',
|
|
21
21
|
fields: [
|
|
22
22
|
{
|
|
@@ -29,7 +29,9 @@ export const doc = {
|
|
|
29
29
|
{
|
|
30
30
|
name: 'issuesUrl',
|
|
31
31
|
type: 'string',
|
|
32
|
-
description:
|
|
32
|
+
description:
|
|
33
|
+
"Where reports about Core go: `astryx gap-report` routes a Core report here when no handler is loaded, gapReport handlers receive it as `report.target.issuesUrl`, and `astryx swizzle` prints it as the feedback link for a Core component. A report or swizzle for an integration's component uses that integration's own issuesUrl, never this one. An absolute URL; a value that is not a URL makes the config invalid.",
|
|
34
|
+
default: "'https://github.com/facebook/astryx/issues/new'",
|
|
33
35
|
},
|
|
34
36
|
{
|
|
35
37
|
name: 'hooks',
|
|
@@ -40,7 +42,7 @@ export const doc = {
|
|
|
40
42
|
name: 'hooks.postCodemod',
|
|
41
43
|
type: 'PostCodemodHook[]',
|
|
42
44
|
description:
|
|
43
|
-
'Commands run after
|
|
45
|
+
'Commands to run after `astryx upgrade` changes files (e.g. re-run your formatter). Each hook is an object `{name?, buildCommand}`: buildCommand gets `{packageDir, files}` and returns `{command, args?, options?}` to run, or null to skip. A dry run prints each command instead of running it.',
|
|
44
46
|
},
|
|
45
47
|
],
|
|
46
48
|
},
|
|
@@ -77,7 +79,7 @@ export const doc = {
|
|
|
77
79
|
name: 'experimental.xle.components',
|
|
78
80
|
type: 'Record<string, XleComponent>',
|
|
79
81
|
description:
|
|
80
|
-
'Custom components the layout expander
|
|
82
|
+
'Custom components for the removed layout expander, keyed by component name. The CLI still validates the field, so an entry without a string `from` makes `astryx.config` invalid, but nothing reads it.',
|
|
81
83
|
},
|
|
82
84
|
],
|
|
83
85
|
},
|
|
@@ -90,6 +92,7 @@ export const doc = {
|
|
|
90
92
|
{
|
|
91
93
|
label: 'Send every command run somewhere of your own',
|
|
92
94
|
code:
|
|
95
|
+
"import {appendFileSync} from 'node:fs';\n\n" +
|
|
93
96
|
'export default {\n' +
|
|
94
97
|
' debug: event => appendFileSync("runs.ndjson", JSON.stringify(event) + "\\n"),\n' +
|
|
95
98
|
'};',
|
|
@@ -98,7 +101,7 @@ export const doc = {
|
|
|
98
101
|
notes: [
|
|
99
102
|
{
|
|
100
103
|
type: 'prose',
|
|
101
|
-
text: 'The config is validated at load with a strict schema: unknown
|
|
104
|
+
text: 'The config is validated at load with a strict schema: an unknown key, a misspelled one included, or a value of the wrong type makes the whole file invalid. `astryx gap-report`, `astryx discover`, and `astryx upgrade` stop with the error, and `astryx doctor` fails its `config` check (exit 1). Reads such as `component`, `docs`, `search`, `template`, and `theme` carry on silently as if there were no config and no integrations, and no debug handler runs, so run `astryx doctor` after editing the file.',
|
|
102
105
|
},
|
|
103
106
|
],
|
|
104
107
|
};
|
package/authoring/config/type.ts
CHANGED
|
@@ -115,8 +115,10 @@ export interface AstryxConfig {
|
|
|
115
115
|
/** Experimental XLE (layout expression) configuration. */
|
|
116
116
|
xle?: {
|
|
117
117
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
118
|
+
* Custom components for the removed layout expander, keyed by
|
|
119
|
+
* component name. The CLI still validates the field, so an entry
|
|
120
|
+
* without a string `from` makes `astryx.config` invalid, but nothing
|
|
121
|
+
* reads it.
|
|
120
122
|
*/
|
|
121
123
|
components?: Record<string, XleComponent>;
|
|
122
124
|
};
|
|
@@ -44,9 +44,9 @@ declare const eventSchema: z.ZodObject<{
|
|
|
44
44
|
args: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
45
45
|
options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
46
46
|
optionSources: z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
47
|
-
default: "default";
|
|
48
47
|
cli: "cli";
|
|
49
48
|
env: "env";
|
|
49
|
+
default: "default";
|
|
50
50
|
config: "config";
|
|
51
51
|
implied: "implied";
|
|
52
52
|
}>>;
|
|
@@ -75,16 +75,16 @@ declare const eventSchema: z.ZodObject<{
|
|
|
75
75
|
resultCount: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
76
76
|
emptyResult: z.ZodDefault<z.ZodNullable<z.ZodBoolean>>;
|
|
77
77
|
resultKind: z.ZodDefault<z.ZodNullable<z.ZodEnum<{
|
|
78
|
-
theme: "theme";
|
|
79
|
-
component: "component";
|
|
80
78
|
command: "command";
|
|
79
|
+
none: "none";
|
|
80
|
+
component: "component";
|
|
81
81
|
hook: "hook";
|
|
82
|
-
template: "template";
|
|
83
82
|
doc: "doc";
|
|
83
|
+
template: "template";
|
|
84
|
+
theme: "theme";
|
|
84
85
|
integration: "integration";
|
|
85
86
|
migration: "migration";
|
|
86
87
|
mixed: "mixed";
|
|
87
|
-
none: "none";
|
|
88
88
|
}>>>;
|
|
89
89
|
directMatch: z.ZodDefault<z.ZodNullable<z.ZodBoolean>>;
|
|
90
90
|
stdout: z.ZodString;
|
|
@@ -16,7 +16,7 @@ export const doc = {
|
|
|
16
16
|
displayName: 'DiscoverSource',
|
|
17
17
|
namespace: 'authoring',
|
|
18
18
|
description:
|
|
19
|
-
'A source for `astryx discover`: an async function that returns a catalog of packages a project could add, their versions, and what each version adds. Set it as `discover` in astryx.config, or export it as `discover` from an integration manifest. Discover calls every source, the project one first, and
|
|
19
|
+
'A source for `astryx discover`: an async function that returns a catalog of packages a project could add, their versions, and what each version adds. Set it as `discover` in astryx.config, or export it as `discover` from an integration manifest. Discover calls every source, the project one first, and then reads the official list the CLI carries; another source\'s entry for an official package is kept. A source that throws, runs past 30 seconds, or returns an invalid catalog never hides the others; discover then uses the last good answer that source gave for the same request, or reports the source as failed when it saved none. Discover only reads: it prints the command that adds a package and never runs it.',
|
|
20
20
|
appliesTo:
|
|
21
21
|
'`discover` in astryx.config.*, or the `discover` named export of astryx.integration.*',
|
|
22
22
|
fields: [
|
|
@@ -135,4 +135,10 @@ export const doc = {
|
|
|
135
135
|
'};',
|
|
136
136
|
},
|
|
137
137
|
],
|
|
138
|
+
notes: [
|
|
139
|
+
{
|
|
140
|
+
type: 'prose',
|
|
141
|
+
text: "In global mode: the discover source of an integration installed for the computer is called in folders outside any project; inside a project, only the sources of integrations the project installs are. See {@link namespace:global} and {@link generic:global-integrations}.",
|
|
142
|
+
},
|
|
143
|
+
],
|
|
138
144
|
};
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
/** Every authored doc-kind discriminant accepted by parseDoc. */
|
|
5
5
|
export const AuthoredDocKindSchema: z.ZodEnum<{
|
|
6
6
|
function: "function";
|
|
7
|
+
command: "command";
|
|
7
8
|
component: "component";
|
|
8
9
|
generic: "generic";
|
|
9
10
|
page: "page";
|
|
10
11
|
block: "block";
|
|
11
12
|
schema: "schema";
|
|
12
|
-
command: "command";
|
|
13
13
|
enum: "enum";
|
|
14
14
|
namespace: "namespace";
|
|
15
15
|
}>;
|
|
@@ -497,6 +497,11 @@ export const CommandDocKindSchema: z.ZodObject<{
|
|
|
497
497
|
code: z.ZodNumber;
|
|
498
498
|
when: z.ZodString;
|
|
499
499
|
}, z.core.$loose>>>;
|
|
500
|
+
outsideProject: z.ZodOptional<z.ZodEnum<{
|
|
501
|
+
same: "same";
|
|
502
|
+
refuse: "refuse";
|
|
503
|
+
own: "own";
|
|
504
|
+
}>>;
|
|
500
505
|
related: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
501
506
|
notes: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
502
507
|
type: z.ZodLiteral<"prose">;
|
|
@@ -582,12 +587,12 @@ export const NamespaceDocKindSchema: z.ZodObject<{
|
|
|
582
587
|
accepts: z.ZodObject<{
|
|
583
588
|
kinds: z.ZodArray<z.ZodEnum<{
|
|
584
589
|
function: "function";
|
|
590
|
+
command: "command";
|
|
585
591
|
component: "component";
|
|
586
592
|
generic: "generic";
|
|
587
593
|
page: "page";
|
|
588
594
|
block: "block";
|
|
589
595
|
schema: "schema";
|
|
590
|
-
command: "command";
|
|
591
596
|
enum: "enum";
|
|
592
597
|
namespace: "namespace";
|
|
593
598
|
}>>;
|
|
@@ -602,12 +607,12 @@ export const NamespaceDocKindSchema: z.ZodObject<{
|
|
|
602
607
|
group: z.ZodString;
|
|
603
608
|
kinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
604
609
|
function: "function";
|
|
610
|
+
command: "command";
|
|
605
611
|
component: "component";
|
|
606
612
|
generic: "generic";
|
|
607
613
|
page: "page";
|
|
608
614
|
block: "block";
|
|
609
615
|
schema: "schema";
|
|
610
|
-
command: "command";
|
|
611
616
|
enum: "enum";
|
|
612
617
|
namespace: "namespace";
|
|
613
618
|
}>>>;
|
|
@@ -574,6 +574,7 @@ export const CommandDocKindSchema = z
|
|
|
574
574
|
exitCodes: z
|
|
575
575
|
.array(z.object({code: z.number(), when: z.string()}).passthrough())
|
|
576
576
|
.optional(),
|
|
577
|
+
outsideProject: z.enum(['same', 'refuse', 'own']).optional(),
|
|
577
578
|
related: z.array(z.string()).optional(),
|
|
578
579
|
notes: z.array(ReferenceContentBlockSchema).optional(),
|
|
579
580
|
})
|
|
@@ -12,14 +12,15 @@ export const doc = {
|
|
|
12
12
|
displayName: 'Authored doc graph fields',
|
|
13
13
|
namespace: 'authoring',
|
|
14
14
|
description:
|
|
15
|
-
"Fields every authored doc kind can declare for the docs tree: `placement`, plus two reserved fields, `aliases` and `audience`. The docs tree reads `placement` for every guide, the CLI's and each integration's. Nothing reads `aliases` or `audience` today: a reference topic
|
|
16
|
-
appliesTo:
|
|
15
|
+
"Fields every authored doc kind can declare for the docs tree: `placement`, plus two reserved fields, `aliases` and `audience`. The docs tree reads `placement` for every guide and namespace doc, the CLI's and each integration's. Nothing reads `aliases` or `audience` today: a reference topic that sets one fails to load, placed in the docs tree or not, and other doc kinds accept them and ignore them.",
|
|
16
|
+
appliesTo:
|
|
17
|
+
"Every authored doc kind's .doc.mjs object. Theme descriptors take none of these fields.",
|
|
17
18
|
fields: [
|
|
18
19
|
{
|
|
19
20
|
name: 'placement',
|
|
20
21
|
type: 'DocPlacement',
|
|
21
22
|
description:
|
|
22
|
-
"Names the doc's one parent in the docs tree: a namespace of the same package, one of its slots, and an order. Read for every guide, the CLI's and each integration's: a guide with `placement` gets a route in the tree instead of a flat topic name, and cannot also `replaces` or `extends
|
|
23
|
+
"Names the doc's one parent in the docs tree: a namespace of the same package, one of its slots, and an order. Read for every guide, the CLI's and each integration's, and for every namespace doc: a guide with `placement` gets a route in the tree instead of a flat topic name, and cannot also set `replaces` or `extends`; a namespace doc with `placement` nests under that parent. In the CLI's own topic directory a topic that sets it fails to load: the CLI keeps its guides in its docs tree directory. Commands, API functions, schemas, and enums do not set it: the tree adopts each by its `namespace`.",
|
|
23
24
|
fields: [
|
|
24
25
|
{
|
|
25
26
|
name: 'placement.parent',
|
|
@@ -37,7 +38,8 @@ export const doc = {
|
|
|
37
38
|
{
|
|
38
39
|
name: 'placement.order',
|
|
39
40
|
type: 'number',
|
|
40
|
-
description:
|
|
41
|
+
description:
|
|
42
|
+
"Integer sibling order within the slot. Docs without an order come after the ordered ones, sorted by title. The same order sets each doc's Previous and Next links.",
|
|
41
43
|
},
|
|
42
44
|
],
|
|
43
45
|
},
|
|
@@ -48,18 +48,20 @@ export const doc = {
|
|
|
48
48
|
{
|
|
49
49
|
name: 'description',
|
|
50
50
|
type: 'string',
|
|
51
|
-
description:
|
|
51
|
+
description:
|
|
52
|
+
'Longer body / when-to-use. `astryx docs` prints it after the summary; `--help` shows only the summary.',
|
|
52
53
|
},
|
|
53
54
|
{
|
|
54
55
|
name: 'namespace',
|
|
55
56
|
type: 'string',
|
|
56
57
|
description:
|
|
57
|
-
"Optional in the type, but every doc the CLI ships declares it. The group that reads this doc. The CLI's commands use 'cli/commands', which the docs tree adopts: each is the leaf `cli/commands/<name
|
|
58
|
+
"Optional in the type, but every doc the CLI ships declares it. The group that reads this doc. The CLI's commands use 'cli/commands', which the docs tree adopts: each is the leaf `cli/commands/<name>`, spaces as hyphens (`theme build` is `cli/commands/theme-build`). Every command doc the CLI ships declares one, and `astryx doctor` fails on one that is missing or that nothing reads.",
|
|
58
59
|
},
|
|
59
60
|
{
|
|
60
61
|
name: 'aliases',
|
|
61
62
|
type: 'string[]',
|
|
62
|
-
description:
|
|
63
|
+
description:
|
|
64
|
+
'Reserved: other names for this doc. Nothing reads it today, so they do not resolve to it.',
|
|
63
65
|
},
|
|
64
66
|
{
|
|
65
67
|
name: 'fn',
|
|
@@ -83,13 +85,13 @@ export const doc = {
|
|
|
83
85
|
name: 'args[].param',
|
|
84
86
|
type: 'string',
|
|
85
87
|
description:
|
|
86
|
-
|
|
88
|
+
"FunctionDoc param this arg binds to; `astryx docs` shows that param's description when the arg has none.",
|
|
87
89
|
},
|
|
88
90
|
{
|
|
89
91
|
name: 'args[].description',
|
|
90
92
|
type: 'string',
|
|
91
93
|
description:
|
|
92
|
-
|
|
94
|
+
"Override description. `--help` shows an argument's description only when it sets this.",
|
|
93
95
|
},
|
|
94
96
|
{
|
|
95
97
|
name: 'args[].required',
|
|
@@ -126,7 +128,7 @@ export const doc = {
|
|
|
126
128
|
name: 'options[].description',
|
|
127
129
|
type: 'string',
|
|
128
130
|
description:
|
|
129
|
-
'Override/explicit description
|
|
131
|
+
'Override/explicit description. Nothing requires it: a flag with neither this nor `param` shows no description.',
|
|
130
132
|
},
|
|
131
133
|
{
|
|
132
134
|
name: 'options[].choices',
|
|
@@ -143,7 +145,7 @@ export const doc = {
|
|
|
143
145
|
name: 'options[].cliOnly',
|
|
144
146
|
type: 'boolean',
|
|
145
147
|
description:
|
|
146
|
-
'True for CLI-only flags with no function param (e.g. --
|
|
148
|
+
'True for CLI-only flags with no function param (e.g. --verbose). Nothing reads it.',
|
|
147
149
|
},
|
|
148
150
|
],
|
|
149
151
|
},
|
|
@@ -196,6 +198,12 @@ export const doc = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
},
|
|
201
|
+
{
|
|
202
|
+
name: 'outsideProject',
|
|
203
|
+
type: "'same' | 'refuse' | 'own'",
|
|
204
|
+
description:
|
|
205
|
+
'What the command does outside a project. `same`: the answer it gives in a new project. `refuse`: it writes nothing and fails, naming the app project or integration package it needs. `own`: something else. Every `refuse` and `own` command also carries an `In global mode:` note in its `notes` that tells readers exactly what it does. Every command and subcommand declares one, and `astryx manifest` publishes it; a command that only groups subcommands declares none. The CLI tests run every command in an empty folder and check what it does against this value; `astryx doctor` does not check it.',
|
|
206
|
+
},
|
|
199
207
|
{
|
|
200
208
|
name: 'deprecated',
|
|
201
209
|
type: 'string',
|
|
@@ -220,13 +228,13 @@ export const doc = {
|
|
|
220
228
|
type: 'command',
|
|
221
229
|
name: 'search',
|
|
222
230
|
displayName: 'astryx search',
|
|
223
|
-
summary: 'Find components, hooks, docs, and
|
|
224
|
-
namespace: 'cli',
|
|
231
|
+
summary: 'Find components, hooks, docs, templates, and themes.',
|
|
232
|
+
namespace: 'cli/commands',
|
|
225
233
|
fn: 'search',
|
|
226
234
|
args: [{name: 'query', param: 'query', required: true}],
|
|
227
235
|
options: [
|
|
228
|
-
{flag: '--type <domain>', param: 'options.type', choices: ['component', 'hook', 'doc', 'template']},
|
|
229
|
-
{flag: '--
|
|
236
|
+
{flag: '--type <domain>', param: 'options.type', choices: ['component', 'hook', 'doc', 'template', 'theme']},
|
|
237
|
+
{flag: '--verbose', cliOnly: true, description: "Also print each result's score and match reason."},
|
|
230
238
|
],
|
|
231
239
|
examples: [{label: 'Terminal', cli: 'astryx search button --json'}],
|
|
232
240
|
exitCodes: [{code: 1, when: 'The --type value is not a known domain.'}],
|
|
@@ -241,7 +249,7 @@ export const doc = {
|
|
|
241
249
|
},
|
|
242
250
|
{
|
|
243
251
|
type: 'prose',
|
|
244
|
-
text: "Bind an arg/option to a function param via `param` so it inherits that param's description
|
|
252
|
+
text: "Bind an arg/option to a function param via `param` so it inherits that param's description: an option's in `--help` and `astryx docs`, an arg's in `astryx docs` only. Mark a flag with no function param (e.g. `--verbose`) `cliOnly: true` and give it its own `description`; nothing checks either. `--json` is a global flag, so a command doc does not declare it.",
|
|
245
253
|
},
|
|
246
254
|
],
|
|
247
255
|
};
|
|
@@ -40,6 +40,18 @@ export interface CommandOptionDoc {
|
|
|
40
40
|
cliOnly?: boolean;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
/**
|
|
44
|
+
* What a command does in a folder outside any project:
|
|
45
|
+
* - `same`: it gives the answer it gives in a new project, reading the Core
|
|
46
|
+
* the answering release carries.
|
|
47
|
+
* - `refuse`: it writes nothing and fails before doing any work, naming the app
|
|
48
|
+
* project or integration package it needs.
|
|
49
|
+
* - `own`: it does something else.
|
|
50
|
+
* Every `refuse` and `own` command also carries an `In global mode:` note
|
|
51
|
+
* in its `notes`, for readers.
|
|
52
|
+
*/
|
|
53
|
+
export type CommandOutsideProject = 'same' | 'refuse' | 'own';
|
|
54
|
+
|
|
43
55
|
export interface CommandExampleDoc {
|
|
44
56
|
label?: string;
|
|
45
57
|
/** A full terminal invocation, e.g. 'astryx search button --json'. */
|
|
@@ -81,6 +93,8 @@ export interface CommandDoc extends AuthoredDocGraphFields {
|
|
|
81
93
|
examples?: CommandExampleDoc[];
|
|
82
94
|
/** Documented exit codes. */
|
|
83
95
|
exitCodes?: {code: number; when: string}[];
|
|
96
|
+
/** What the command does outside a project: `same`, `refuse`, or `own`. Every command and subcommand declares one, and `astryx manifest` publishes it; a command that only groups subcommands declares none. */
|
|
97
|
+
outsideProject?: CommandOutsideProject;
|
|
84
98
|
/** Deprecation notice — a DEP-* id and the replacement. */
|
|
85
99
|
deprecated?: string;
|
|
86
100
|
/** Related command names; the CLI links each to its doc. */
|