@astryxdesign/cli 0.7.2-canary.fe2c655 → 0.7.3-canary.02f5fe4
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 +216 -162
- package/api/build/_adapter.d.mts +66 -0
- package/api/build/_adapter.mjs +139 -4
- package/api/build/blocks/blocks.d.mts +92 -0
- package/api/build/blocks/blocks.mjs +528 -0
- package/api/build/blocks/blocks.test.mjs +238 -0
- package/api/build/blocks/blocks.weights.json +1 -0
- package/api/build/build.doc.mjs +4 -0
- package/api/build/build.mjs +25 -6
- package/api/build/build.type.mjs +1 -1
- package/api/build/help/help.mjs +1 -1
- package/api/build/kit/answer.d.mts +18 -0
- package/api/build/kit/answer.mjs +195 -0
- package/api/build/kit/answer.test.mjs +108 -0
- package/api/build/kit/kind.d.mts +25 -0
- package/api/build/kit/kind.mjs +170 -0
- package/api/build/kit/kit.d.mts +2 -4
- package/api/build/kit/kit.mjs +8 -406
- package/api/build/kit/rank.d.mts +3 -32
- package/api/build/kit/rank.mjs +25 -342
- package/api/build/kit/rank.test.mjs +2 -1
- package/api/build/kit/signals.d.mts +79 -0
- package/api/build/kit/signals.mjs +295 -0
- package/api/build/kit/start.d.mts +32 -0
- package/api/build/kit/start.mjs +163 -0
- package/api/build/kit/words.d.mts +72 -0
- package/api/build/kit/words.mjs +202 -0
- package/api/build/tree.d.mts +20 -0
- package/api/build/tree.mjs +53 -0
- package/api/build/tree.test.mjs +185 -0
- package/api/build/tree.weights.json +1 -0
- package/api/component/_adapter.d.mts +72 -1
- package/api/component/_adapter.mjs +251 -23
- package/api/component/component-replacement.test.mjs +1 -0
- package/api/component/component.doc.mjs +6 -1
- package/api/component/component.mjs +97 -16
- package/api/component/component.test.mjs +95 -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 +131 -12
- package/api/discover/_adapter.mjs +520 -34
- package/api/discover/_adapter.test.mjs +641 -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 +120 -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 +76 -2
- package/api/docs/_adapter.mjs +630 -34
- package/api/docs/docs-homes.test.mjs +127 -0
- package/api/docs/docs.doc.mjs +5 -4
- package/api/docs/docs.mjs +2 -1
- package/api/docs/docs.test.mjs +39 -20
- package/api/docs/integration-tree.test.mjs +42 -20
- package/api/docs/integrationDocs.test.mjs +125 -1
- package/api/docs/list/list.mjs +12 -2
- package/api/docs/namespace-section.test.mjs +6 -6
- package/api/docs/reference-blocks.test.mjs +3 -5
- package/api/doctor/_adapter.d.mts +128 -0
- package/api/doctor/_adapter.mjs +253 -4
- package/api/doctor/doctor.d.mts +217 -0
- package/api/doctor/doctor.doc.mjs +3 -2
- package/api/doctor/doctor.mjs +691 -52
- package/api/doctor/doctor.test.mjs +267 -18
- 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/hook.mjs +1 -1
- 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 +45 -10
- package/api/init/init.mjs +28 -4
- package/api/init/init.test.mjs +18 -2
- package/api/init/init.type.d.mts +50 -5
- package/api/init/init.type.mjs +39 -5
- package/api/init/remove/remove.mjs +17 -4
- package/api/init/remove/remove.test.mjs +114 -2
- package/api/init/run/run.d.mts +1 -1
- package/api/init/run/run.mjs +86 -12
- 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 +53 -0
- package/api/integration/_adapter.mjs +132 -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 +192 -14
- package/api/integration/authoring-checks.test.mjs +1028 -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 +486 -123
- package/api/integration/pack-check.test.mjs +817 -10
- package/api/integration/validate-integration-case-disk.test.mjs +111 -0
- package/api/integration/validate-integration-fixes.test.mjs +73 -5
- package/api/integration/validate-integration-gaps.test.mjs +1975 -0
- package/api/integration/validate-integration.d.mts +23 -2
- package/api/integration/validate-integration.mjs +358 -45
- package/api/integration/validate-integration.test.mjs +88 -8
- package/api/integration/validate-integration.type.d.mts +105 -0
- package/api/integration/validate-integration.type.mjs +79 -1
- package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
- package/api/integration/validateIntegration.doc.mjs +19 -3
- package/api/search/ORDERING.md +28 -0
- package/api/search/_adapter.d.mts +91 -0
- package/api/search/_adapter.mjs +172 -0
- package/api/search/_adapter.test.mjs +173 -0
- package/api/search/_candidate-score.d.mts +40 -0
- package/api/search/_candidate-score.mjs +238 -0
- package/api/search/_cards.json +6098 -0
- package/api/search/_compound.d.mts +50 -0
- package/api/search/_compound.mjs +170 -0
- package/api/search/_doc-searcher.d.mts +4 -0
- package/api/search/_doc-searcher.mjs +23 -0
- package/api/search/_doc-searcher.test.mjs +36 -0
- package/api/search/_doc-searcher.weights.json +1 -0
- package/api/search/_doc-text.d.mts +30 -0
- package/api/search/_doc-text.mjs +87 -0
- package/api/search/_entries.d.mts +63 -0
- package/api/search/_entries.mjs +232 -0
- package/api/search/_entries.test.mjs +48 -0
- package/api/search/_features.d.mts +35 -0
- package/api/search/_features.mjs +155 -0
- package/api/search/_gather-components.d.mts +26 -0
- package/api/search/_gather-components.mjs +284 -0
- package/api/search/_gather-docs.d.mts +20 -0
- package/api/search/_gather-docs.mjs +254 -0
- package/api/search/_gather-hooks.d.mts +12 -0
- package/api/search/_gather-hooks.mjs +52 -0
- package/api/search/_gather-templates.d.mts +25 -0
- package/api/search/_gather-templates.mjs +107 -0
- package/api/search/_lexical.d.mts +135 -0
- package/api/search/_lexical.mjs +351 -0
- package/api/search/_main-searcher.d.mts +19 -0
- package/api/search/_main-searcher.mjs +115 -0
- package/api/search/_main-searcher.test.mjs +106 -0
- package/api/search/_main-searcher.weights.json +1 -0
- package/api/search/_module-doc.d.mts +32 -0
- package/api/search/_module-doc.mjs +78 -0
- package/api/search/_order.d.mts +32 -0
- package/api/search/_order.mjs +162 -0
- package/api/search/_order.test.mjs +72 -0
- package/api/search/_priority.d.mts +50 -0
- package/api/search/_priority.mjs +139 -0
- package/api/search/_query-words.d.mts +25 -0
- package/api/search/_query-words.mjs +92 -0
- package/api/search/_query.d.mts +65 -0
- package/api/search/_query.mjs +176 -0
- package/api/search/_result.d.mts +97 -0
- package/api/search/_result.mjs +150 -0
- package/api/search/_score.d.mts +60 -0
- package/api/search/_score.mjs +283 -0
- package/api/search/_synonyms.d.mts +21 -0
- package/api/search/_synonyms.mjs +67 -0
- package/api/search/_template-searcher.d.mts +4 -0
- package/api/search/_template-searcher.mjs +23 -0
- package/api/search/_template-searcher.test.mjs +40 -0
- package/api/search/_template-searcher.weights.json +1 -0
- package/api/search/_titles.d.mts +33 -0
- package/api/search/_titles.mjs +65 -0
- package/api/search/_words.d.mts +64 -0
- package/api/search/_words.mjs +157 -0
- package/api/search/search.d.mts +22 -236
- package/api/search/search.doc.mjs +14 -7
- 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 +59 -1904
- package/api/search/search.test.mjs +193 -15
- package/api/search/search.type.d.mts +20 -2
- package/api/search/search.type.mjs +12 -2
- package/api/search/tree.d.mts +15 -0
- package/api/search/tree.mjs +40 -0
- package/api/search/tree.test.mjs +66 -0
- package/api/search/tree.weights.json +1 -0
- 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.mjs +5 -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 +21 -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 +97 -11
- package/api/upgrade/_adapter.mjs +315 -32
- package/api/upgrade/registry/registry.d.mts +10 -4
- package/api/upgrade/registry/registry.mjs +33 -16
- package/api/upgrade/registry/registry.test.mjs +85 -0
- package/api/upgrade/run/cli-behind-core.test.mjs +438 -0
- package/api/upgrade/run/run.d.mts +4 -2
- package/api/upgrade/run/run.mjs +48 -4
- package/api/upgrade/run/run.test.mjs +417 -3
- package/api/upgrade/status/status.d.mts +21 -5
- package/api/upgrade/status/status.mjs +45 -8
- package/api/upgrade/upgrade.doc.mjs +16 -8
- package/api/upgrade/upgrade.mjs +18 -3
- package/api/upgrade/upgrade.test.mjs +194 -0
- package/api/upgrade/upgrade.type.d.mts +28 -3
- package/api/upgrade/upgrade.type.mjs +24 -7
- 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.0/__tests__/validate-data-token-ownership.test.mjs +11 -0
- package/assets/codemods/transforms/v0.7.0/validate-data-token-ownership.mjs +3 -3
- 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 +5 -5
- package/assets/docs/browser-support.doc.mjs +1 -1
- package/assets/docs/getting-started.doc.mjs +26 -6
- package/assets/docs/is-my-code-good.doc.mjs +287 -0
- 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 +14 -4
- 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/api.doc.mjs +6 -0
- package/assets/docs/tree/authoring.doc.mjs +61 -0
- 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 +6 -2
- 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 +101 -0
- package/assets/docs/tree/cli-command.doc.mjs +142 -0
- package/assets/docs/tree/cli.doc.mjs +7 -1
- 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 +8 -4
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +41 -22
- package/assets/docs/tree/define-the-theme.doc.mjs +7 -6
- 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 +4 -4
- 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/{authoring.doc.mjs → tree/field-reference.doc.mjs} +4 -3
- package/assets/docs/tree/fonts-and-assets.doc.mjs +3 -3
- package/assets/docs/tree/generate-a-palette.doc.mjs +8 -6
- 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/help.doc.mjs +2 -2
- package/assets/docs/tree/host-entry.doc.mjs +128 -0
- package/assets/docs/tree/install-once.doc.mjs +105 -0
- 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 +54 -28
- 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/ship.doc.mjs +2 -2
- 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-grading-rubric.doc.mjs +17 -38
- 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 +5 -1
- package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
- package/assets/docs/tree/tokens-data.doc.mjs +2 -2
- 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 +15 -3
- package/assets/docs/tree/verify-packed-template.doc.mjs +3 -3
- package/assets/docs/tree/versioning.doc.mjs +14 -9
- package/assets/docs/tree/who-answers.doc.mjs +119 -0
- package/assets/docs/tree/write-good-templates.doc.mjs +1 -1
- 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/use-integrations.doc.mjs +120 -0
- package/assets/docs/working-with-ai.doc.mjs +70 -13
- package/assets/templates/themes/butter/butterTheme.ts +4 -2
- package/assets/templates/themes/stone/stoneTheme.ts +4 -2
- package/assets/templates/themes/y2k/y2kTheme.ts +4 -2
- 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 +10 -10
- 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 +13 -1
- package/clients/cli/bin/astryx.mjs +11 -65
- package/clients/cli/cli-command.test.mjs +166 -0
- package/clients/cli/command-result-coverage.test.mjs +6 -5
- 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.color-scheme.test.mjs +1 -1
- package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
- 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/{component/index.mjs → component.mjs} +37 -37
- package/clients/cli/commands/component.test.mjs +6 -6
- 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 +3 -2
- package/clients/cli/commands/docs.mjs +50 -20
- package/clients/cli/commands/docs.test.mjs +16 -16
- 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 +936 -3
- package/clients/cli/commands/doctor.doc.mjs +12 -2
- package/clients/cli/commands/doctor.mjs +332 -7
- package/clients/cli/commands/doctor.test.mjs +75 -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/{hook/index.mjs → hook.mjs} +22 -22
- package/clients/cli/commands/import-hint-correctness.test.mjs +1 -1
- package/clients/cli/commands/init.behavior.test.mjs +235 -1
- package/clients/cli/commands/init.doc.mjs +55 -10
- package/clients/cli/commands/init.flag-help.test.mjs +1 -0
- package/clients/cli/commands/init.mjs +2 -2
- 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 +489 -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 +2 -1
- package/clients/cli/commands/manifest.mjs +67 -0
- package/clients/cli/commands/outside-project.test.mjs +874 -0
- package/clients/cli/commands/postinstall.doc.mjs +23 -0
- package/clients/cli/commands/postinstall.mjs +31 -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 +180 -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/{build-theme.mjs → theme.mjs} +27 -14
- package/clients/cli/commands/upgrade.config-ordering.test.mjs +2 -1
- package/clients/cli/commands/upgrade.doc.mjs +26 -3
- 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.mjs +9 -2
- package/clients/cli/commands/upgrade.older-cli.test.mjs +160 -0
- package/clients/cli/commands/upgrade.subfolder-path.test.mjs +97 -0
- package/clients/cli/index.mjs +156 -100
- package/clients/cli/lib/cli-error.mjs +4 -1
- package/clients/cli/lib/component-format.mjs +1 -1
- package/clients/cli/lib/component-format.test.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +14 -9
- package/clients/cli/lib/exit-codes.test.mjs +5 -0
- 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 +37 -0
- package/clients/cli/lib/welcome-box.mjs +50 -0
- package/clients/cli/run.mjs +108 -0
- package/foundation/agent-docs/agent-doc-state.d.mts +67 -13
- package/foundation/agent-docs/agent-doc-state.mjs +123 -14
- package/foundation/agent-docs/agent-docs.d.mts +104 -15
- package/foundation/agent-docs/agent-docs.mjs +1028 -114
- package/foundation/agent-docs/agent-docs.path-safety.test.mjs +1239 -17
- package/foundation/agent-docs/agent-docs.test.mjs +683 -39
- package/foundation/agent-docs/computer-agent-text.d.mts +170 -0
- package/foundation/agent-docs/computer-agent-text.mjs +750 -0
- package/foundation/agent-docs/computer-agent-text.test.mjs +699 -0
- package/foundation/config/project.d.mts +35 -3
- package/foundation/config/project.mjs +243 -26
- package/foundation/config/project.test.mjs +122 -0
- package/foundation/config/theme-state.mjs +5 -4
- package/foundation/discovery/authoring-self-docs.d.mts +7 -0
- package/foundation/discovery/authoring-self-docs.mjs +17 -4
- package/foundation/discovery/authoring-self-docs.test.mjs +15 -3
- package/foundation/discovery/authoring-surface.d.mts +1 -1
- package/foundation/discovery/authoring-surface.mjs +2 -2
- package/foundation/discovery/authoring-surface.test.mjs +1 -1
- package/foundation/discovery/cli-self-docs.d.mts +2 -1
- package/foundation/discovery/cli-self-docs.mjs +22 -4
- package/foundation/discovery/cli-self-docs.test.mjs +3 -2
- package/foundation/discovery/component-discovery.d.mts +227 -10
- package/foundation/discovery/component-discovery.export-names.test.mjs +760 -0
- package/foundation/discovery/component-discovery.mjs +940 -57
- package/foundation/discovery/component-discovery.test.mjs +96 -0
- package/foundation/discovery/component-loader.d.mts +1 -1
- 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 +97 -3
- 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 +68 -0
- package/foundation/discovery/module-exports.mjs +609 -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 +38 -0
- package/foundation/discovery/runner-allowlist.mjs +51 -0
- package/foundation/discovery/runner-commands.d.mts +77 -0
- package/foundation/discovery/runner-commands.mjs +294 -0
- package/foundation/discovery/runner-commands.test.mjs +128 -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 +92 -6
- package/foundation/discovery/template-needs.mjs +6 -46
- package/foundation/discovery/theme-discovery.mjs +147 -3
- 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 +84 -10
- 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/read.mjs +59 -1
- package/foundation/doc-compiler/read.test.mjs +11 -2
- package/foundation/doc-compiler/split-topic-keywords.test.mjs +3 -2
- package/foundation/doc-compiler/tree.d.mts +32 -6
- package/foundation/doc-compiler/tree.mjs +107 -44
- package/foundation/doc-compiler/tree.test.mjs +14 -7
- 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 +122 -4
- package/foundation/fs/paths.mjs +675 -29
- package/foundation/fs/paths.test.mjs +439 -54
- package/foundation/fs/read-record.d.mts +18 -0
- package/foundation/fs/read-record.mjs +131 -0
- package/foundation/fs/read-record.test.mjs +77 -0
- package/foundation/integrations/autolink.d.mts +2 -1
- package/foundation/integrations/autolink.mjs +4 -13
- package/foundation/integrations/cli-peer-version.d.mts +36 -0
- package/foundation/integrations/cli-peer-version.mjs +132 -0
- package/foundation/integrations/cli-peer-version.test.mjs +354 -0
- package/foundation/integrations/computer-integrations.d.mts +81 -0
- package/foundation/integrations/computer-integrations.mjs +345 -0
- package/foundation/integrations/computer-integrations.test.mjs +292 -0
- package/foundation/integrations/contribution-inventory.d.mts +26 -20
- package/foundation/integrations/contribution-inventory.mjs +97 -8
- package/foundation/integrations/exports-subpaths.d.mts +57 -0
- package/foundation/integrations/exports-subpaths.mjs +113 -0
- package/foundation/integrations/integration-warnings.mjs +3 -2
- package/foundation/integrations/integration-warnings.test.mjs +8 -9
- package/foundation/integrations/integrations.d.mts +51 -1
- package/foundation/integrations/integrations.mjs +106 -4
- package/foundation/integrations/issue.ts +6 -0
- package/foundation/integrations/public-imports.d.mts +118 -0
- package/foundation/integrations/public-imports.mjs +1769 -0
- package/foundation/integrations/public-imports.test.mjs +1793 -0
- package/foundation/integrations/validate-contributions.d.mts +117 -0
- package/foundation/integrations/validate-contributions.mjs +1209 -14
- 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 +923 -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 +263 -0
- package/foundation/release/global-state.mjs +474 -0
- package/foundation/release/global-state.test.mjs +381 -0
- package/foundation/release/handoff.d.mts +79 -0
- package/foundation/release/handoff.e2e.test.mjs +278 -0
- package/foundation/release/handoff.mjs +524 -0
- package/foundation/release/lock-lease.d.mts +23 -0
- package/foundation/release/lock-lease.mjs +80 -0
- package/foundation/release/notices.d.mts +307 -0
- package/foundation/release/notices.mjs +707 -0
- package/foundation/release/notices.test.mjs +586 -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 +163 -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/route/route.d.mts +285 -0
- package/foundation/route/route.mjs +324 -0
- package/foundation/route/route.test.mjs +153 -0
- package/foundation/runtime/hosted-runtime.test.mjs +403 -0
- package/foundation/runtime/locked-versions.d.mts +32 -0
- package/foundation/runtime/locked-versions.mjs +65 -0
- package/foundation/runtime/package-root.d.mts +91 -0
- package/foundation/runtime/package-root.mjs +174 -0
- package/foundation/runtime/package-set.d.mts +62 -0
- package/foundation/runtime/package-set.mjs +130 -0
- package/foundation/runtime/package-set.test.mjs +432 -0
- package/foundation/text/string-utils.d.mts +2 -1
- package/foundation/text/string-utils.mjs +16 -5
- package/foundation/text/suggest-order.d.mts +72 -0
- package/foundation/text/suggest-order.mjs +363 -0
- package/foundation/text/suggest-order.test.mjs +259 -0
- 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/host/door-conformance.test.mjs +274 -0
- package/host/index.d.ts +116 -0
- package/host/index.mjs +295 -0
- package/host/index.test.mjs +302 -0
- package/package.json +16 -11
- package/scripts/postinstall.mjs +24 -5
- package/assets/docs/tree/integrations.doc.mjs +0 -40
|
@@ -157,13 +157,13 @@ describe('a section read on a namespace', () => {
|
|
|
157
157
|
expect(names).toContain('layout/side-panels');
|
|
158
158
|
expect(names.every(name => name.startsWith('layout/'))).toBe(true);
|
|
159
159
|
// At any depth: guides under nested namespaces are named, namespaces are not.
|
|
160
|
-
const
|
|
161
|
-
expect(
|
|
162
|
-
expect(
|
|
163
|
-
'
|
|
160
|
+
const authoring = await docs('authoring', 'zzzz-nope').catch(e => e);
|
|
161
|
+
expect(authoring.code).toBe('ERR_UNKNOWN_SECTION');
|
|
162
|
+
expect(authoring.suggestions.map(s => s.name)).toContain(
|
|
163
|
+
'authoring/building-blocks/components/add-a-component',
|
|
164
164
|
);
|
|
165
|
-
expect(
|
|
166
|
-
'
|
|
165
|
+
expect(authoring.suggestions.map(s => s.name)).not.toContain(
|
|
166
|
+
'authoring/building-blocks',
|
|
167
167
|
);
|
|
168
168
|
},
|
|
169
169
|
SLOW,
|
|
@@ -276,9 +276,7 @@ describe('a reference block in a topic section', () => {
|
|
|
276
276
|
expect(status).toBe(0);
|
|
277
277
|
expect(stdout).toMatch(/^Field +\| Type +\| Required +\| Description/m);
|
|
278
278
|
expect(stdout).toMatch(/^components +\| string +\| no +\| /m);
|
|
279
|
-
expect(stdout).toContain(
|
|
280
|
-
'From Astryx Integration: `astryx docs authoring integration`',
|
|
281
|
-
);
|
|
279
|
+
expect(stdout).toContain(' docs authoring integration`');
|
|
282
280
|
},
|
|
283
281
|
SLOW,
|
|
284
282
|
);
|
|
@@ -302,11 +300,11 @@ describe('a reference block that includes what it names', () => {
|
|
|
302
300
|
});
|
|
303
301
|
|
|
304
302
|
describe('what a reference block names', () => {
|
|
305
|
-
it('resolves a CLI authoring schema by identity, to its section of
|
|
303
|
+
it('resolves a CLI authoring schema by identity, to its section of the field reference', async () => {
|
|
306
304
|
const resolve = await linkResolver(builtinCatalog(), CLI_PROVIDER_ID);
|
|
307
305
|
expect(await resolve('schema:integration')).toMatchObject({
|
|
308
306
|
id: createDocId(CLI_PROVIDER_ID, 'schema', 'integration'),
|
|
309
|
-
route: 'authoring',
|
|
307
|
+
route: 'authoring/field-reference',
|
|
310
308
|
title: 'Astryx Integration',
|
|
311
309
|
command: 'astryx docs authoring integration',
|
|
312
310
|
});
|
|
@@ -43,8 +43,136 @@ export function findDoctorInstalledPackage(projectDir: string, packageName: stri
|
|
|
43
43
|
export function listDoctorThemePackages(cwd: string): string[];
|
|
44
44
|
/** @param {string} file */
|
|
45
45
|
export function readPackageJson(file: string): any;
|
|
46
|
+
/**
|
|
47
|
+
* The integrations installed for the computer, and, outside a project, which
|
|
48
|
+
* of them the folder loads (spec AST-081 FR12): those it uses, and the names
|
|
49
|
+
* of the integrations the folder loads itself, whose copies win.
|
|
50
|
+
* @param {string} cwd
|
|
51
|
+
* @returns {Promise<{computerIntegrations: import('../../foundation/integrations/computer-integrations.mjs').ComputerIntegrationCandidate[], loadedComputerIntegrations: string[], folderIntegrations: string[]}>}
|
|
52
|
+
*/
|
|
53
|
+
export function computerIntegrationsOutside(cwd: string): Promise<{
|
|
54
|
+
computerIntegrations: import("../../foundation/integrations/computer-integrations.mjs").ComputerIntegrationCandidate[];
|
|
55
|
+
loadedComputerIntegrations: string[];
|
|
56
|
+
folderIntegrations: string[];
|
|
57
|
+
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Inside a project: the integrations installed for the computer it could add
|
|
60
|
+
* (spec AST-081 FR12), leaving out every package it loads or declares.
|
|
61
|
+
* @param {string} cwd
|
|
62
|
+
* @param {string[]} loadedNames the integrations the project loads
|
|
63
|
+
* @returns {Promise<import('../../foundation/integrations/computer-integrations.mjs').ComputerIntegrationCandidate[]>}
|
|
64
|
+
*/
|
|
65
|
+
export function computerIntegrationsToAdd(cwd: string, loadedNames: string[]): Promise<import("../../foundation/integrations/computer-integrations.mjs").ComputerIntegrationCandidate[]>;
|
|
66
|
+
/**
|
|
67
|
+
* The computer-level agent text's setting, its state on disk, and the command
|
|
68
|
+
* the skill file tells agents to run and the install step it records for when
|
|
69
|
+
* that command is not found (each null when there is no file, or it names
|
|
70
|
+
* none).
|
|
71
|
+
* @returns {{settings: import('../../foundation/env/user-settings.mjs').ComputerAgentTextSettings, entries: Array<{path: string, state: import('../../foundation/agent-docs/computer-agent-text.mjs').ComputerAgentTextState, link?: true}>, command: string | null, install: string | null}}
|
|
72
|
+
*/
|
|
73
|
+
export function computerAgentTextState(): {
|
|
74
|
+
settings: import("../../foundation/env/user-settings.mjs").ComputerAgentTextSettings;
|
|
75
|
+
entries: Array<{
|
|
76
|
+
path: string;
|
|
77
|
+
state: import("../../foundation/agent-docs/computer-agent-text.mjs").ComputerAgentTextState;
|
|
78
|
+
link?: true;
|
|
79
|
+
}>;
|
|
80
|
+
command: string | null;
|
|
81
|
+
install: string | null;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* The release facts doctor reports, read here so the checks stay pure
|
|
85
|
+
* (spec AST-081 FR5, FR6, FR10; architecture:cli-surface INV21): who
|
|
86
|
+
* answered, the newest release the computer knows of, how far the global copy
|
|
87
|
+
* or the project is behind, and every `astryx` on the search path with the
|
|
88
|
+
* command that upgrades it.
|
|
89
|
+
* @param {string} cwd
|
|
90
|
+
* @param {{project: boolean}} options
|
|
91
|
+
* @returns {{answeredBy: {cli: string, core: string | null, copy: string}, latest: string | null, globalBehind: ReturnType<typeof globalBehind> | null, projectLag: ReturnType<typeof projectLag> | null, lastNoticeSkip: ReturnType<typeof lastNoticeSkip>, lastCheckFailure: ReturnType<typeof lastCheckFailure>, stateLock: ReturnType<typeof stateLockHolder>, searchPathCommands: Array<import('../../foundation/env/search-path.mjs').SearchPathCommand & {upgrade: string | null, runner: boolean}>}}
|
|
92
|
+
*/
|
|
93
|
+
export function releaseFacts(cwd: string, { project }: {
|
|
94
|
+
project: boolean;
|
|
95
|
+
}): {
|
|
96
|
+
answeredBy: {
|
|
97
|
+
cli: string;
|
|
98
|
+
core: string | null;
|
|
99
|
+
copy: string;
|
|
100
|
+
};
|
|
101
|
+
latest: string | null;
|
|
102
|
+
globalBehind: ReturnType<typeof globalBehind> | null;
|
|
103
|
+
projectLag: ReturnType<typeof projectLag> | null;
|
|
104
|
+
lastNoticeSkip: ReturnType<typeof lastNoticeSkip>;
|
|
105
|
+
lastCheckFailure: ReturnType<typeof lastCheckFailure>;
|
|
106
|
+
stateLock: ReturnType<typeof stateLockHolder>;
|
|
107
|
+
searchPathCommands: Array<import("../../foundation/env/search-path.mjs").SearchPathCommand & {
|
|
108
|
+
upgrade: string | null;
|
|
109
|
+
runner: boolean;
|
|
110
|
+
}>;
|
|
111
|
+
};
|
|
112
|
+
/** Whether `cwd` is outside every project. */
|
|
113
|
+
export function outsideProject(cwd: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* The commands that bring a project's own CLI and Core to one release, with
|
|
116
|
+
* the project's package manager: Core up to the CLI, then its codemods, when
|
|
117
|
+
* the CLI is newer; else the CLI to the Core's release. Null when no
|
|
118
|
+
* command fits (see `alignCliAndCore`).
|
|
119
|
+
* @param {string} cwd
|
|
120
|
+
* @param {string} cli
|
|
121
|
+
* @param {string} core
|
|
122
|
+
* @returns {string | null}
|
|
123
|
+
*/
|
|
124
|
+
export function alignCommand(cwd: string, cli: string, core: string): string | null;
|
|
125
|
+
/**
|
|
126
|
+
* The Core release the project at `cwd` names: installed, else locked, else
|
|
127
|
+
* declared; the version the daily hint and notice compare against (spec
|
|
128
|
+
* AST-081 FR2). Null outside a project or when it names none.
|
|
129
|
+
* @param {string} cwd
|
|
130
|
+
* @returns {string | null}
|
|
131
|
+
*/
|
|
132
|
+
export function projectCoreVersion(cwd: string): string | null;
|
|
133
|
+
/**
|
|
134
|
+
* Whether the project at `cwd` installs its own CLI (spec AST-081 FR2).
|
|
135
|
+
* @param {string} cwd
|
|
136
|
+
* @returns {boolean}
|
|
137
|
+
*/
|
|
138
|
+
export function projectHasOwnCli(cwd: string): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* The command that adds the CLI at `version` with the project's package
|
|
141
|
+
* manager, and the Core it matches: from a folder whose package.json declares
|
|
142
|
+
* no Astryx package, in the Astryx project above at that project's Core; null
|
|
143
|
+
* when there is none (see `cliInstallAdvice`).
|
|
144
|
+
* @param {string} cwd
|
|
145
|
+
* @param {string} version
|
|
146
|
+
* @returns {{command: string, core: string} | null}
|
|
147
|
+
*/
|
|
148
|
+
export function addCliCommandFor(cwd: string, version: string): {
|
|
149
|
+
command: string;
|
|
150
|
+
core: string;
|
|
151
|
+
} | null;
|
|
152
|
+
/**
|
|
153
|
+
* The command that adds a package to the project of `cwd`; null in a folder
|
|
154
|
+
* that belongs to no project or whose package.json is not the project's (see
|
|
155
|
+
* `projectAddCommand`).
|
|
156
|
+
* @param {string} cwd
|
|
157
|
+
* @returns {((name: string) => string) | null}
|
|
158
|
+
*/
|
|
159
|
+
export function installCommandFor(cwd: string): ((name: string) => string) | null;
|
|
160
|
+
/**
|
|
161
|
+
* Whether `cwd` is inside a project whose package.json is not the project's,
|
|
162
|
+
* so advice points at the project's folder (see `installFolder`).
|
|
163
|
+
* @param {string} cwd
|
|
164
|
+
* @returns {boolean}
|
|
165
|
+
*/
|
|
166
|
+
export function insideProjectElsewhere(cwd: string): boolean;
|
|
46
167
|
export { resolveRecordedTheme } from "../theme/theme.mjs";
|
|
47
168
|
export { collectUnloadedFonts } from "../theme/build/font-warning.mjs";
|
|
48
169
|
export const SOURCE_EXTENSIONS: Set<string>;
|
|
170
|
+
export { displayHomePath };
|
|
171
|
+
import { globalBehind } from '../../foundation/release/notices.mjs';
|
|
172
|
+
import { projectLag } from '../../foundation/release/notices.mjs';
|
|
173
|
+
import { lastNoticeSkip } from '../../foundation/release/notices.mjs';
|
|
174
|
+
import { lastCheckFailure } from '../../foundation/release/global-state.mjs';
|
|
175
|
+
import { stateLockHolder } from '../../foundation/release/global-state.mjs';
|
|
176
|
+
import { displayHomePath } from '../../foundation/agent-docs/computer-agent-text.mjs';
|
|
49
177
|
export { isLocalThemeOwner, planThemeAppWrite, readThemeState, resolveThemeModule } from "../../foundation/config/theme-state.mjs";
|
|
50
178
|
export { themeBuild, validateThemePrivateInputs } from "../theme/build/build.mjs";
|
package/api/doctor/_adapter.mjs
CHANGED
|
@@ -2,15 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
/** @file Environment adapter for app-theme doctor evidence. */
|
|
4
4
|
|
|
5
|
+
import {isOutsideProject} from '../../foundation/env/project-scope.mjs';
|
|
6
|
+
import {answeredBy} from '../../foundation/release/run-context.mjs';
|
|
7
|
+
import {
|
|
8
|
+
knownLatestRelease,
|
|
9
|
+
lastCheckFailure,
|
|
10
|
+
stateLockHolder,
|
|
11
|
+
} from '../../foundation/release/global-state.mjs';
|
|
12
|
+
import {
|
|
13
|
+
alignCliAndCore,
|
|
14
|
+
cliInstallAdvice,
|
|
15
|
+
installFolder,
|
|
16
|
+
projectAddCommand,
|
|
17
|
+
globalBehind,
|
|
18
|
+
globalUpgradeCommand,
|
|
19
|
+
lastNoticeSkip,
|
|
20
|
+
projectLag,
|
|
21
|
+
} from '../../foundation/release/notices.mjs';
|
|
22
|
+
import {
|
|
23
|
+
coreVersionOf,
|
|
24
|
+
installPlaceOf,
|
|
25
|
+
isGlobalCopy,
|
|
26
|
+
} from '../../foundation/release/choose.mjs';
|
|
27
|
+
import {readReleaseFacts} from '../../foundation/release/project.mjs';
|
|
28
|
+
import {astryxCommandsOnSearchPath} from '../../foundation/env/search-path.mjs';
|
|
29
|
+
import {readDeclaredDependencies} from '../../foundation/integrations/autolink.mjs';
|
|
30
|
+
import {
|
|
31
|
+
computerSkillFile,
|
|
32
|
+
displayHomePath,
|
|
33
|
+
inspectComputerAgentText,
|
|
34
|
+
skillCommandOf,
|
|
35
|
+
skillInstallStepOf,
|
|
36
|
+
} from '../../foundation/agent-docs/computer-agent-text.mjs';
|
|
37
|
+
import {computerAgentTextSettings} from '../../foundation/env/user-settings.mjs';
|
|
5
38
|
import * as fs from 'node:fs';
|
|
6
39
|
import * as path from 'node:path';
|
|
7
|
-
import {
|
|
40
|
+
import {
|
|
41
|
+
Project,
|
|
42
|
+
availableComputerIntegrations,
|
|
43
|
+
computerIntegrationCandidates,
|
|
44
|
+
} from '../../foundation/config/project.mjs';
|
|
8
45
|
import {
|
|
9
46
|
discoverUnmigratedThemeCopies,
|
|
10
47
|
themeImportPackage,
|
|
11
48
|
} from '../../foundation/discovery/theme-discovery.mjs';
|
|
12
49
|
import {resolveThemeImports} from '../../foundation/discovery/theme-imports.mjs';
|
|
13
|
-
import {
|
|
50
|
+
import {
|
|
51
|
+
CLI_ROOT,
|
|
52
|
+
findProjectCoreDir,
|
|
53
|
+
findInstalledPackage,
|
|
54
|
+
} from '../../foundation/fs/paths.mjs';
|
|
14
55
|
export {
|
|
15
56
|
isLocalThemeOwner,
|
|
16
57
|
planThemeAppWrite,
|
|
@@ -104,7 +145,7 @@ export function listProjectSourceFiles(root, generatedModule) {
|
|
|
104
145
|
|
|
105
146
|
/** @param {string} projectDir */
|
|
106
147
|
export async function discoverDoctorThemes(projectDir) {
|
|
107
|
-
const project = await Project.load(projectDir);
|
|
148
|
+
const project = await Project.load(projectDir, {core: 'project'});
|
|
108
149
|
return project.themes();
|
|
109
150
|
}
|
|
110
151
|
|
|
@@ -124,7 +165,7 @@ export function discoverDoctorUnmigratedCopies(projectDir) {
|
|
|
124
165
|
|
|
125
166
|
/** @param {string} projectDir */
|
|
126
167
|
export function findDoctorCoreDir(projectDir) {
|
|
127
|
-
return
|
|
168
|
+
return findProjectCoreDir(projectDir);
|
|
128
169
|
}
|
|
129
170
|
|
|
130
171
|
/** @param {string} projectDir @param {string} packageName */
|
|
@@ -188,3 +229,211 @@ export function readPackageJson(file) {
|
|
|
188
229
|
return null;
|
|
189
230
|
}
|
|
190
231
|
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* The integrations installed for the computer, and, outside a project, which
|
|
235
|
+
* of them the folder loads (spec AST-081 FR12): those it uses, and the names
|
|
236
|
+
* of the integrations the folder loads itself, whose copies win.
|
|
237
|
+
* @param {string} cwd
|
|
238
|
+
* @returns {Promise<{computerIntegrations: import('../../foundation/integrations/computer-integrations.mjs').ComputerIntegrationCandidate[], loadedComputerIntegrations: string[], folderIntegrations: string[]}>}
|
|
239
|
+
*/
|
|
240
|
+
export async function computerIntegrationsOutside(cwd) {
|
|
241
|
+
const computerIntegrations = computerIntegrationCandidates(cwd);
|
|
242
|
+
if (computerIntegrations.length === 0) {
|
|
243
|
+
return {
|
|
244
|
+
computerIntegrations,
|
|
245
|
+
loadedComputerIntegrations: [],
|
|
246
|
+
folderIntegrations: [],
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
try {
|
|
250
|
+
const project = await Project.load(cwd, {core: 'project'});
|
|
251
|
+
/** @type {Array<{name: string, __computer?: boolean, __loadError?: string}>} */
|
|
252
|
+
const loaded = project.loadedIntegrations;
|
|
253
|
+
return {
|
|
254
|
+
computerIntegrations,
|
|
255
|
+
loadedComputerIntegrations: loaded
|
|
256
|
+
.filter(i => i.__computer && !i.__loadError)
|
|
257
|
+
.map(i => i.name),
|
|
258
|
+
folderIntegrations: loaded.filter(i => !i.__computer).map(i => i.name),
|
|
259
|
+
};
|
|
260
|
+
} catch {
|
|
261
|
+
return {
|
|
262
|
+
computerIntegrations,
|
|
263
|
+
loadedComputerIntegrations: [],
|
|
264
|
+
folderIntegrations: [],
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Inside a project: the integrations installed for the computer it could add
|
|
271
|
+
* (spec AST-081 FR12), leaving out every package it loads or declares.
|
|
272
|
+
* @param {string} cwd
|
|
273
|
+
* @param {string[]} loadedNames the integrations the project loads
|
|
274
|
+
* @returns {Promise<import('../../foundation/integrations/computer-integrations.mjs').ComputerIntegrationCandidate[]>}
|
|
275
|
+
*/
|
|
276
|
+
export async function computerIntegrationsToAdd(cwd, loadedNames) {
|
|
277
|
+
const installed = new Set([...loadedNames, ...declaredPackageNames(cwd)]);
|
|
278
|
+
return availableComputerIntegrations(cwd, installed);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* The package names the folder's package.json declares, nearest first.
|
|
283
|
+
* @param {string} cwd
|
|
284
|
+
* @returns {string[]}
|
|
285
|
+
*/
|
|
286
|
+
function declaredPackageNames(cwd) {
|
|
287
|
+
for (let dir = path.resolve(cwd); ;) {
|
|
288
|
+
if (fs.existsSync(path.join(dir, 'package.json'))) {
|
|
289
|
+
return readDeclaredDependencies(dir).map(d => d.name);
|
|
290
|
+
}
|
|
291
|
+
const parent = path.dirname(dir);
|
|
292
|
+
if (parent === dir) return [];
|
|
293
|
+
dir = parent;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* The computer-level agent text's setting, its state on disk, and the command
|
|
299
|
+
* the skill file tells agents to run and the install step it records for when
|
|
300
|
+
* that command is not found (each null when there is no file, or it names
|
|
301
|
+
* none).
|
|
302
|
+
* @returns {{settings: import('../../foundation/env/user-settings.mjs').ComputerAgentTextSettings, entries: Array<{path: string, state: import('../../foundation/agent-docs/computer-agent-text.mjs').ComputerAgentTextState, link?: true}>, command: string | null, install: string | null}}
|
|
303
|
+
*/
|
|
304
|
+
export function computerAgentTextState() {
|
|
305
|
+
const settings = computerAgentTextSettings();
|
|
306
|
+
let command = null;
|
|
307
|
+
let install = null;
|
|
308
|
+
try {
|
|
309
|
+
const text = fs.readFileSync(computerSkillFile(), 'utf8');
|
|
310
|
+
command = skillCommandOf(text);
|
|
311
|
+
install = skillInstallStepOf(text);
|
|
312
|
+
} catch {
|
|
313
|
+
// No skill file, or one that cannot be read: no command to check.
|
|
314
|
+
}
|
|
315
|
+
return {
|
|
316
|
+
settings,
|
|
317
|
+
entries: inspectComputerAgentText({links: settings.links}),
|
|
318
|
+
command,
|
|
319
|
+
install,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
export {displayHomePath};
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* The release facts doctor reports, read here so the checks stay pure
|
|
327
|
+
* (spec AST-081 FR5, FR6, FR10; architecture:cli-surface INV21): who
|
|
328
|
+
* answered, the newest release the computer knows of, how far the global copy
|
|
329
|
+
* or the project is behind, and every `astryx` on the search path with the
|
|
330
|
+
* command that upgrades it.
|
|
331
|
+
* @param {string} cwd
|
|
332
|
+
* @param {{project: boolean}} options
|
|
333
|
+
* @returns {{answeredBy: {cli: string, core: string | null, copy: string}, latest: string | null, globalBehind: ReturnType<typeof globalBehind> | null, projectLag: ReturnType<typeof projectLag> | null, lastNoticeSkip: ReturnType<typeof lastNoticeSkip>, lastCheckFailure: ReturnType<typeof lastCheckFailure>, stateLock: ReturnType<typeof stateLockHolder>, searchPathCommands: Array<import('../../foundation/env/search-path.mjs').SearchPathCommand & {upgrade: string | null, runner: boolean}>}}
|
|
334
|
+
*/
|
|
335
|
+
export function releaseFacts(cwd, {project}) {
|
|
336
|
+
const answered = answeredBy(cwd);
|
|
337
|
+
return {
|
|
338
|
+
answeredBy: answered,
|
|
339
|
+
latest: knownLatestRelease(),
|
|
340
|
+
lastNoticeSkip: lastNoticeSkip(),
|
|
341
|
+
lastCheckFailure: lastCheckFailure(),
|
|
342
|
+
stateLock: stateLockHolder(),
|
|
343
|
+
globalBehind:
|
|
344
|
+
!project && isGlobalCopy(CLI_ROOT)
|
|
345
|
+
? globalBehind({self: {version: answered.cli, root: CLI_ROOT}})
|
|
346
|
+
: null,
|
|
347
|
+
// The project's version is its own CLI's, or, with none, its Core's:
|
|
348
|
+
// installed, else locked, else declared, as the daily notice reads it.
|
|
349
|
+
projectLag: project
|
|
350
|
+
? projectLag({
|
|
351
|
+
cwd,
|
|
352
|
+
current:
|
|
353
|
+
(answered.copy === 'starting' && projectCoreVersion(cwd)) ||
|
|
354
|
+
answered.cli,
|
|
355
|
+
})
|
|
356
|
+
: null,
|
|
357
|
+
searchPathCommands: astryxCommandsOnSearchPath().map(row => ({
|
|
358
|
+
...row,
|
|
359
|
+
upgrade: row.cliRoot ? globalUpgradeCommand(row.cliRoot) : null,
|
|
360
|
+
// A package runner's temporary install, which it puts first on the
|
|
361
|
+
// search path only for the run it starts.
|
|
362
|
+
runner: row.cliRoot ? installPlaceOf(row.cliRoot).runner : false,
|
|
363
|
+
})),
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/** Whether `cwd` is outside every project. */
|
|
368
|
+
export function outsideProject(/** @type {string} */ cwd) {
|
|
369
|
+
return isOutsideProject(cwd);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* The commands that bring a project's own CLI and Core to one release, with
|
|
374
|
+
* the project's package manager: Core up to the CLI, then its codemods, when
|
|
375
|
+
* the CLI is newer; else the CLI to the Core's release. Null when no
|
|
376
|
+
* command fits (see `alignCliAndCore`).
|
|
377
|
+
* @param {string} cwd
|
|
378
|
+
* @param {string} cli
|
|
379
|
+
* @param {string} core
|
|
380
|
+
* @returns {string | null}
|
|
381
|
+
*/
|
|
382
|
+
export function alignCommand(cwd, cli, core) {
|
|
383
|
+
return alignCliAndCore({cwd, cli, core});
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* The Core release the project at `cwd` names: installed, else locked, else
|
|
388
|
+
* declared; the version the daily hint and notice compare against (spec
|
|
389
|
+
* AST-081 FR2). Null outside a project or when it names none.
|
|
390
|
+
* @param {string} cwd
|
|
391
|
+
* @returns {string | null}
|
|
392
|
+
*/
|
|
393
|
+
export function projectCoreVersion(cwd) {
|
|
394
|
+
return coreVersionOf(readReleaseFacts(cwd));
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Whether the project at `cwd` installs its own CLI (spec AST-081 FR2).
|
|
399
|
+
* @param {string} cwd
|
|
400
|
+
* @returns {boolean}
|
|
401
|
+
*/
|
|
402
|
+
export function projectHasOwnCli(cwd) {
|
|
403
|
+
return Boolean(readReleaseFacts(cwd).cli);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* The command that adds the CLI at `version` with the project's package
|
|
408
|
+
* manager, and the Core it matches: from a folder whose package.json declares
|
|
409
|
+
* no Astryx package, in the Astryx project above at that project's Core; null
|
|
410
|
+
* when there is none (see `cliInstallAdvice`).
|
|
411
|
+
* @param {string} cwd
|
|
412
|
+
* @param {string} version
|
|
413
|
+
* @returns {{command: string, core: string} | null}
|
|
414
|
+
*/
|
|
415
|
+
export function addCliCommandFor(cwd, version) {
|
|
416
|
+
const advice = cliInstallAdvice({cwd, core: version});
|
|
417
|
+
return advice?.command ? {command: advice.command, core: advice.core} : null;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* The command that adds a package to the project of `cwd`; null in a folder
|
|
422
|
+
* that belongs to no project or whose package.json is not the project's (see
|
|
423
|
+
* `projectAddCommand`).
|
|
424
|
+
* @param {string} cwd
|
|
425
|
+
* @returns {((name: string) => string) | null}
|
|
426
|
+
*/
|
|
427
|
+
export function installCommandFor(cwd) {
|
|
428
|
+
return projectAddCommand(cwd);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Whether `cwd` is inside a project whose package.json is not the project's,
|
|
433
|
+
* so advice points at the project's folder (see `installFolder`).
|
|
434
|
+
* @param {string} cwd
|
|
435
|
+
* @returns {boolean}
|
|
436
|
+
*/
|
|
437
|
+
export function insideProjectElsewhere(cwd) {
|
|
438
|
+
return installFolder(cwd)?.moved === true;
|
|
439
|
+
}
|