@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.
- package/CHANGELOG.md +119 -0
- package/README.md +169 -149
- 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/kit/kit.mjs +3 -11
- package/api/component/_adapter.d.mts +31 -0
- package/api/component/_adapter.mjs +119 -11
- package/api/component/component.doc.mjs +6 -1
- package/api/component/component.mjs +60 -10
- package/api/component/doc-links.test.mjs +386 -0
- 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 +63 -0
- package/api/docs/_adapter.mjs +312 -18
- 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/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 +16 -3
- 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 +152 -48
- 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/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 +15 -4
- 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 +33 -0
- package/api/integration/_adapter.mjs +58 -0
- package/api/integration/authoring-checks.mjs +100 -5
- package/api/integration/authoring-checks.test.mjs +769 -0
- package/api/integration/authoring-checks.type.d.mts +134 -0
- package/api/integration/authoring-checks.type.mjs +60 -1
- package/api/integration/integrationCheck.doc.mjs +1 -1
- package/api/integration/integrationComponentConflicts.doc.mjs +11 -3
- package/api/integration/integrationDocConflicts.doc.mjs +22 -5
- package/api/integration/pack-check.mjs +303 -13
- package/api/integration/pack-check.test.mjs +371 -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 +55 -9
- package/api/integration/validate-integration.test.mjs +77 -8
- package/api/integration/validate-integration.type.d.mts +8 -0
- package/api/integration/validate-integration.type.mjs +3 -1
- package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
- package/api/integration/validateIntegration.doc.mjs +4 -2
- package/api/search/_adapter.d.mts +11 -0
- package/api/search/_adapter.mjs +25 -0
- package/api/search/search.d.mts +73 -13
- package/api/search/search.doc.mjs +8 -3
- package/api/search/search.domain-priority.test.mjs +108 -18
- package/api/search/search.mjs +541 -52
- package/api/search/search.test.mjs +143 -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 +1 -1
- package/api/template/template-integration.test.mjs +1 -1
- 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.mjs +70 -14
- 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/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/next/index.mjs +1 -11
- package/assets/codemods/transforms/v0.7.2/index.mjs +20 -0
- package/assets/discover/official-packages.json +367 -0
- package/assets/docs/author-a-theme.doc.mjs +2 -2
- package/assets/docs/browser-support.doc.mjs +1 -1
- package/assets/docs/getting-started.doc.mjs +23 -3
- package/assets/docs/styling-overview.doc.mjs +1 -1
- package/assets/docs/theme.doc.mjs +1 -1
- package/assets/docs/tree/add-a-component.doc.mjs +12 -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 +6 -18
- 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 +8 -3
- package/assets/docs/tree/check-your-docs.doc.mjs +30 -13
- package/assets/docs/tree/checks.doc.mjs +17 -17
- 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 +3 -5
- package/assets/docs/tree/component-imports.doc.mjs +13 -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 +2 -2
- 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 +6 -5
- 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 +3 -7
- 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 +52 -26
- 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 +9 -11
- 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 +14 -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 +22 -14
- 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 +9 -9
- package/assets/docs/tree/who-answers.doc.mjs +119 -0
- package/assets/docs/tree/write-the-template-file.doc.mjs +5 -5
- package/assets/docs/working-with-ai.doc.mjs +23 -9
- 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 +29 -26
- package/authoring/doctypes/component/type.ts +15 -5
- 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/template.doc.mjs +2 -2
- 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 +1 -0
- package/authoring/integration/integration.doc.mjs +22 -5
- package/authoring/integration/parse.test.mjs +11 -0
- package/authoring/integration/schema.d.mts +14 -3
- package/authoring/integration/schema.mjs +33 -2
- package/authoring/integration/type.ts +8 -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 +14 -2
- package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
- package/clients/cli/commands/build-theme.mjs +25 -12
- 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 +7 -3
- 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 +13 -2
- package/clients/cli/commands/doctor-integration.test.mjs +52 -4
- package/clients/cli/commands/doctor.doc.mjs +12 -2
- package/clients/cli/commands/doctor.mjs +102 -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 +10 -2
- package/clients/cli/commands/integration-check.test.mjs +175 -1
- 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.mjs +15 -9
- 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/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 +1 -0
- 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 +111 -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 +145 -8
- package/foundation/config/project.test.mjs +66 -0
- package/foundation/config/theme-state.mjs +5 -4
- package/foundation/discovery/authoring-self-docs.mjs +1 -1
- package/foundation/discovery/cli-self-docs.mjs +20 -3
- package/foundation/discovery/cli-self-docs.test.mjs +3 -2
- package/foundation/discovery/component-replacement.mjs +2 -1
- 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 +1 -1
- package/foundation/discovery/doc-types.mjs +15 -8
- package/foundation/discovery/doc-types.test.mjs +94 -2
- package/foundation/discovery/docs-discovery.d.mts +7 -0
- package/foundation/discovery/docs-discovery.mjs +26 -2
- package/foundation/discovery/project-typescript.d.mts +11 -2
- package/foundation/discovery/project-typescript.mjs +32 -4
- package/foundation/discovery/prop-drift.d.mts +26 -7
- package/foundation/discovery/prop-drift.mjs +173 -8
- package/foundation/discovery/prop-drift.test.mjs +120 -2
- 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-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-text.mjs +1 -1
- package/foundation/discovery/type-text.test.mjs +1 -1
- package/foundation/doc-compiler/doc-loads.test.mjs +42 -2
- package/foundation/doc-compiler/inputs.mjs +4 -1
- package/foundation/doc-compiler/links.d.mts +32 -0
- package/foundation/doc-compiler/links.mjs +163 -26
- 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 +50 -2
- 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 +17 -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/package.json +11 -11
- package/scripts/postinstall.mjs +24 -5
- /package/assets/codemods/transforms/{next → v0.7.2}/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +0 -0
- /package/assets/codemods/transforms/{next → v0.7.2}/migrate-list-edge-compensation-to-edge.mjs +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/codemods`: add codemods to an
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/codemods`: add codemods to an
|
|
5
5
|
* integration package, and know which of them `astryx upgrade` runs in an app.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -27,7 +27,7 @@ export const docs = {
|
|
|
27
27
|
{
|
|
28
28
|
type: 'code',
|
|
29
29
|
lang: 'bash',
|
|
30
|
-
code: '
|
|
30
|
+
code: 'astryx integration add codemod rename-delay --to 0.7.0',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
type: 'code',
|
|
@@ -82,7 +82,7 @@ export default {
|
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
type: 'prose',
|
|
85
|
-
text: "`type: 'code'` rewrites the app's source files that match `fileExtensions`. `type: 'config'` rewrites the app's `astryx.config` file instead, and runs before code codemods. `title` shows in the upgrade output, and `api.jscodeshift` is a jscodeshift instance for the file. Every field is in {@link
|
|
85
|
+
text: "`type: 'code'` rewrites the app's source files that match `fileExtensions`. `type: 'config'` rewrites the app's `astryx.config` file instead, and runs before code codemods. `title` shows in the upgrade output, and `api.jscodeshift` is a jscodeshift instance for the file. Every field is in {@link schema:codemod}.",
|
|
86
86
|
},
|
|
87
87
|
],
|
|
88
88
|
},
|
|
@@ -116,22 +116,22 @@ export default {
|
|
|
116
116
|
type: 'code',
|
|
117
117
|
lang: 'bash',
|
|
118
118
|
code: `# Preview each codemod and the files it would change
|
|
119
|
-
|
|
119
|
+
astryx upgrade --from 0.6.3 --integration @acme/astryx-widgets
|
|
120
120
|
# Write the changes
|
|
121
|
-
|
|
121
|
+
astryx upgrade --from 0.6.3 --integration @acme/astryx-widgets --apply`,
|
|
122
122
|
},
|
|
123
123
|
{
|
|
124
124
|
type: 'code',
|
|
125
125
|
lang: 'text',
|
|
126
126
|
code: `Integrations: @acme/astryx-widgets
|
|
127
|
-
|
|
127
|
+
<n> codemods to run (dry run)
|
|
128
128
|
Applying integration codemods...
|
|
129
129
|
Rename AcmeCarousel delay to interval (v0.7.0, @acme/astryx-widgets)
|
|
130
130
|
! ~ src/Hero.tsx (would change)`,
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
type: 'prose',
|
|
134
|
-
text: "
|
|
134
|
+
text: "`<n>` counts Core's codemods for the same versions too: they run first and print above `Integrations:`. To run only yours, as when you test it, add `--codemod rename-delay`.",
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
type: 'prose',
|
|
@@ -143,5 +143,15 @@ Applying integration codemods...
|
|
|
143
143
|
},
|
|
144
144
|
],
|
|
145
145
|
},
|
|
146
|
+
{
|
|
147
|
+
id: 'global-mode',
|
|
148
|
+
title: 'In global mode',
|
|
149
|
+
content: [
|
|
150
|
+
{
|
|
151
|
+
type: 'prose',
|
|
152
|
+
text: "In global mode: inside an app, `upgrade` runs with the release equal to the app's Core, whichever copy of the CLI the user starts, and only the codemods of integrations the app installs run. Outside a project, `upgrade` lists codemods and migrates nothing. See {@link namespace:global} and {@link command:upgrade}.",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
},
|
|
146
156
|
],
|
|
147
157
|
};
|
|
@@ -13,7 +13,7 @@ export const docs = {
|
|
|
13
13
|
name: 'commands',
|
|
14
14
|
title: 'Commands',
|
|
15
15
|
summary:
|
|
16
|
-
'Every command and subcommand: usage, options, examples, and
|
|
16
|
+
'Every command and subcommand: usage, options, examples, exit codes, and what it does outside a project.',
|
|
17
17
|
keywords: ['commands', 'usage', 'options', 'flags'],
|
|
18
18
|
placement: {parent: 'namespace:cli', slot: 'reference', order: 10},
|
|
19
19
|
slots: {
|
|
@@ -22,4 +22,10 @@ export const docs = {
|
|
|
22
22
|
adopts: [
|
|
23
23
|
{source: {group: 'cli/commands', kinds: ['command']}, into: 'commands'},
|
|
24
24
|
],
|
|
25
|
+
blocks: [
|
|
26
|
+
{
|
|
27
|
+
type: 'prose',
|
|
28
|
+
text: "In global mode: each command declares its behavior outside projects (`outsideProject`). Most answer like a new project; some write nothing and name the project they need; `doctor`, `init`, and `upgrade` behave differently. Commands with different behavior describe it in their `In global mode:` note, and CLI tests run each command in an empty folder against its declared value. Inside a project, the project's Astryx release runs every command, whichever astryx command you type. See {@link namespace:global}.",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
25
31
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/describe-the-component/component-family`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/describe-the-component/component-family`:
|
|
5
5
|
* author one ComponentDoc for several public exports in a component family.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -38,10 +38,8 @@ export const docs = {
|
|
|
38
38
|
],
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
type: '
|
|
42
|
-
|
|
43
|
-
projection: {fields: ['components']},
|
|
44
|
-
presentation: 'full',
|
|
41
|
+
type: 'prose',
|
|
42
|
+
text: 'Every field is in {@link schema:component-doc}.',
|
|
45
43
|
},
|
|
46
44
|
],
|
|
47
45
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/component-imports`: make an
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/component-imports`: make an
|
|
5
5
|
* integration component's documented import resolve from the packed package.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -51,12 +51,12 @@ export const docs = {
|
|
|
51
51
|
content: [
|
|
52
52
|
{
|
|
53
53
|
type: 'prose',
|
|
54
|
-
text: '`integration verify`
|
|
54
|
+
text: '`integration verify` unpacks the packed package into a temporary app, resolves each documented import, and checks that the module exports the documented component name. Its `--json` output names each failure by code.',
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
type: 'code',
|
|
58
58
|
lang: 'bash',
|
|
59
|
-
code: '
|
|
59
|
+
code: 'astryx integration verify',
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
type: 'list',
|
|
@@ -73,5 +73,15 @@ export const docs = {
|
|
|
73
73
|
},
|
|
74
74
|
],
|
|
75
75
|
},
|
|
76
|
+
{
|
|
77
|
+
id: 'global-mode',
|
|
78
|
+
title: 'In global mode',
|
|
79
|
+
content: [
|
|
80
|
+
{
|
|
81
|
+
type: 'prose',
|
|
82
|
+
text: "In global mode: outside a project, imports the CLI prints name packages installed for the computer, which a new app must install before it can build them; inside a project, only packages the project installs are printed. See {@link namespace:global} and {@link generic:global-integrations}.",
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
76
86
|
],
|
|
77
87
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components`: guides for adding and
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components`: guides for adding and
|
|
5
5
|
* documenting components in an integration package.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -20,4 +20,10 @@ export const docs = {
|
|
|
20
20
|
accepts: {kinds: ['generic', 'namespace']},
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
|
+
blocks: [
|
|
24
|
+
{
|
|
25
|
+
type: 'prose',
|
|
26
|
+
text: 'In global mode: components from an integration installed for the computer show up outside projects; inside a project, only components from integrations the project installs. See {@link namespace:global} and {@link generic:global-integrations}.',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
23
29
|
};
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file `astryx docs global/computer-agent-guide`: the one skill file the global
|
|
5
|
+
* install keeps for the whole computer, its links, and `init --user` (spec
|
|
6
|
+
* AST-081 FR8).
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
10
|
+
export const docs = {
|
|
11
|
+
type: 'generic',
|
|
12
|
+
name: 'computer-agent-guide',
|
|
13
|
+
placement: {
|
|
14
|
+
parent: 'namespace:global',
|
|
15
|
+
slot: 'guides',
|
|
16
|
+
order: 5,
|
|
17
|
+
},
|
|
18
|
+
title: 'The agent guide on your computer',
|
|
19
|
+
category: 'guide',
|
|
20
|
+
keywords: [
|
|
21
|
+
'agent guide',
|
|
22
|
+
'init --user',
|
|
23
|
+
'SKILL.md',
|
|
24
|
+
'skills',
|
|
25
|
+
'remove-agents',
|
|
26
|
+
'claude',
|
|
27
|
+
'codex',
|
|
28
|
+
'cursor',
|
|
29
|
+
'agents',
|
|
30
|
+
'other agents',
|
|
31
|
+
'symlink',
|
|
32
|
+
'link skills',
|
|
33
|
+
],
|
|
34
|
+
description:
|
|
35
|
+
'Your global install keeps one short Astryx skill in your home folder and links it into the folders agent tools read, so agents anywhere know Astryx is there. `astryx init --user` writes it now or turns it off.',
|
|
36
|
+
sections: [
|
|
37
|
+
{
|
|
38
|
+
id: 'what',
|
|
39
|
+
title: 'What it is',
|
|
40
|
+
content: [
|
|
41
|
+
{
|
|
42
|
+
type: 'prose',
|
|
43
|
+
text: "A project's agent docs reach only agents working in that project. Your global install also keeps one skill file, `~/.agents/skills/astryx/SKILL.md`, which most coding agents read. It tells agents that Astryx is on this computer, when it is relevant (building or changing UI), and to start with `astryx search`. It names no version, so it never goes stale. Inside a project, the project's own agent docs come first.",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: 'prose',
|
|
47
|
+
text: 'It is written in the background on the first run and again after you upgrade, so no command waits for it. Installing the package does not write it, because some package managers skip install scripts.',
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'where',
|
|
53
|
+
title: 'Where agents find it',
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: 'prose',
|
|
57
|
+
text: "Agents that read only their own skills folder get a link to the skill's folder, so they read the same one file: a folder symlink with a relative target (a junction on Windows, or a copy where neither can be made). Continue's scanner skips links, so it gets a copy, refreshed with the file:",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: 'table',
|
|
61
|
+
headers: ['Folder', 'When'],
|
|
62
|
+
rows: [
|
|
63
|
+
['`~/.claude/skills/astryx`', 'Always'],
|
|
64
|
+
['`~/.kiro/skills/astryx`', 'When `~/.kiro` exists'],
|
|
65
|
+
[
|
|
66
|
+
'`~/.codeium/windsurf/skills/astryx`',
|
|
67
|
+
'When `~/.codeium/windsurf` exists',
|
|
68
|
+
],
|
|
69
|
+
['`~/.letta/skills/astryx`', 'When `~/.letta` exists'],
|
|
70
|
+
[
|
|
71
|
+
'`~/Library/Developer/Xcode/CodingAssistant/ClaudeAgentConfig/skills/astryx`',
|
|
72
|
+
"When Xcode's coding assistant folder exists",
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
'`~/.config/agents/skills/astryx`',
|
|
76
|
+
'When `~/.config/agents/skills` exists',
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
'`~/.continue/skills/astryx` (a copy)',
|
|
80
|
+
'When `~/.continue` exists',
|
|
81
|
+
],
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'prose',
|
|
86
|
+
text: "Astryx never replaces anything it did not create at one of these folders, and never writes a folder another tool manages; `astryx doctor` names any it skipped, and any link whose skill folder is missing, as in a container that mounts only one agent's folder.",
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 'cloud-and-apps',
|
|
92
|
+
title: 'Cloud agents and apps',
|
|
93
|
+
content: [
|
|
94
|
+
{
|
|
95
|
+
type: 'list',
|
|
96
|
+
style: 'unordered',
|
|
97
|
+
items: [
|
|
98
|
+
"Cloud and background agents read only the repository, so the project's own agent docs, the block `astryx init` writes into AGENTS.md or CLAUDE.md, are what reach them.",
|
|
99
|
+
'Apps that take an uploaded skill: upload `~/.agents/skills/astryx/SKILL.md`, or a zip of its folder.',
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: 'other-agents',
|
|
106
|
+
title: 'Other agents',
|
|
107
|
+
content: [
|
|
108
|
+
{
|
|
109
|
+
type: 'prose',
|
|
110
|
+
text: 'If your agent reads skills from another folder, link it to the skill:',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'code',
|
|
114
|
+
lang: 'bash',
|
|
115
|
+
code: "ln -s ~/.agents/skills/astryx <your agent's skills folder>/astryx",
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'prose',
|
|
119
|
+
text: 'On Windows, in PowerShell:',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'code',
|
|
123
|
+
lang: 'powershell',
|
|
124
|
+
code: 'New-Item -ItemType Junction -Path "<your agent\'s skills folder>\\astryx" -Target "$HOME\\.agents\\skills\\astryx"',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
id: 'choose',
|
|
130
|
+
title: 'Write it now, or turn it off',
|
|
131
|
+
content: [
|
|
132
|
+
{
|
|
133
|
+
type: 'code',
|
|
134
|
+
lang: 'bash',
|
|
135
|
+
code: 'astryx init --user\nastryx init --user --remove-agents',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'list',
|
|
139
|
+
style: 'unordered',
|
|
140
|
+
items: [
|
|
141
|
+
'`init --user` writes the file and the links now.',
|
|
142
|
+
'`--remove-agents` removes the file and every link Astryx made, and turns it off until you run `astryx init --user` again.',
|
|
143
|
+
'A file you edited is never overwritten or removed; delete it to get the current text.',
|
|
144
|
+
'Outside a project, `astryx doctor` says whether the skill is there, current, edited, or turned off, and where it is linked.',
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
id: 'more',
|
|
151
|
+
title: 'More on global mode',
|
|
152
|
+
content: [
|
|
153
|
+
{
|
|
154
|
+
type: 'prose',
|
|
155
|
+
text: "This page is part of {@link namespace:global}, which explains what global mode is and how each part works. A project's own agent docs: {@link command:init}.",
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file `astryx docs global/computer-integrations`: integrations installed next to the
|
|
5
|
+
* global install, where they work, and how to see them (spec AST-081 FR12).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
9
|
+
export const docs = {
|
|
10
|
+
type: 'generic',
|
|
11
|
+
name: 'computer-integrations',
|
|
12
|
+
placement: {
|
|
13
|
+
parent: 'namespace:global',
|
|
14
|
+
slot: 'guides',
|
|
15
|
+
order: 6,
|
|
16
|
+
},
|
|
17
|
+
title: 'Integrations installed globally',
|
|
18
|
+
category: 'guide',
|
|
19
|
+
keywords: [
|
|
20
|
+
'global integration',
|
|
21
|
+
'install an integration globally',
|
|
22
|
+
'npm i -g integration',
|
|
23
|
+
'integration outside a project',
|
|
24
|
+
'installed for this computer',
|
|
25
|
+
],
|
|
26
|
+
description:
|
|
27
|
+
'Integrations installed next to your global install work in folders outside any project. Inside a project, only the integrations the project installs work, and the others are listed as ones you could add.',
|
|
28
|
+
sections: [
|
|
29
|
+
{
|
|
30
|
+
id: 'install',
|
|
31
|
+
title: 'Install one globally',
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: 'prose',
|
|
35
|
+
text: 'Install the integration the same way you installed the CLI, so the two sit side by side:',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
type: 'code',
|
|
39
|
+
lang: 'bash',
|
|
40
|
+
code: 'npm i -g @astryxdesign/cli @acme/widgets\n# or: pnpm add -g · yarn global add · bun add -g',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
type: 'prose',
|
|
44
|
+
text: 'A tool that installs the CLI together with integrations in one folder, and runs the CLI from there, counts the same way. `npx` and the cache of project versions never count.',
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 'outside',
|
|
50
|
+
title: 'Outside a project, they work',
|
|
51
|
+
content: [
|
|
52
|
+
{
|
|
53
|
+
type: 'prose',
|
|
54
|
+
text: 'In a folder outside any project, Astryx loads each integration installed next to your global install the way a project loads its own: its components, templates, docs, themes, and discover source show up, and a command name it declares starts the commands Astryx prints. One whose `@astryxdesign/core` or `@astryxdesign/cli` peer range leaves out your global version is skipped, and `astryx doctor` says why.',
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'inside',
|
|
60
|
+
title: "Inside a project, only the project's",
|
|
61
|
+
content: [
|
|
62
|
+
{
|
|
63
|
+
type: 'prose',
|
|
64
|
+
text: "A project's answers must match what it installs: a component from a package it does not install would not build. So inside a project, an integration installed only globally adds nothing. `astryx discover` lists it among the packages the project could add, with the project's install command, when it supports the project's version and loads. When the project installs the same integration, the project's copy is the one used.",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'check',
|
|
70
|
+
title: 'See which ones work',
|
|
71
|
+
content: [
|
|
72
|
+
{
|
|
73
|
+
type: 'list',
|
|
74
|
+
style: 'unordered',
|
|
75
|
+
items: [
|
|
76
|
+
'Outside a project, `astryx doctor` lists the global integrations it uses and warns about each it skips.',
|
|
77
|
+
'Inside a project, `astryx doctor` and `astryx discover` list the ones the project could add.',
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: 'more',
|
|
84
|
+
title: 'More on global mode',
|
|
85
|
+
content: [
|
|
86
|
+
{
|
|
87
|
+
type: 'prose',
|
|
88
|
+
text: 'This page is part of {@link namespace:global}, which explains what global mode is and how each part works. Building an integration: {@link generic:global-integrations}.',
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
};
|
|
@@ -9,15 +9,19 @@ export const docs = {
|
|
|
9
9
|
placement: {parent: 'namespace:building-blocks', slot: 'guides', order: 60},
|
|
10
10
|
title: 'Configuration',
|
|
11
11
|
summary:
|
|
12
|
-
'Set how your integration behaves in an app: agent guidance, debug and gap reports, and more as it grows.',
|
|
13
|
-
keywords: ['configuration', 'agent guidance', 'debug', 'gap reports'],
|
|
12
|
+
'Set how your integration behaves in an app: agent guidance, the command your users run, debug and gap reports, and more as it grows.',
|
|
13
|
+
keywords: ['configuration', 'agent guidance', 'cliCommand', 'debug', 'gap reports'],
|
|
14
14
|
slots: {
|
|
15
15
|
guides: {title: 'Configuration', accepts: {kinds: ['generic', 'namespace']}},
|
|
16
16
|
},
|
|
17
17
|
blocks: [
|
|
18
18
|
{
|
|
19
19
|
type: 'prose',
|
|
20
|
-
text:
|
|
20
|
+
text: "In global mode: installed for the computer, beside the global CLI, your package's manifest is read as it is in a project and applies in folders outside any project; peer ranges are checked against the global CLI's release. See {@link namespace:global} and {@link generic:global-integrations}.",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'prose',
|
|
24
|
+
text: 'Beyond the things you ship, an integration can set how it behaves in an app: the guidance it gives the AI agents working there, the command its users run the CLI with, and the record it keeps of each CLI run. Open one below to set it up.',
|
|
21
25
|
},
|
|
22
26
|
],
|
|
23
27
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/debug-and-gap-reports`: receive a record
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/configuration/debug-and-gap-reports`: receive a record
|
|
5
5
|
* of each CLI run with `debug`, and handle `astryx gap-report` with
|
|
6
6
|
* `gapReport`, both named exports of the integration manifest.
|
|
7
7
|
*/
|
|
@@ -23,7 +23,7 @@ export const docs = {
|
|
|
23
23
|
content: [
|
|
24
24
|
{
|
|
25
25
|
type: 'prose',
|
|
26
|
-
text: 'Export a `debug` function from `astryx.integration.mjs
|
|
26
|
+
text: 'Export a `debug` function from `astryx.integration.mjs`; the CLI calls it once per command run in an app loading your package.',
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
type: 'code',
|
|
@@ -44,7 +44,7 @@ export default {
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
type: 'prose',
|
|
47
|
-
text: 'The event is a `DebugEvent` with `command`, `outcome`, `exitCode`, `durationMs`, `error`, and more, its values scrubbed (`redacted: true`). Every field is in {@link
|
|
47
|
+
text: 'The event is a `DebugEvent` with `command`, `outcome`, `exitCode`, `durationMs`, `error`, and more, its values scrubbed (`redacted: true`). Every field is in {@link schema:debug-event}.',
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
type: 'prose',
|
|
@@ -52,11 +52,11 @@ export default {
|
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
type: 'prose',
|
|
55
|
-
text: "An app records every command only when its `astryx.config` names `integrations` or `debug`, as listing your package does. Otherwise your handler runs only for commands
|
|
55
|
+
text: "An app records every command only when its `astryx.config` names `integrations` or `debug`, as listing your package does. Otherwise your handler runs only for commands loading the app's project, such as `component` and `docs`, never for `--version` or a mistyped command. In an app whose config names neither word, those commands also print a stderr warning.",
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
type: 'prose',
|
|
59
|
-
text: '`debug` is a named export, not a manifest field, so
|
|
59
|
+
text: '`debug` is a named export, not a manifest field, so an older CLI ignores it and loads the rest of your manifest.',
|
|
60
60
|
},
|
|
61
61
|
],
|
|
62
62
|
},
|
|
@@ -75,7 +75,7 @@ export default {
|
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
type: 'prose',
|
|
78
|
-
text: '
|
|
78
|
+
text: 'Your handler then no longer runs in that app.',
|
|
79
79
|
},
|
|
80
80
|
],
|
|
81
81
|
},
|
|
@@ -104,22 +104,11 @@ export const gapReport = {
|
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
type: 'prose',
|
|
107
|
-
text: 'Every handler in the app gets every report, so check `report.target.package` and skip reports about other packages.
|
|
107
|
+
text: 'Every handler in the app gets every report, so check `report.target.package` and skip reports about other packages.',
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
|
-
type: '
|
|
111
|
-
|
|
112
|
-
rows: [
|
|
113
|
-
[
|
|
114
|
-
'`filed`',
|
|
115
|
-
'You created or queued the report. Return `url` or `message`.',
|
|
116
|
-
],
|
|
117
|
-
[
|
|
118
|
-
'`routed_only`',
|
|
119
|
-
'You point the caller to where to file it. `url` is required.',
|
|
120
|
-
],
|
|
121
|
-
['`skipped`', 'You chose not to act, for example on a duplicate.'],
|
|
122
|
-
],
|
|
110
|
+
type: 'prose',
|
|
111
|
+
text: 'Every field is in {@link schema:gap-report-handler}.',
|
|
123
112
|
},
|
|
124
113
|
{
|
|
125
114
|
type: 'prose',
|
|
@@ -138,7 +127,7 @@ export const gapReport = {
|
|
|
138
127
|
{
|
|
139
128
|
type: 'code',
|
|
140
129
|
lang: 'bash',
|
|
141
|
-
code: "
|
|
130
|
+
code: "astryx gap-report AcmeCarousel --category missing_variant --reason 'Need a vertical layout'",
|
|
142
131
|
},
|
|
143
132
|
{
|
|
144
133
|
type: 'code',
|
|
@@ -161,7 +150,7 @@ message: Rerun with --confirm-public to file this report.`,
|
|
|
161
150
|
content: [
|
|
162
151
|
{
|
|
163
152
|
type: 'prose',
|
|
164
|
-
text: "
|
|
153
|
+
text: "With no `gapReport` handler in the app, the CLI routes the report to the target package's manifest `issuesUrl`.",
|
|
165
154
|
},
|
|
166
155
|
{
|
|
167
156
|
type: 'list',
|
|
@@ -178,5 +167,35 @@ message: Rerun with --confirm-public to file this report.`,
|
|
|
178
167
|
},
|
|
179
168
|
],
|
|
180
169
|
},
|
|
170
|
+
{
|
|
171
|
+
id: 'choose-a-destination',
|
|
172
|
+
title: 'Let the person choose where a report goes',
|
|
173
|
+
content: [
|
|
174
|
+
{
|
|
175
|
+
type: 'prose',
|
|
176
|
+
text: 'When an app loads packages naming their own `issuesUrl`, a report can go to the default (the handlers, or the fallback above) or to one of those packages. `astryx gap-report --list-categories` and the receipt of a report filed without `--to` list every destination, with a line telling the agent to ask the person.',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'list',
|
|
180
|
+
style: 'unordered',
|
|
181
|
+
items: [
|
|
182
|
+
'An agent asks the person where to file. It never picks a package destination on its own.',
|
|
183
|
+
"`--to <package>` carries the person's choice: the report goes only to that package's `issuesUrl`, under the same `--confirm-public` rule, and no handler runs.",
|
|
184
|
+
'Without a choice, leave out `--to`; the report goes to the default.',
|
|
185
|
+
'A `--to` that names no destination fails before anything is sent and lists the destinations.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: 'global-mode',
|
|
192
|
+
title: 'In global mode',
|
|
193
|
+
content: [
|
|
194
|
+
{
|
|
195
|
+
type: 'prose',
|
|
196
|
+
text: 'In global mode: when users install your package for their computer, beside the global CLI, its `debug` function receives runs in folders outside any project too; inside a project, only if the project installs it. See {@link namespace:global} and {@link generic:global-integrations}.',
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
},
|
|
181
200
|
],
|
|
182
201
|
};
|
|
@@ -45,7 +45,7 @@ export const oceanTheme = defineTheme({
|
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
type: 'prose',
|
|
48
|
-
text: 'Local imports must stay inside the theme folder. One that leaves it, such as `../../shared/colors`, fails with `invalid_theme`, and
|
|
48
|
+
text: 'Local imports must stay inside the theme folder. One that leaves it, such as `../../shared/colors`, fails with `invalid_theme`, and every theme in the package disappears from `theme list`. `astryx theme template` writes a file that explains every `defineTheme` field. For the full token set and component theming, read {@link generic:author-a-theme}.',
|
|
49
49
|
},
|
|
50
50
|
],
|
|
51
51
|
},
|
|
@@ -55,13 +55,14 @@ export const oceanTheme = defineTheme({
|
|
|
55
55
|
content: [
|
|
56
56
|
{
|
|
57
57
|
type: 'prose',
|
|
58
|
-
text: 'To base a theme on an existing one, `extends` it: import the base theme and override only the tokens you change. The derived theme keeps a live link to the base and
|
|
58
|
+
text: 'To base a theme on an existing one, `extends` it: import the base theme and override only the tokens you change. Add the derived theme with `integration add theme ocean-contrast`, and import the base from its built package export, since local imports cannot leave the theme folder. The derived theme keeps a live link to the base and picks up its later changes when you rebuild it — unlike `--from`, which forks a copy ({@link generic:add-a-theme}).',
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
type: 'code',
|
|
62
62
|
lang: 'ts',
|
|
63
|
-
code:
|
|
64
|
-
import {
|
|
63
|
+
code: `// themes/ocean-contrast/oceanContrastTheme.ts
|
|
64
|
+
import {defineTheme} from '@astryxdesign/core/theme';
|
|
65
|
+
import {oceanTheme} from '@acme/astryx-widgets/themes/ocean';
|
|
65
66
|
|
|
66
67
|
export const oceanContrastTheme = defineTheme({
|
|
67
68
|
name: 'ocean-contrast',
|
|
@@ -79,7 +80,7 @@ export const oceanContrastTheme = defineTheme({
|
|
|
79
80
|
content: [
|
|
80
81
|
{
|
|
81
82
|
type: 'prose',
|
|
82
|
-
text: 'Each `[light, dark]` pair compiles to a `light-dark()` value, which switches only colors. Give it colors. For a value that is not a plain color — a gradient — put `light-dark()` on each color stop, not around the whole value:
|
|
83
|
+
text: 'Each `[light, dark]` pair compiles to a `light-dark()` value, which switches only colors. Give it colors. For a value that is not a plain color — a gradient — put `light-dark()` on each color stop, not around the whole value: `light-dark()` takes two colors, so wrapping whole gradients makes the value invalid where the token is used, and `theme build` does not warn.',
|
|
83
84
|
},
|
|
84
85
|
],
|
|
85
86
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/describe-the-component`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/describe-the-component`:
|
|
5
5
|
* choose and maintain the ComponentDoc shape that matches a component's public
|
|
6
6
|
* source.
|
|
7
7
|
*/
|
|
@@ -51,7 +51,7 @@ export const docs = {
|
|
|
51
51
|
{
|
|
52
52
|
type: 'code',
|
|
53
53
|
lang: 'bash',
|
|
54
|
-
code: '
|
|
54
|
+
code: 'astryx component AcmeCarousel',
|
|
55
55
|
},
|
|
56
56
|
],
|
|
57
57
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/docs`: the guides to
|
|
5
|
-
* integration package, which join the same docs tree as
|
|
6
|
-
* (spec:AST-046, spec:AST-047).
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/docs`: the guides to
|
|
5
|
+
* writing docs for an integration package, which join the same docs tree as
|
|
6
|
+
* the CLI's own (spec:AST-046, spec:AST-047).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/** @type {import('@astryxdesign/cli/authoring').NamespaceDoc} */
|
|
@@ -18,4 +18,10 @@ export const docs = {
|
|
|
18
18
|
slots: {
|
|
19
19
|
guides: {title: 'Guides', accepts: {kinds: ['generic']}},
|
|
20
20
|
},
|
|
21
|
+
blocks: [
|
|
22
|
+
{
|
|
23
|
+
type: 'prose',
|
|
24
|
+
text: 'In global mode: docs from an integration installed for the computer show up outside projects; inside a project, only docs from integrations the project installs. See {@link namespace:global} and {@link generic:global-integrations}.',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
21
27
|
};
|