@astryxdesign/cli 0.7.2 → 0.7.3-canary.0bf23bd
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/README.md +104 -71
- package/api/build/_adapter.d.mts +58 -0
- package/api/build/_adapter.mjs +115 -3
- package/api/build/blocks/blocks.d.mts +42 -0
- package/api/build/blocks/blocks.mjs +169 -0
- package/api/build/blocks/blocks.test.mjs +108 -0
- package/api/build/blocks/blocks.weights.json +1 -0
- package/api/build/build.mjs +25 -6
- package/api/build/kit/answer.d.mts +14 -0
- package/api/build/kit/answer.mjs +85 -0
- package/api/build/kit/answer.test.mjs +38 -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 -398
- 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 +60 -0
- package/api/build/kit/signals.mjs +284 -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 +52 -0
- package/api/build/tree.test.mjs +177 -0
- package/api/build/tree.weights.json +1 -0
- package/api/component/component.mjs +17 -3
- package/api/component/component.test.mjs +15 -0
- package/api/component/doc-links.test.mjs +2 -2
- package/api/discover/_adapter.mjs +36 -9
- package/api/discover/_adapter.test.mjs +42 -0
- package/api/docs/_adapter.d.mts +2 -2
- package/api/docs/_adapter.mjs +78 -23
- package/api/docs/docs-homes.test.mjs +127 -0
- package/api/docs/docs.doc.mjs +3 -3
- package/api/docs/docs.test.mjs +35 -19
- package/api/docs/integration-tree.test.mjs +20 -20
- package/api/docs/integrationDocs.test.mjs +1 -1
- package/api/docs/namespace-section.test.mjs +6 -6
- package/api/docs/reference-blocks.test.mjs +2 -2
- package/api/doctor/doctor.mjs +102 -24
- package/api/doctor/doctor.test.mjs +37 -12
- package/api/hook/hook.mjs +1 -1
- package/api/init/init.doc.mjs +20 -6
- package/api/init/init.test.mjs +18 -2
- package/api/init/init.type.d.mts +3 -3
- package/api/init/init.type.mjs +3 -3
- package/api/init/remove/remove.mjs +17 -4
- package/api/init/remove/remove.test.mjs +114 -2
- package/api/init/run/run.mjs +69 -6
- package/api/integration/_adapter.d.mts +8 -0
- package/api/integration/_adapter.mjs +21 -1
- package/api/integration/authoring-checks.mjs +83 -9
- package/api/integration/authoring-checks.test.mjs +220 -0
- package/api/integration/pack-check.mjs +123 -4
- package/api/integration/pack-check.test.mjs +87 -0
- package/api/integration/validate-integration-case-disk.test.mjs +111 -0
- package/api/integration/validate-integration-gaps.test.mjs +1964 -0
- package/api/integration/validate-integration.d.mts +11 -2
- package/api/integration/validate-integration.mjs +250 -32
- package/api/integration/validate-integration.type.d.mts +59 -1
- package/api/integration/validate-integration.type.mjs +46 -2
- package/api/integration/validateIntegration.doc.mjs +1 -1
- package/api/search/ORDERING.md +28 -0
- package/api/search/_adapter.d.mts +82 -2
- package/api/search/_adapter.mjs +157 -10
- 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 +52 -0
- package/api/search/_entries.mjs +214 -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 -305
- package/api/search/search.doc.mjs +8 -6
- package/api/search/search.mjs +56 -2482
- package/api/search/search.test.mjs +14 -14
- package/api/search/search.type.d.mts +6 -1
- package/api/search/search.type.mjs +6 -1
- 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/theme/build/build.packed-old-core.test.mjs +1 -0
- package/api/upgrade/_adapter.d.mts +57 -9
- package/api/upgrade/_adapter.mjs +198 -28
- 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/run.d.mts +4 -2
- package/api/upgrade/run/run.mjs +13 -2
- package/api/upgrade/run/run.test.mjs +417 -3
- package/api/upgrade/upgrade.doc.mjs +10 -5
- package/api/upgrade/upgrade.mjs +13 -2
- package/api/upgrade/upgrade.test.mjs +194 -0
- package/api/upgrade/upgrade.type.d.mts +5 -3
- package/api/upgrade/upgrade.type.mjs +8 -6
- 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/docs/author-a-theme.doc.mjs +2 -2
- package/assets/docs/is-my-code-good.doc.mjs +287 -0
- package/assets/docs/tree/add-a-component.doc.mjs +1 -1
- package/assets/docs/tree/add-a-theme.doc.mjs +1 -1
- package/assets/docs/tree/add-a-topic.doc.mjs +2 -2
- package/assets/docs/tree/agent-guidance.doc.mjs +1 -1
- package/assets/docs/tree/api.doc.mjs +6 -0
- package/assets/docs/tree/{integrations.doc.mjs → authoring.doc.mjs} +15 -6
- package/assets/docs/tree/block-template.doc.mjs +1 -1
- package/assets/docs/tree/build-the-template.doc.mjs +1 -1
- package/assets/docs/tree/building-blocks.doc.mjs +2 -2
- package/assets/docs/tree/check-the-props.doc.mjs +1 -1
- package/assets/docs/tree/check-your-docs.doc.mjs +2 -2
- package/assets/docs/tree/checks.doc.mjs +2 -2
- package/assets/docs/tree/cli-command.doc.mjs +1 -1
- package/assets/docs/tree/cli.doc.mjs +1 -1
- package/assets/docs/tree/codemods.doc.mjs +1 -1
- package/assets/docs/tree/component-family.doc.mjs +1 -1
- package/assets/docs/tree/component-imports.doc.mjs +1 -1
- package/assets/docs/tree/components.doc.mjs +1 -1
- package/assets/docs/tree/configuration.doc.mjs +1 -1
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +1 -1
- package/assets/docs/tree/define-the-theme.doc.mjs +1 -1
- package/assets/docs/tree/describe-the-component.doc.mjs +1 -1
- package/assets/docs/tree/docs.doc.mjs +1 -1
- package/assets/docs/tree/document-the-template.doc.mjs +1 -1
- package/assets/docs/tree/document-the-theme.doc.mjs +1 -1
- package/assets/docs/tree/export-template-assets.doc.mjs +1 -1
- package/assets/docs/tree/extend-or-replace.doc.mjs +1 -1
- package/assets/docs/{authoring.doc.mjs → tree/field-reference.doc.mjs} +4 -3
- package/assets/docs/tree/fonts-and-assets.doc.mjs +1 -1
- package/assets/docs/tree/generate-a-palette.doc.mjs +1 -1
- package/assets/docs/tree/global-integrations.doc.mjs +2 -2
- package/assets/docs/tree/grade-template-with-agent.doc.mjs +4 -4
- package/assets/docs/tree/help.doc.mjs +2 -2
- package/assets/docs/tree/host-entry.doc.mjs +128 -0
- package/assets/docs/tree/links.doc.mjs +1 -1
- package/assets/docs/tree/package-and-test.doc.mjs +1 -1
- package/assets/docs/tree/page-template.doc.mjs +1 -1
- package/assets/docs/tree/publishing.doc.mjs +1 -1
- package/assets/docs/tree/quick-start.doc.mjs +1 -1
- package/assets/docs/tree/replace-a-core-component.doc.mjs +1 -1
- package/assets/docs/tree/replace-a-core-template.doc.mjs +1 -1
- package/assets/docs/tree/sections-and-placement.doc.mjs +1 -1
- package/assets/docs/tree/see-it-in-an-app.doc.mjs +1 -1
- package/assets/docs/tree/ship.doc.mjs +2 -2
- package/assets/docs/tree/short-and-findable.doc.mjs +1 -1
- package/assets/docs/tree/single-component.doc.mjs +1 -1
- package/assets/docs/tree/start-a-template.doc.mjs +1 -1
- package/assets/docs/tree/subcomponent.doc.mjs +1 -1
- package/assets/docs/tree/template-assets.doc.mjs +1 -1
- package/assets/docs/tree/template-doc-overview.doc.mjs +2 -2
- 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 +1 -1
- package/assets/docs/tree/templates.doc.mjs +1 -1
- package/assets/docs/tree/test-in-an-app.doc.mjs +1 -1
- package/assets/docs/tree/test-template-in-app.doc.mjs +1 -1
- package/assets/docs/tree/themes.doc.mjs +1 -1
- package/assets/docs/tree/tokens-data.doc.mjs +2 -2
- package/assets/docs/tree/troubleshooting.doc.mjs +1 -1
- package/assets/docs/tree/upgrading.doc.mjs +1 -1
- package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +1 -1
- package/assets/docs/tree/verify-packed-template.doc.mjs +1 -1
- package/assets/docs/tree/versioning.doc.mjs +1 -1
- package/assets/docs/tree/write-good-templates.doc.mjs +1 -1
- package/assets/docs/tree/write-the-template-file.doc.mjs +1 -1
- package/assets/docs/use-integrations.doc.mjs +120 -0
- package/assets/docs/working-with-ai.doc.mjs +6 -2
- 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/authoring/debug/parse.d.mts +1 -1
- package/authoring/doctypes/schema/schema.doc.mjs +1 -1
- package/authoring/integration/integration.doc.mjs +1 -1
- package/authoring/integration/type.ts +1 -1
- package/clients/cli/bin/astryx.mjs +7 -78
- package/clients/cli/command-result-coverage.test.mjs +6 -5
- package/clients/cli/commands/build-theme.color-scheme.test.mjs +1 -1
- package/clients/cli/commands/{component/index.mjs → component.mjs} +37 -37
- package/clients/cli/commands/component.test.mjs +6 -6
- package/clients/cli/commands/docs.doc.mjs +2 -2
- package/clients/cli/commands/docs.mjs +1 -1
- package/clients/cli/commands/docs.test.mjs +14 -14
- package/clients/cli/commands/doctor.mjs +30 -0
- package/clients/cli/commands/doctor.test.mjs +65 -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 +230 -1
- package/clients/cli/commands/init.doc.mjs +28 -9
- package/clients/cli/commands/init.flag-help.test.mjs +1 -0
- package/clients/cli/commands/init.mjs +2 -2
- package/clients/cli/commands/integration-check.test.mjs +48 -0
- package/clients/cli/commands/integration.doc.mjs +1 -1
- package/clients/cli/commands/manifest.doc.mjs +1 -1
- package/clients/cli/commands/manifest.mjs +67 -0
- package/clients/cli/commands/outside-project.test.mjs +2 -1
- package/clients/cli/commands/postinstall.doc.mjs +23 -0
- package/clients/cli/commands/postinstall.mjs +31 -0
- package/clients/cli/commands/setup-nudge.test.mjs +61 -0
- package/clients/cli/commands/{build-theme.mjs → theme.mjs} +1 -1
- package/clients/cli/commands/upgrade.doc.mjs +4 -2
- package/clients/cli/commands/upgrade.mjs +9 -2
- package/clients/cli/commands/upgrade.subfolder-path.test.mjs +97 -0
- package/clients/cli/index.mjs +29 -86
- package/clients/cli/lib/component-format.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +12 -7
- package/clients/cli/lib/exit-codes.test.mjs +5 -0
- package/clients/cli/lib/manifest.test.mjs +12 -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 +20 -7
- package/foundation/agent-docs/agent-doc-state.mjs +35 -8
- package/foundation/agent-docs/agent-docs.d.mts +100 -12
- package/foundation/agent-docs/agent-docs.mjs +1012 -100
- package/foundation/agent-docs/agent-docs.path-safety.test.mjs +1239 -17
- package/foundation/agent-docs/agent-docs.test.mjs +683 -39
- package/foundation/config/project.mjs +20 -22
- package/foundation/config/project.test.mjs +56 -0
- package/foundation/discovery/authoring-self-docs.d.mts +7 -0
- package/foundation/discovery/authoring-self-docs.mjs +16 -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 +4 -3
- package/foundation/discovery/cli-self-docs.test.mjs +2 -2
- package/foundation/discovery/component-discovery.d.mts +37 -0
- package/foundation/discovery/component-discovery.mjs +80 -5
- package/foundation/discovery/component-loader.d.mts +1 -1
- package/foundation/discovery/docs-discovery.mjs +14 -1
- package/foundation/discovery/module-exports.d.mts +41 -0
- package/foundation/discovery/module-exports.mjs +253 -0
- package/foundation/discovery/runner-allowlist.d.mts +2 -4
- package/foundation/discovery/runner-allowlist.mjs +2 -4
- 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.test.mjs +1 -1
- package/foundation/discovery/template-adapter.mjs +18 -1
- package/foundation/discovery/template-needs.mjs +1 -44
- package/foundation/discovery/theme-discovery.mjs +147 -3
- package/foundation/doc-compiler/doc-loads.test.mjs +33 -9
- 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 +77 -43
- package/foundation/doc-compiler/tree.test.mjs +7 -7
- package/foundation/fs/paths.d.mts +70 -8
- package/foundation/fs/paths.mjs +556 -38
- package/foundation/fs/paths.test.mjs +430 -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/computer-integrations.d.mts +6 -3
- package/foundation/integrations/computer-integrations.mjs +38 -9
- package/foundation/integrations/contribution-inventory.d.mts +15 -20
- package/foundation/integrations/contribution-inventory.mjs +41 -5
- package/foundation/integrations/integrations.d.mts +27 -1
- package/foundation/integrations/integrations.mjs +61 -2
- package/foundation/integrations/validate-contributions.d.mts +115 -0
- package/foundation/integrations/validate-contributions.mjs +1168 -13
- package/foundation/release/handoff.d.mts +23 -4
- package/foundation/release/handoff.mjs +175 -8
- package/foundation/release/run-context.mjs +14 -0
- package/foundation/response/response-types.doc.mjs +1 -1
- 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/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 +14 -9
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
// @generated by scripts/sync-api-types.mjs from the JSDoc in foundation/**/*.mjs.
|
|
2
2
|
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Throw {@link AgentDocsHomeError} when `targetDir` is the home folder, or a
|
|
6
|
+
* settings folder in it outside a project.
|
|
7
|
+
* @param {string} targetDir
|
|
8
|
+
*/
|
|
9
|
+
export function assertAgentDocsTarget(targetDir: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* The folder a run started in `cwd` writes agent docs to: the nearest folder at
|
|
12
|
+
* or above it whose package.json declares an `@astryxdesign` package, else the
|
|
13
|
+
* nearest folder with any package.json. The search stops at a repository root
|
|
14
|
+
* and never reaches the home folder, so a stray `~/package.json` cannot pull
|
|
15
|
+
* the docs there.
|
|
16
|
+
* @param {string} cwd
|
|
17
|
+
* @returns {string | null} null when no folder it searches has a package.json;
|
|
18
|
+
* init then writes where it runs, as before.
|
|
19
|
+
*/
|
|
20
|
+
export function resolveAgentDocsRoot(cwd: string): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* The folder `init` run in `cwd` writes the agent docs to: the project root
|
|
23
|
+
* {@link resolveAgentDocsRoot} finds, else `cwd` itself. The one definition
|
|
24
|
+
* that init, its removal, and the per-command setup nudge all use.
|
|
25
|
+
* @param {string} cwd
|
|
26
|
+
* @returns {string}
|
|
27
|
+
*/
|
|
28
|
+
export function agentDocsTargetDir(cwd: string): string;
|
|
4
29
|
/**
|
|
5
30
|
* Parse the Astryx version a managed block was generated for, from its header
|
|
6
31
|
* line ("Astryx v1.2.3 · N components"). Returns null when the block predates
|
|
@@ -23,6 +48,8 @@ export function parseBlockVersion(content: string): string | null;
|
|
|
23
48
|
* - `current` — every managed block already matches the installed version.
|
|
24
49
|
* And the project is `missing` when no managed block exists anywhere (the repo
|
|
25
50
|
* has agent-doc files without our markers, or none at all — i.e. never `init`ed).
|
|
51
|
+
* A managed import of AGENTS.md is not a block here: it names no version and
|
|
52
|
+
* stays current while AGENTS.md holds the block.
|
|
26
53
|
*
|
|
27
54
|
* @param {string} targetDir
|
|
28
55
|
* @param {string} [installedVersion] Defaults to the installed core version.
|
|
@@ -170,34 +197,70 @@ export function injectAgentsMd(targetDir: string, version: string): void;
|
|
|
170
197
|
*/
|
|
171
198
|
export function injectClaudeMd(targetDir: string, version: string): boolean;
|
|
172
199
|
/**
|
|
173
|
-
* Remove Astryx
|
|
174
|
-
*
|
|
200
|
+
* Remove the Astryx-managed block, between its markers, from a file, leaving
|
|
201
|
+
* every other line as it is. With `deleteIfEmpty`, the file is deleted when
|
|
202
|
+
* nothing is left but whitespace or the exact heading init writes into a file
|
|
203
|
+
* it creates; with `deleteIfBlank`, only when nothing but whitespace is left.
|
|
175
204
|
*
|
|
176
205
|
* @param {string} filePath
|
|
177
|
-
* @param {{deleteIfEmpty?: boolean}} [options]
|
|
206
|
+
* @param {{deleteIfEmpty?: boolean, deleteIfBlank?: boolean}} [options]
|
|
178
207
|
* @returns {boolean} Whether the Astryx section was found and removed
|
|
179
208
|
*/
|
|
180
|
-
export function removeXdsBlock(filePath: string, { deleteIfEmpty }?: {
|
|
209
|
+
export function removeXdsBlock(filePath: string, { deleteIfEmpty, deleteIfBlank }?: {
|
|
181
210
|
deleteIfEmpty?: boolean;
|
|
211
|
+
deleteIfBlank?: boolean;
|
|
182
212
|
}): boolean;
|
|
183
213
|
/**
|
|
184
214
|
* Remove Astryx section from all known agent doc files.
|
|
185
215
|
* @param {string} targetDir
|
|
216
|
+
* @param {object} [options]
|
|
217
|
+
* @param {string} [options.shownFrom] - Folder the logged paths are shown
|
|
218
|
+
* relative to; defaults to `targetDir`.
|
|
219
|
+
* @param {Set<string>} [options.skip] - Files left as they are.
|
|
186
220
|
* @returns {string[]} the project-relative files a block was removed from.
|
|
187
221
|
* @throws {PathSafetyError} `ERR_PATH_TRAVERSAL` when a file it would change
|
|
188
222
|
* resolves outside `targetDir`; nothing is changed.
|
|
189
223
|
*/
|
|
190
|
-
export function removeAgentDocs(targetDir: string
|
|
224
|
+
export function removeAgentDocs(targetDir: string, { shownFrom, skip }?: {
|
|
225
|
+
shownFrom?: string | undefined;
|
|
226
|
+
skip?: Set<string> | undefined;
|
|
227
|
+
}): string[];
|
|
228
|
+
/**
|
|
229
|
+
* Remove the managed block where init writes it, the project root (see
|
|
230
|
+
* {@link resolveAgentDocsRoot}), and in `cwd`, so a block an earlier version
|
|
231
|
+
* wrote in that folder goes too. Each folder is checked before anything is
|
|
232
|
+
* changed. Run below the project root, a project-root agent file holding a
|
|
233
|
+
* block that resolves outside the project is left as it is and reported to
|
|
234
|
+
* `onSkipped`, as install does there; 0.7.x touched only `cwd`. A file in
|
|
235
|
+
* `cwd`, or at the root when run there, that resolves outside refuses the run.
|
|
236
|
+
*
|
|
237
|
+
* @param {string} cwd
|
|
238
|
+
* @param {{onSkipped?: (rel: string, reason: string) => void}} [options]
|
|
239
|
+
* @returns {string[]} the files a block was removed from, relative to `cwd`
|
|
240
|
+
* @throws {PathSafetyError} `ERR_PATH_TRAVERSAL`; nothing is changed
|
|
241
|
+
*/
|
|
242
|
+
export function removeProjectAgentDocs(cwd: string, { onSkipped }?: {
|
|
243
|
+
onSkipped?: (rel: string, reason: string) => void;
|
|
244
|
+
}): string[];
|
|
191
245
|
/**
|
|
192
246
|
* Programmatic entry point for installing agent docs.
|
|
193
247
|
* Used by the init command, upgrade command, and agent-docs command.
|
|
194
248
|
*
|
|
195
|
-
*
|
|
196
|
-
* -
|
|
197
|
-
* -
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
* -
|
|
249
|
+
* Default strategy (no agent/paths specified), so every agent reads the block:
|
|
250
|
+
* - Write the block to AGENTS.md (created when missing).
|
|
251
|
+
* - Write the block to the project's Claude Code file: root CLAUDE.md when it
|
|
252
|
+
* exists, else an existing .claude/CLAUDE.md, even when it imports AGENTS.md.
|
|
253
|
+
* Remove a block from the other one. Create no Claude file.
|
|
254
|
+
* - Write a managed import of AGENTS.md to GEMINI.md (created when missing),
|
|
255
|
+
* unless GEMINI.md already imports AGENTS.md.
|
|
256
|
+
* - Keep a full block in every other existing standalone file.
|
|
257
|
+
* - Leave every other `@path` import wrapper untouched; if an older run
|
|
258
|
+
* expanded a block into one, remove that duplicate block. When a wrapper
|
|
259
|
+
* imports a file other than AGENTS.md, the project keeps its own layout:
|
|
260
|
+
* every standalone file gets the block.
|
|
261
|
+
* A refresh (`onlyReplace`) rewrites existing blocks in place, the Claude
|
|
262
|
+
* file's copy included, leaves imports of AGENTS.md as they are, and creates
|
|
263
|
+
* nothing.
|
|
201
264
|
*
|
|
202
265
|
* @param {string} targetDir
|
|
203
266
|
* @param {object} [options]
|
|
@@ -211,11 +274,21 @@ export function removeAgentDocs(targetDir: string): string[];
|
|
|
211
274
|
* so an integration's topics reach the agent.
|
|
212
275
|
* @param {string} [options.renderedBlock] - Fully rendered expected block. Init
|
|
213
276
|
* and upgrade pass one shared block to every target.
|
|
277
|
+
* @param {(rel: string, reason: string) => void} [options.onSkipped] - Called
|
|
278
|
+
* for each file skipped because it resolves outside `targetDir` and 0.7.1
|
|
279
|
+
* never wrote it: GEMINI.md, or any file when `refuseEscapes` is false.
|
|
280
|
+
* @param {boolean} [options.refuseEscapes] - Whether a file 0.7.1 wrote that
|
|
281
|
+
* resolves outside `targetDir` refuses the run (default). Init passes false
|
|
282
|
+
* when it runs below the project root, where 0.7.1 wrote in the folder it
|
|
283
|
+
* ran in instead.
|
|
214
284
|
* @returns {string[]} List of files written
|
|
215
285
|
* @throws {import('../fs/path-safety.mjs').PathSafetyError} when a file it would
|
|
216
286
|
* write resolves outside `targetDir`; nothing is written.
|
|
287
|
+
* @throws {AgentDocsHomeError} when `targetDir` is the home folder, or a settings
|
|
288
|
+
* folder in it outside a project, or, with `paths`, when a file's own folder
|
|
289
|
+
* is; nothing is written.
|
|
217
290
|
*/
|
|
218
|
-
export function installAgentDocs(targetDir: string, { zh, lang, agent, paths, onlyReplace, topics, renderedBlock, }?: {
|
|
291
|
+
export function installAgentDocs(targetDir: string, { zh, lang, agent, paths, onlyReplace, topics, renderedBlock, onSkipped, refuseEscapes, }?: {
|
|
219
292
|
zh?: boolean | undefined;
|
|
220
293
|
lang?: string | undefined;
|
|
221
294
|
agent?: string | undefined;
|
|
@@ -223,7 +296,22 @@ export function installAgentDocs(targetDir: string, { zh, lang, agent, paths, on
|
|
|
223
296
|
onlyReplace?: boolean | undefined;
|
|
224
297
|
topics?: string[] | undefined;
|
|
225
298
|
renderedBlock?: string | undefined;
|
|
299
|
+
onSkipped?: ((rel: string, reason: string) => void) | undefined;
|
|
300
|
+
refuseEscapes?: boolean | undefined;
|
|
226
301
|
}): string[];
|
|
302
|
+
/**
|
|
303
|
+
* Thrown when agent docs would be written into the home folder, or into a
|
|
304
|
+
* settings folder in it such as `~/.gemini` outside a project. Agents read the
|
|
305
|
+
* files there (for example `~/.claude/CLAUDE.md` or `~/.gemini/GEMINI.md`) in
|
|
306
|
+
* every project, so a project's version-pinned block never goes there. Removal
|
|
307
|
+
* stays allowed.
|
|
308
|
+
*/
|
|
309
|
+
export class AgentDocsHomeError extends Error {
|
|
310
|
+
/** @param {string} dir */
|
|
311
|
+
constructor(dir: string);
|
|
312
|
+
/** The refused folder. */
|
|
313
|
+
dir: string;
|
|
314
|
+
}
|
|
227
315
|
import { discoverAgentDocs } from './agent-doc-state.mjs';
|
|
228
316
|
import { isAstryxInitialized } from './agent-doc-state.mjs';
|
|
229
317
|
import { isAstryxPromptInReach } from './agent-doc-state.mjs';
|