opkg 0.6.1 → 0.7.0
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 +109 -186
- package/assets/openpackage_ascii_dark.png +0 -0
- package/assets/openpackage_ascii_light.png +0 -0
- package/dist/commands/add.js +34 -10
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/apply.js +16 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/delete.js +1 -1
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/install.js +177 -8
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.js +2 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/new.js +125 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/pack.js +7 -13
- package/dist/commands/pack.js.map +1 -1
- package/dist/commands/pull.js +1 -1
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.js +1 -1
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/remove.js +63 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/save.js +11 -17
- package/dist/commands/save.js.map +1 -1
- package/dist/commands/set.js +33 -0
- package/dist/commands/set.js.map +1 -0
- package/dist/commands/show.js +16 -94
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/status.js +26 -701
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.js +14 -427
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/constants/index.js +72 -16
- package/dist/constants/index.js.map +1 -1
- package/dist/core/add/add-conflict-handler.js +1 -8
- package/dist/core/add/add-conflict-handler.js.map +1 -1
- package/dist/core/add/add-pipeline.js +12 -10
- package/dist/core/add/add-pipeline.js.map +1 -1
- package/dist/core/add/add-to-source-pipeline.js +123 -0
- package/dist/core/add/add-to-source-pipeline.js.map +1 -0
- package/dist/core/add/package-index-updater.js +77 -78
- package/dist/core/add/package-index-updater.js.map +1 -1
- package/dist/core/add/platform-path-transformer.js +6 -4
- package/dist/core/add/platform-path-transformer.js.map +1 -1
- package/dist/core/add/source-collector.js +2 -3
- package/dist/core/add/source-collector.js.map +1 -1
- package/dist/core/apply/apply-pipeline.js +110 -0
- package/dist/core/apply/apply-pipeline.js.map +1 -0
- package/dist/core/dependency-resolver.js +263 -21
- package/dist/core/dependency-resolver.js.map +1 -1
- package/dist/core/discovery/file-discovery.js +1 -2
- package/dist/core/discovery/file-discovery.js.map +1 -1
- package/dist/core/discovery/platform-files-discovery.js +33 -18
- package/dist/core/discovery/platform-files-discovery.js.map +1 -1
- package/dist/core/flows/flow-executor.js +974 -0
- package/dist/core/flows/flow-executor.js.map +1 -0
- package/dist/core/flows/flow-inverter.js +442 -0
- package/dist/core/flows/flow-inverter.js.map +1 -0
- package/dist/core/flows/flow-key-extractor.js +101 -0
- package/dist/core/flows/flow-key-extractor.js.map +1 -0
- package/dist/core/flows/flow-key-mapper.js +382 -0
- package/dist/core/flows/flow-key-mapper.js.map +1 -0
- package/dist/core/flows/flow-transforms.js +632 -0
- package/dist/core/flows/flow-transforms.js.map +1 -0
- package/dist/core/flows/map-pipeline/context.js +73 -0
- package/dist/core/flows/map-pipeline/context.js.map +1 -0
- package/dist/core/flows/map-pipeline/index.js +156 -0
- package/dist/core/flows/map-pipeline/index.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/copy.js +104 -0
- package/dist/core/flows/map-pipeline/operations/copy.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/pipe.js +70 -0
- package/dist/core/flows/map-pipeline/operations/pipe.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/rename.js +102 -0
- package/dist/core/flows/map-pipeline/operations/rename.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/set.js +50 -0
- package/dist/core/flows/map-pipeline/operations/set.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/switch.js +79 -0
- package/dist/core/flows/map-pipeline/operations/switch.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/transform.js +543 -0
- package/dist/core/flows/map-pipeline/operations/transform.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/unset.js +65 -0
- package/dist/core/flows/map-pipeline/operations/unset.js.map +1 -0
- package/dist/core/flows/map-pipeline/types.js +8 -0
- package/dist/core/flows/map-pipeline/types.js.map +1 -0
- package/dist/core/flows/map-pipeline/utils.js +278 -0
- package/dist/core/flows/map-pipeline/utils.js.map +1 -0
- package/dist/core/flows/platform-converter.js +328 -0
- package/dist/core/flows/platform-converter.js.map +1 -0
- package/dist/core/flows/source-resolver.js +192 -0
- package/dist/core/flows/source-resolver.js.map +1 -0
- package/dist/core/flows/toml-domain-transforms.js +23 -0
- package/dist/core/flows/toml-domain-transforms.js.map +1 -0
- package/dist/core/install/bulk-install-pipeline.js +68 -7
- package/dist/core/install/bulk-install-pipeline.js.map +1 -1
- package/dist/core/install/canonical-plan.js +3 -3
- package/dist/core/install/canonical-plan.js.map +1 -1
- package/dist/core/install/dry-run.js +3 -3
- package/dist/core/install/dry-run.js.map +1 -1
- package/dist/core/install/flow-based-installer.js +1158 -0
- package/dist/core/install/flow-based-installer.js.map +1 -0
- package/dist/core/install/flow-workspace-tracker.js +111 -0
- package/dist/core/install/flow-workspace-tracker.js.map +1 -0
- package/dist/core/install/format-detector.js +228 -0
- package/dist/core/install/format-detector.js.map +1 -0
- package/dist/core/install/git-package-loader.js +20 -0
- package/dist/core/install/git-package-loader.js.map +1 -0
- package/dist/core/install/install-errors.js +1 -1
- package/dist/core/install/install-errors.js.map +1 -1
- package/dist/core/install/install-flow.js +34 -14
- package/dist/core/install/install-flow.js.map +1 -1
- package/dist/core/install/install-pipeline.js +52 -17
- package/dist/core/install/install-pipeline.js.map +1 -1
- package/dist/core/install/install-reporting.js +26 -8
- package/dist/core/install/install-reporting.js.map +1 -1
- package/dist/core/install/local-source-resolution.js +103 -0
- package/dist/core/install/local-source-resolution.js.map +1 -0
- package/dist/core/install/marketplace-handler.js +221 -0
- package/dist/core/install/marketplace-handler.js.map +1 -0
- package/dist/core/install/path-install-pipeline.js +241 -0
- package/dist/core/install/path-install-pipeline.js.map +1 -0
- package/dist/core/install/path-package-loader.js +116 -0
- package/dist/core/install/path-package-loader.js.map +1 -0
- package/dist/core/install/plugin-detector.js +72 -0
- package/dist/core/install/plugin-detector.js.map +1 -0
- package/dist/core/install/plugin-to-universal-converter.js +218 -0
- package/dist/core/install/plugin-to-universal-converter.js.map +1 -0
- package/dist/core/install/plugin-transformer.js +191 -0
- package/dist/core/install/plugin-transformer.js.map +1 -0
- package/dist/core/install/version-selection.js +1 -1
- package/dist/core/install/version-selection.js.map +1 -1
- package/dist/core/openpackage.js +40 -22
- package/dist/core/openpackage.js.map +1 -1
- package/dist/core/pack/pack-output.js +62 -0
- package/dist/core/pack/pack-output.js.map +1 -0
- package/dist/core/pack/pack-pipeline.js +186 -0
- package/dist/core/pack/pack-pipeline.js.map +1 -0
- package/dist/core/package-context.js +45 -70
- package/dist/core/package-context.js.map +1 -1
- package/dist/core/package-creation.js +203 -0
- package/dist/core/package-creation.js.map +1 -0
- package/dist/core/package.js +20 -6
- package/dist/core/package.js.map +1 -1
- package/dist/core/platforms.js +665 -209
- package/dist/core/platforms.js.map +1 -1
- package/dist/core/push/push-context.js +1 -1
- package/dist/core/push/push-context.js.map +1 -1
- package/dist/core/push/push-upload.js +2 -2
- package/dist/core/push/push-upload.js.map +1 -1
- package/dist/core/registry.js +6 -6
- package/dist/core/registry.js.map +1 -1
- package/dist/core/remote-pull.js +2 -2
- package/dist/core/remote-pull.js.map +1 -1
- package/dist/core/remove/removal-collector.js +52 -0
- package/dist/core/remove/removal-collector.js.map +1 -0
- package/dist/core/remove/removal-confirmation.js +39 -0
- package/dist/core/remove/removal-confirmation.js.map +1 -0
- package/dist/core/remove/remove-from-source-pipeline.js +173 -0
- package/dist/core/remove/remove-from-source-pipeline.js.map +1 -0
- package/dist/core/save/constants.js +3 -3
- package/dist/core/save/constants.js.map +1 -1
- package/dist/core/save/flow-based-saver.js +270 -0
- package/dist/core/save/flow-based-saver.js.map +1 -0
- package/dist/core/save/name-resolution.js +1 -1
- package/dist/core/save/name-resolution.js.map +1 -1
- package/dist/core/save/package-yml-generator.js +4 -5
- package/dist/core/save/package-yml-generator.js.map +1 -1
- package/dist/core/save/save-candidate-builder.js +215 -0
- package/dist/core/save/save-candidate-builder.js.map +1 -0
- package/dist/core/save/save-candidate-loader.js +12 -11
- package/dist/core/save/save-candidate-loader.js.map +1 -1
- package/dist/core/save/save-conflict-analyzer.js +150 -0
- package/dist/core/save/save-conflict-analyzer.js.map +1 -0
- package/dist/core/save/save-conflict-resolution.js +28 -14
- package/dist/core/save/save-conflict-resolution.js.map +1 -1
- package/dist/core/save/save-conflict-resolver.js +31 -275
- package/dist/core/save/save-conflict-resolver.js.map +1 -1
- package/dist/core/save/save-group-builder.js +52 -0
- package/dist/core/save/save-group-builder.js.map +1 -0
- package/dist/core/save/save-interactive-resolver.js +190 -0
- package/dist/core/save/save-interactive-resolver.js.map +1 -0
- package/dist/core/save/save-pipeline.js +58 -34
- package/dist/core/save/save-pipeline.js.map +1 -1
- package/dist/core/save/save-platform-handler.js +53 -0
- package/dist/core/save/save-platform-handler.js.map +1 -0
- package/dist/core/save/save-resolution-executor.js +145 -0
- package/dist/core/save/save-resolution-executor.js.map +1 -0
- package/dist/core/save/save-result-reporter.js +167 -0
- package/dist/core/save/save-result-reporter.js.map +1 -0
- package/dist/core/save/save-to-source-pipeline.js +154 -0
- package/dist/core/save/save-to-source-pipeline.js.map +1 -0
- package/dist/core/save/save-versioning.js +4 -4
- package/dist/core/save/save-versioning.js.map +1 -1
- package/dist/core/save/save-write-coordinator.js +204 -0
- package/dist/core/save/save-write-coordinator.js.map +1 -0
- package/dist/core/save/save-yml-resolution.js +28 -216
- package/dist/core/save/save-yml-resolution.js.map +1 -1
- package/dist/core/save/workspace-rename.js +7 -8
- package/dist/core/save/workspace-rename.js.map +1 -1
- package/dist/core/set/set-output.js +72 -0
- package/dist/core/set/set-output.js.map +1 -0
- package/dist/core/set/set-pipeline.js +361 -0
- package/dist/core/set/set-pipeline.js.map +1 -0
- package/dist/core/set/set-types.js +5 -0
- package/dist/core/set/set-types.js.map +1 -0
- package/dist/core/show/package-resolver.js +257 -0
- package/dist/core/show/package-resolver.js.map +1 -0
- package/dist/core/show/scope-discovery.js +165 -0
- package/dist/core/show/scope-discovery.js.map +1 -0
- package/dist/core/show/show-output.js +168 -0
- package/dist/core/show/show-output.js.map +1 -0
- package/dist/core/show/show-pipeline.js +113 -0
- package/dist/core/show/show-pipeline.js.map +1 -0
- package/dist/core/show/show-types.js +5 -0
- package/dist/core/show/show-types.js.map +1 -0
- package/dist/core/source-resolution/dependency-graph.js +104 -0
- package/dist/core/source-resolution/dependency-graph.js.map +1 -0
- package/dist/core/source-resolution/resolve-mutable-source.js +109 -0
- package/dist/core/source-resolution/resolve-mutable-source.js.map +1 -0
- package/dist/core/source-resolution/resolve-package-source.js +29 -0
- package/dist/core/source-resolution/resolve-package-source.js.map +1 -0
- package/dist/core/source-resolution/resolve-registry-version.js +35 -0
- package/dist/core/source-resolution/resolve-registry-version.js.map +1 -0
- package/dist/core/source-resolution/types.js.map +1 -0
- package/dist/core/status/status-file-discovery.js +23 -12
- package/dist/core/status/status-file-discovery.js.map +1 -1
- package/dist/core/status/status-pipeline.js +134 -0
- package/dist/core/status/status-pipeline.js.map +1 -0
- package/dist/core/sync/platform-sync-summary.js +27 -0
- package/dist/core/sync/platform-sync-summary.js.map +1 -0
- package/dist/core/uninstall/flow-aware-uninstaller.js +189 -0
- package/dist/core/uninstall/flow-aware-uninstaller.js.map +1 -0
- package/dist/core/uninstall/uninstall-file-discovery.js +11 -6
- package/dist/core/uninstall/uninstall-file-discovery.js.map +1 -1
- package/dist/core/uninstall/uninstall-pipeline.js +141 -0
- package/dist/core/uninstall/uninstall-pipeline.js.map +1 -0
- package/dist/core/universal-patterns.js +64 -0
- package/dist/core/universal-patterns.js.map +1 -0
- package/dist/index.js +99 -6
- package/dist/index.js.map +1 -1
- package/dist/types/flows.js +8 -0
- package/dist/types/flows.js.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/platform-flows.js +8 -0
- package/dist/types/platform-flows.js.map +1 -0
- package/dist/types/workspace-index.js +6 -0
- package/dist/types/workspace-index.js.map +1 -0
- package/dist/utils/custom-path-resolution.js +160 -0
- package/dist/utils/custom-path-resolution.js.map +1 -0
- package/dist/utils/dependency-coverage.js +1 -1
- package/dist/utils/dependency-coverage.js.map +1 -1
- package/dist/utils/file-processing.js +1 -1
- package/dist/utils/flow-index-installer.js +209 -0
- package/dist/utils/flow-index-installer.js.map +1 -0
- package/dist/utils/formatters.js +47 -1
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/fs.js +17 -0
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-clone-registry.js +88 -0
- package/dist/utils/git-clone-registry.js.map +1 -0
- package/dist/utils/git-clone.js +69 -0
- package/dist/utils/git-clone.js.map +1 -0
- package/dist/utils/git-spec.js +96 -0
- package/dist/utils/git-spec.js.map +1 -0
- package/dist/utils/http-client.js +7 -0
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/index-based-installer.js +356 -163
- package/dist/utils/index-based-installer.js.map +1 -1
- package/dist/utils/install-conflict-handler.js +2 -2
- package/dist/utils/install-conflict-handler.js.map +1 -1
- package/dist/utils/install-file-discovery.js +18 -13
- package/dist/utils/install-file-discovery.js.map +1 -1
- package/dist/utils/install-helpers.js +43 -20
- package/dist/utils/install-helpers.js.map +1 -1
- package/dist/utils/jsonc.js +23 -1
- package/dist/utils/jsonc.js.map +1 -1
- package/dist/utils/manifest-paths.js +1 -1
- package/dist/utils/manifest-paths.js.map +1 -1
- package/dist/utils/markdown-frontmatter.js +46 -0
- package/dist/utils/markdown-frontmatter.js.map +1 -1
- package/dist/utils/package-copy.js +5 -103
- package/dist/utils/package-copy.js.map +1 -1
- package/dist/utils/package-filters.js +9 -105
- package/dist/utils/package-filters.js.map +1 -1
- package/dist/utils/package-index-yml.js +27 -6
- package/dist/utils/package-index-yml.js.map +1 -1
- package/dist/utils/package-input.js +98 -0
- package/dist/utils/package-input.js.map +1 -0
- package/dist/utils/package-management.js +80 -28
- package/dist/utils/package-management.js.map +1 -1
- package/dist/utils/package-name-resolution.js +327 -0
- package/dist/utils/package-name-resolution.js.map +1 -0
- package/dist/utils/package-name.js +18 -16
- package/dist/utils/package-name.js.map +1 -1
- package/dist/utils/package-versioning.js +2 -33
- package/dist/utils/package-versioning.js.map +1 -1
- package/dist/utils/package-yml.js +19 -28
- package/dist/utils/package-yml.js.map +1 -1
- package/dist/utils/path-resolution.js +102 -0
- package/dist/utils/path-resolution.js.map +1 -0
- package/dist/utils/paths.js +6 -6
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/platform-file.js +36 -24
- package/dist/utils/platform-file.js.map +1 -1
- package/dist/utils/platform-mapper.js +222 -68
- package/dist/utils/platform-mapper.js.map +1 -1
- package/dist/utils/platform-root-files.js +44 -0
- package/dist/utils/platform-root-files.js.map +1 -0
- package/dist/utils/platform-utils.js +35 -54
- package/dist/utils/platform-utils.js.map +1 -1
- package/dist/utils/platform-yaml-merge.js +20 -140
- package/dist/utils/platform-yaml-merge.js.map +1 -1
- package/dist/utils/prompts.js +92 -7
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/registry-entry-filter.js +50 -27
- package/dist/utils/registry-entry-filter.js.map +1 -1
- package/dist/utils/registry-paths.js +5 -4
- package/dist/utils/registry-paths.js.map +1 -1
- package/dist/utils/scope-resolution.js +156 -0
- package/dist/utils/scope-resolution.js.map +1 -0
- package/dist/utils/source-mutability.js +15 -0
- package/dist/utils/source-mutability.js.map +1 -0
- package/dist/utils/tarball.js +29 -4
- package/dist/utils/tarball.js.map +1 -1
- package/dist/utils/version-ranges.js +1 -32
- package/dist/utils/version-ranges.js.map +1 -1
- package/dist/utils/workspace-index-helpers.js +28 -0
- package/dist/utils/workspace-index-helpers.js.map +1 -0
- package/dist/utils/workspace-index-ownership.js +100 -0
- package/dist/utils/workspace-index-ownership.js.map +1 -0
- package/dist/utils/workspace-index-yml.js +173 -0
- package/dist/utils/workspace-index-yml.js.map +1 -0
- package/examples/custom-subdirs-platform.jsonc +157 -0
- package/package.json +7 -2
- package/platforms.jsonc +531 -84
- package/schemas/map-pipeline-v1.json +256 -0
- package/schemas/platforms-v1.json +400 -0
- package/specs/README.md +88 -0
- package/specs/add/README.md +166 -0
- package/specs/agents-claude.md +570 -0
- package/specs/agents-opencode.md +622 -0
- package/specs/apply/README.md +21 -0
- package/specs/apply/apply-behavior.md +58 -0
- package/specs/apply/apply-command.md +51 -0
- package/specs/apply/conflicts.md +41 -0
- package/specs/apply/index-effects.md +81 -0
- package/specs/architecture.md +107 -0
- package/specs/auth/README.md +17 -0
- package/specs/auth/auth-http-contract.md +25 -0
- package/specs/auth/cli/credentials.md +39 -0
- package/specs/auth/cli/login.md +32 -0
- package/specs/auth/cli/logout.md +16 -0
- package/specs/claude-mcp.md +1065 -0
- package/specs/claude-plugins-marketplace.md +363 -0
- package/specs/claude-plugins.md +413 -0
- package/specs/cli-options.md +52 -0
- package/specs/codex-mcp.md +114 -0
- package/specs/commands-overview.md +175 -0
- package/specs/directory-layout.md +95 -0
- package/specs/install/README.md +12 -4
- package/specs/install/git-sources.md +230 -0
- package/specs/install/install-behavior.md +483 -73
- package/specs/install/package-yml-canonical.md +67 -35
- package/specs/install/version-resolution.md +69 -115
- package/specs/new/README.md +769 -0
- package/specs/new/SUMMARY.md +310 -0
- package/specs/new/scope-behavior.md +793 -0
- package/specs/pack/README.md +77 -0
- package/specs/pack/package-name-resolution.md +330 -0
- package/specs/package/README.md +18 -17
- package/specs/package/nested-packages-and-parent-packages.md +32 -31
- package/specs/package/package-index-yml.md +95 -101
- package/specs/package/package-root-layout.md +64 -46
- package/specs/package/registry-payload-and-copy.md +50 -44
- package/specs/package/universal-content.md +33 -56
- package/specs/package-sources.md +248 -0
- package/specs/platforms/README.md +52 -0
- package/specs/platforms/configuration.md +571 -0
- package/specs/platforms/detection.md +552 -0
- package/specs/platforms/directory-layout.md +599 -0
- package/specs/platforms/examples.md +1146 -0
- package/specs/platforms/flow-reference.md +1240 -0
- package/specs/platforms/flows.md +1488 -0
- package/specs/platforms/map-pipeline.md +801 -0
- package/specs/platforms/overview.md +349 -0
- package/specs/platforms/specification.md +700 -0
- package/specs/platforms/troubleshooting.md +697 -0
- package/specs/platforms/universal-converter.md +520 -0
- package/specs/push/README.md +1 -0
- package/specs/push/push-behavior.md +11 -3
- package/specs/push/push-remote-upload.md +1 -1
- package/specs/push/push-scoping.md +1 -1
- package/specs/push/push-version-selection.md +1 -1
- package/specs/registry.md +111 -0
- package/specs/remove/README.md +257 -0
- package/specs/save/README.md +21 -17
- package/specs/save/save-conflict-resolution.md +205 -83
- package/specs/save/save-file-discovery.md +6 -4
- package/specs/save/save-frontmatter-overrides.md +11 -15
- package/specs/save/save-modes-inputs.md +9 -39
- package/specs/save/save-naming-scoping.md +4 -4
- package/specs/save/save-package-detection.md +13 -13
- package/specs/save/save-registry-sync.md +16 -106
- package/specs/save/save-versioning.md +80 -0
- package/specs/scope-management.md +92 -0
- package/specs/set/README.md +520 -0
- package/specs/set/set-behavior.md +563 -0
- package/specs/show/README.md +483 -0
- package/specs/show/show-remote.md +494 -0
- package/specs/status/README.md +38 -0
- package/specs/uninstall/README.md +231 -0
- package/dist/commands/duplicate.js +0 -69
- package/dist/commands/duplicate.js.map +0 -1
- package/dist/commands/init.js +0 -117
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/prune.js +0 -357
- package/dist/commands/prune.js.map +0 -1
- package/dist/commands/tui.js +0 -61
- package/dist/commands/tui.js.map +0 -1
- package/dist/core/install/index.js +0 -3
- package/dist/core/install/index.js.map +0 -1
- package/dist/core/push/push-single-file.js +0 -56
- package/dist/core/push/push-single-file.js.map +0 -1
- package/dist/core/save/package-detection.js +0 -147
- package/dist/core/save/package-detection.js.map +0 -1
- package/dist/core/save/save-single-file.js +0 -124
- package/dist/core/save/save-single-file.js.map +0 -1
- package/dist/core/token-store.js +0 -73
- package/dist/core/token-store.js.map +0 -1
- package/dist/tui/app.js +0 -95
- package/dist/tui/app.js.map +0 -1
- package/dist/tui/components/package-list.js +0 -73
- package/dist/tui/components/package-list.js.map +0 -1
- package/dist/tui/controller.js +0 -365
- package/dist/tui/controller.js.map +0 -1
- package/dist/tui/index.js +0 -12
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/services/file-index.js +0 -64
- package/dist/tui/services/file-index.js.map +0 -1
- package/dist/tui/services/packages.js +0 -18
- package/dist/tui/services/packages.js.map +0 -1
- package/dist/tui/services/save.js +0 -21
- package/dist/tui/services/save.js.map +0 -1
- package/dist/tui/state/app-state.js +0 -15
- package/dist/tui/state/app-state.js.map +0 -1
- package/dist/tui/state.js +0 -17
- package/dist/tui/state.js.map +0 -1
- package/dist/tui/types.js.map +0 -1
- package/dist/tui/views/add-file-modal.js +0 -129
- package/dist/tui/views/add-file-modal.js.map +0 -1
- package/dist/tui/views/file-preview.js +0 -44
- package/dist/tui/views/file-preview.js.map +0 -1
- package/dist/tui/views/list-packages.js +0 -73
- package/dist/tui/views/list-packages.js.map +0 -1
- package/dist/tui/views/main-menu.js +0 -29
- package/dist/tui/views/main-menu.js.map +0 -1
- package/dist/tui/views/manage-view.js +0 -81
- package/dist/tui/views/manage-view.js.map +0 -1
- package/dist/tui/views/package-hub.js +0 -120
- package/dist/tui/views/package-hub.js.map +0 -1
- package/dist/tui/views/placeholder.js +0 -24
- package/dist/tui/views/placeholder.js.map +0 -1
- package/dist/utils/bun-bootstrap.js +0 -72
- package/dist/utils/bun-bootstrap.js.map +0 -1
- package/dist/utils/entity-id.js +0 -19
- package/dist/utils/entity-id.js.map +0 -1
- package/dist/utils/package-local-files.js +0 -5
- package/dist/utils/package-local-files.js.map +0 -1
- package/dist/utils/path-matching.js +0 -74
- package/dist/utils/path-matching.js.map +0 -1
- package/dist/utils/root-file-operations.js +0 -39
- package/dist/utils/root-file-operations.js.map +0 -1
- package/dist/utils/root-file-transformer.js +0 -27
- package/dist/utils/root-file-transformer.js.map +0 -1
- package/dist/utils/yaml-frontmatter.js +0 -25
- package/dist/utils/yaml-frontmatter.js.map +0 -1
- package/specs/auth/auth-device-flow.md +0 -70
- package/specs/login/login-device-flow.md +0 -70
- package/specs/platforms.md +0 -193
- package/specs/save-pack-versioning.md +0 -224
- package/specs/save-pack.md +0 -68
- /package/dist/{tui → core/source-resolution}/types.js +0 -0
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
# Discover and install prebuilt plugins through marketplaces
|
|
2
|
+
|
|
3
|
+
> Find and install plugins from marketplaces to extend Claude Code with new commands, agents, and capabilities.
|
|
4
|
+
|
|
5
|
+
Plugins extend Claude Code with custom commands, agents, hooks, and MCP servers. Plugin marketplaces are catalogs that help you discover and install these extensions without building them yourself.
|
|
6
|
+
|
|
7
|
+
Looking to create and distribute your own marketplace? See [Create and distribute a plugin marketplace](/en/plugin-marketplaces).
|
|
8
|
+
|
|
9
|
+
## How marketplaces work
|
|
10
|
+
|
|
11
|
+
A marketplace is a catalog of plugins that someone else has created and shared. Using a marketplace is a two-step process:
|
|
12
|
+
|
|
13
|
+
<Steps>
|
|
14
|
+
<Step title="Add the marketplace">
|
|
15
|
+
This registers the catalog with Claude Code so you can browse what's available. No plugins are installed yet.
|
|
16
|
+
</Step>
|
|
17
|
+
|
|
18
|
+
<Step title="Install individual plugins">
|
|
19
|
+
Browse the catalog and install the plugins you want.
|
|
20
|
+
</Step>
|
|
21
|
+
</Steps>
|
|
22
|
+
|
|
23
|
+
Think of it like adding an app store: adding the store gives you access to browse its collection, but you still choose which apps to download individually.
|
|
24
|
+
|
|
25
|
+
## Official Anthropic marketplace
|
|
26
|
+
|
|
27
|
+
The official Anthropic marketplace (`claude-plugins-official`) is automatically available when you start Claude Code. Run `/plugin` and go to the **Discover** tab to browse what's available.
|
|
28
|
+
|
|
29
|
+
To install a plugin from the official marketplace:
|
|
30
|
+
|
|
31
|
+
```shell theme={null}
|
|
32
|
+
/plugin install plugin-name@claude-plugins-official
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
<Note>
|
|
36
|
+
The official marketplace is maintained by Anthropic. To distribute your own plugins, [create your own marketplace](/en/plugin-marketplaces) and share it with users.
|
|
37
|
+
</Note>
|
|
38
|
+
|
|
39
|
+
The official marketplace includes several categories of plugins:
|
|
40
|
+
|
|
41
|
+
### Code intelligence
|
|
42
|
+
|
|
43
|
+
Code intelligence plugins help Claude understand your codebase more deeply. With these plugins installed, Claude can jump to definitions, find references, and see type errors immediately after edits. These plugins use the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP), the same technology that powers VS Code's code intelligence.
|
|
44
|
+
|
|
45
|
+
These plugins require the language server binary to be installed on your system. If you already have a language server installed, Claude may prompt you to install the corresponding plugin when you open a project.
|
|
46
|
+
|
|
47
|
+
| Language | Plugin | Binary required |
|
|
48
|
+
| :--------- | :------------------ | :--------------------------- |
|
|
49
|
+
| C/C++ | `clangd-lsp` | `clangd` |
|
|
50
|
+
| C# | `csharp-lsp` | `csharp-ls` |
|
|
51
|
+
| Go | `gopls-lsp` | `gopls` |
|
|
52
|
+
| Java | `jdtls-lsp` | `jdtls` |
|
|
53
|
+
| Lua | `lua-lsp` | `lua-language-server` |
|
|
54
|
+
| PHP | `php-lsp` | `intelephense` |
|
|
55
|
+
| Python | `pyright-lsp` | `pyright-langserver` |
|
|
56
|
+
| Rust | `rust-analyzer-lsp` | `rust-analyzer` |
|
|
57
|
+
| Swift | `swift-lsp` | `sourcekit-lsp` |
|
|
58
|
+
| TypeScript | `typescript-lsp` | `typescript-language-server` |
|
|
59
|
+
|
|
60
|
+
You can also [create your own LSP plugin](/en/plugins-reference#lsp-servers) for other languages.
|
|
61
|
+
|
|
62
|
+
<Note>
|
|
63
|
+
If you see `Executable not found in $PATH` in the `/plugin` Errors tab after installing a plugin, install the required binary from the table above.
|
|
64
|
+
</Note>
|
|
65
|
+
|
|
66
|
+
### External integrations
|
|
67
|
+
|
|
68
|
+
These plugins bundle pre-configured [MCP servers](/en/mcp) so you can connect Claude to external services without manual setup:
|
|
69
|
+
|
|
70
|
+
* **Source control**: `github`, `gitlab`
|
|
71
|
+
* **Project management**: `atlassian` (Jira/Confluence), `asana`, `linear`, `notion`
|
|
72
|
+
* **Design**: `figma`
|
|
73
|
+
* **Infrastructure**: `vercel`, `firebase`, `supabase`
|
|
74
|
+
* **Communication**: `slack`
|
|
75
|
+
* **Monitoring**: `sentry`
|
|
76
|
+
|
|
77
|
+
### Development workflows
|
|
78
|
+
|
|
79
|
+
Plugins that add commands and agents for common development tasks:
|
|
80
|
+
|
|
81
|
+
* **commit-commands**: Git commit workflows including commit, push, and PR creation
|
|
82
|
+
* **pr-review-toolkit**: Specialized agents for reviewing pull requests
|
|
83
|
+
* **agent-sdk-dev**: Tools for building with the Claude Agent SDK
|
|
84
|
+
* **plugin-dev**: Toolkit for creating your own plugins
|
|
85
|
+
|
|
86
|
+
### Output styles
|
|
87
|
+
|
|
88
|
+
Customize how Claude responds:
|
|
89
|
+
|
|
90
|
+
* **explanatory-output-style**: Educational insights about implementation choices
|
|
91
|
+
* **learning-output-style**: Interactive learning mode for skill building
|
|
92
|
+
|
|
93
|
+
## Try it: add the demo marketplace
|
|
94
|
+
|
|
95
|
+
Anthropic also maintains a [demo plugins marketplace](https://github.com/anthropics/claude-code/tree/main/plugins) (`claude-code-plugins`) with example plugins that show what's possible with the plugin system. Unlike the official marketplace, you need to add this one manually.
|
|
96
|
+
|
|
97
|
+
<Steps>
|
|
98
|
+
<Step title="Add the marketplace">
|
|
99
|
+
From within Claude Code, run the `plugin marketplace add` command for the `anthropics/claude-code` marketplace:
|
|
100
|
+
|
|
101
|
+
```shell theme={null}
|
|
102
|
+
/plugin marketplace add anthropics/claude-code
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
This downloads the marketplace catalog and makes its plugins available to you.
|
|
106
|
+
</Step>
|
|
107
|
+
|
|
108
|
+
<Step title="Browse available plugins">
|
|
109
|
+
Run `/plugin` to open the plugin manager. This opens a tabbed interface with four tabs you can cycle through using **Tab** (or **Shift+Tab** to go backward):
|
|
110
|
+
|
|
111
|
+
* **Discover**: browse available plugins from all your marketplaces
|
|
112
|
+
* **Installed**: view and manage your installed plugins
|
|
113
|
+
* **Marketplaces**: add, remove, or update your added marketplaces
|
|
114
|
+
* **Errors**: view any plugin loading errors
|
|
115
|
+
|
|
116
|
+
Go to the **Discover** tab to see plugins from the marketplace you just added.
|
|
117
|
+
</Step>
|
|
118
|
+
|
|
119
|
+
<Step title="Install a plugin">
|
|
120
|
+
Select a plugin to view its details, then choose an installation scope:
|
|
121
|
+
|
|
122
|
+
* **User scope**: install for yourself across all projects
|
|
123
|
+
* **Project scope**: install for all collaborators on this repository
|
|
124
|
+
* **Local scope**: install for yourself in this repository only
|
|
125
|
+
|
|
126
|
+
For example, select **commit-commands** (a plugin that adds git workflow commands) and install it to your user scope.
|
|
127
|
+
|
|
128
|
+
You can also install directly from the command line:
|
|
129
|
+
|
|
130
|
+
```shell theme={null}
|
|
131
|
+
/plugin install commit-commands@anthropics-claude-code
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
See [Configuration scopes](/en/settings#configuration-scopes) to learn more about scopes.
|
|
135
|
+
</Step>
|
|
136
|
+
|
|
137
|
+
<Step title="Use your new plugin">
|
|
138
|
+
After installing, the plugin's commands are immediately available. Plugin commands are namespaced by the plugin name, so **commit-commands** provides commands like `/commit-commands:commit`.
|
|
139
|
+
|
|
140
|
+
Try it out by making a change to a file and running:
|
|
141
|
+
|
|
142
|
+
```shell theme={null}
|
|
143
|
+
/commit-commands:commit
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
This stages your changes, generates a commit message, and creates the commit.
|
|
147
|
+
|
|
148
|
+
Each plugin works differently. Check the plugin's description in the **Discover** tab or its homepage to learn what commands and capabilities it provides.
|
|
149
|
+
</Step>
|
|
150
|
+
</Steps>
|
|
151
|
+
|
|
152
|
+
The rest of this guide covers all the ways you can add marketplaces, install plugins, and manage your configuration.
|
|
153
|
+
|
|
154
|
+
## Add marketplaces
|
|
155
|
+
|
|
156
|
+
Use the `/plugin marketplace add` command to add marketplaces from different sources.
|
|
157
|
+
|
|
158
|
+
<Tip>
|
|
159
|
+
**Shortcuts**: You can use `/plugin market` instead of `/plugin marketplace`, and `rm` instead of `remove`.
|
|
160
|
+
</Tip>
|
|
161
|
+
|
|
162
|
+
* **GitHub repositories**: `owner/repo` format (for example, `anthropics/claude-code`)
|
|
163
|
+
* **Git URLs**: any git repository URL (GitLab, Bitbucket, self-hosted)
|
|
164
|
+
* **Local paths**: directories or direct paths to `marketplace.json` files
|
|
165
|
+
* **Remote URLs**: direct URLs to hosted `marketplace.json` files
|
|
166
|
+
|
|
167
|
+
### Add from GitHub
|
|
168
|
+
|
|
169
|
+
Add a GitHub repository that contains a `.claude-plugin/marketplace.json` file using the `owner/repo` format—where `owner` is the GitHub username or organization and `repo` is the repository name.
|
|
170
|
+
|
|
171
|
+
For example, `anthropics/claude-code` refers to the `claude-code` repository owned by `anthropics`:
|
|
172
|
+
|
|
173
|
+
```shell theme={null}
|
|
174
|
+
/plugin marketplace add anthropics/claude-code
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Add from other Git hosts
|
|
178
|
+
|
|
179
|
+
Add any git repository by providing the full URL. This works with any Git host, including GitLab, Bitbucket, and self-hosted servers:
|
|
180
|
+
|
|
181
|
+
Using HTTPS:
|
|
182
|
+
|
|
183
|
+
```shell theme={null}
|
|
184
|
+
/plugin marketplace add https://gitlab.com/company/plugins.git
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Using SSH:
|
|
188
|
+
|
|
189
|
+
```shell theme={null}
|
|
190
|
+
/plugin marketplace add git@gitlab.com:company/plugins.git
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
To add a specific branch or tag, append `#` followed by the ref:
|
|
194
|
+
|
|
195
|
+
```shell theme={null}
|
|
196
|
+
/plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Add from local paths
|
|
200
|
+
|
|
201
|
+
Add a local directory that contains a `.claude-plugin/marketplace.json` file:
|
|
202
|
+
|
|
203
|
+
```shell theme={null}
|
|
204
|
+
/plugin marketplace add ./my-marketplace
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
You can also add a direct path to a `marketplace.json` file:
|
|
208
|
+
|
|
209
|
+
```shell theme={null}
|
|
210
|
+
/plugin marketplace add ./path/to/marketplace.json
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Or add a remote `marketplace.json` file via URL:
|
|
214
|
+
|
|
215
|
+
```shell theme={null}
|
|
216
|
+
/plugin marketplace add https://example.com/marketplace.json
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Install plugins
|
|
220
|
+
|
|
221
|
+
Once you've added marketplaces, you can install plugins directly (installs to user scope by default):
|
|
222
|
+
|
|
223
|
+
```shell theme={null}
|
|
224
|
+
/plugin install plugin-name@marketplace-name
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
To choose a different [installation scope](/en/settings#configuration-scopes), use the interactive UI: run `/plugin`, go to the **Discover** tab, and press **Enter** on a plugin. You'll see options for:
|
|
228
|
+
|
|
229
|
+
* **User scope** (default): install for yourself across all projects
|
|
230
|
+
* **Project scope**: install for all collaborators on this repository (adds to `.claude/settings.json`)
|
|
231
|
+
* **Local scope**: install for yourself in this repository only (not shared with collaborators)
|
|
232
|
+
|
|
233
|
+
You may also see plugins with **managed** scope—these are installed by enterprise administrators via [managed settings](/en/settings#enterprise-managed-policy-settings) and cannot be modified.
|
|
234
|
+
|
|
235
|
+
Run `/plugin` and go to the **Installed** tab to see your plugins grouped by scope.
|
|
236
|
+
|
|
237
|
+
<Warning>
|
|
238
|
+
Make sure you trust a plugin before installing it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they work as intended. Check each plugin's homepage for more information.
|
|
239
|
+
</Warning>
|
|
240
|
+
|
|
241
|
+
## Manage installed plugins
|
|
242
|
+
|
|
243
|
+
Run `/plugin` and go to the **Installed** tab to view, enable, disable, or uninstall your plugins.
|
|
244
|
+
|
|
245
|
+
You can also manage plugins with direct commands.
|
|
246
|
+
|
|
247
|
+
Disable a plugin without uninstalling:
|
|
248
|
+
|
|
249
|
+
```shell theme={null}
|
|
250
|
+
/plugin disable plugin-name@marketplace-name
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Re-enable a disabled plugin:
|
|
254
|
+
|
|
255
|
+
```shell theme={null}
|
|
256
|
+
/plugin enable plugin-name@marketplace-name
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Completely remove a plugin:
|
|
260
|
+
|
|
261
|
+
```shell theme={null}
|
|
262
|
+
/plugin uninstall plugin-name@marketplace-name
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
The `--scope` option lets you target a specific scope with CLI commands:
|
|
266
|
+
|
|
267
|
+
```shell theme={null}
|
|
268
|
+
claude plugin install formatter@your-org --scope project
|
|
269
|
+
claude plugin uninstall formatter@your-org --scope project
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Manage marketplaces
|
|
273
|
+
|
|
274
|
+
You can manage marketplaces through the interactive `/plugin` interface or with CLI commands.
|
|
275
|
+
|
|
276
|
+
### Use the interactive interface
|
|
277
|
+
|
|
278
|
+
Run `/plugin` and go to the **Marketplaces** tab to:
|
|
279
|
+
|
|
280
|
+
* View all your added marketplaces with their sources and status
|
|
281
|
+
* Add new marketplaces
|
|
282
|
+
* Update marketplace listings to fetch the latest plugins
|
|
283
|
+
* Remove marketplaces you no longer need
|
|
284
|
+
|
|
285
|
+
### Use CLI commands
|
|
286
|
+
|
|
287
|
+
You can also manage marketplaces with direct commands.
|
|
288
|
+
|
|
289
|
+
List all configured marketplaces:
|
|
290
|
+
|
|
291
|
+
```shell theme={null}
|
|
292
|
+
/plugin marketplace list
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Refresh plugin listings from a marketplace:
|
|
296
|
+
|
|
297
|
+
```shell theme={null}
|
|
298
|
+
/plugin marketplace update marketplace-name
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Remove a marketplace:
|
|
302
|
+
|
|
303
|
+
```shell theme={null}
|
|
304
|
+
/plugin marketplace remove marketplace-name
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
<Warning>
|
|
308
|
+
Removing a marketplace will uninstall any plugins you installed from it.
|
|
309
|
+
</Warning>
|
|
310
|
+
|
|
311
|
+
### Configure auto-updates
|
|
312
|
+
|
|
313
|
+
Claude Code can automatically update marketplaces and their installed plugins at startup. When auto-update is enabled for a marketplace, Claude Code refreshes the marketplace data and updates installed plugins to their latest versions. If any plugins were updated, you'll see a notification suggesting you restart Claude Code.
|
|
314
|
+
|
|
315
|
+
Toggle auto-update for individual marketplaces through the UI:
|
|
316
|
+
|
|
317
|
+
1. Run `/plugin` to open the plugin manager
|
|
318
|
+
2. Select **Marketplaces**
|
|
319
|
+
3. Choose a marketplace from the list
|
|
320
|
+
4. Select **Enable auto-update** or **Disable auto-update**
|
|
321
|
+
|
|
322
|
+
Official Anthropic marketplaces have auto-update enabled by default. Third-party and local development marketplaces have auto-update disabled by default.
|
|
323
|
+
|
|
324
|
+
To disable all automatic updates entirely for both Claude Code and all plugins, set the `DISABLE_AUTOUPDATER` environment variable. See [Auto updates](/en/setup#auto-updates) for details.
|
|
325
|
+
|
|
326
|
+
## Configure team marketplaces
|
|
327
|
+
|
|
328
|
+
Team admins can set up automatic marketplace installation for projects by adding marketplace configuration to `.claude/settings.json`. When team members trust the repository folder, Claude Code prompts them to install these marketplaces and plugins.
|
|
329
|
+
|
|
330
|
+
For full configuration options including `extraKnownMarketplaces` and `enabledPlugins`, see [Plugin settings](/en/settings#plugin-settings).
|
|
331
|
+
|
|
332
|
+
## Troubleshooting
|
|
333
|
+
|
|
334
|
+
### /plugin command not recognized
|
|
335
|
+
|
|
336
|
+
If you see "unknown command" or the `/plugin` command doesn't appear:
|
|
337
|
+
|
|
338
|
+
1. **Check your version**: Run `claude --version`. Plugins require version 1.0.33 or later.
|
|
339
|
+
2. **Update Claude Code**:
|
|
340
|
+
* **Homebrew**: `brew upgrade claude-code`
|
|
341
|
+
* **npm**: `npm update -g @anthropic-ai/claude-code`
|
|
342
|
+
* **Native installer**: Re-run the install command from [Setup](/en/setup)
|
|
343
|
+
3. **Restart Claude Code**: After updating, restart your terminal and run `claude` again.
|
|
344
|
+
|
|
345
|
+
### Common issues
|
|
346
|
+
|
|
347
|
+
* **Marketplace not loading**: Verify the URL is accessible and that `.claude-plugin/marketplace.json` exists at the path
|
|
348
|
+
* **Plugin installation failures**: Check that plugin source URLs are accessible and repositories are public (or you have access)
|
|
349
|
+
* **Files not found after installation**: Plugins are copied to a cache, so paths referencing files outside the plugin directory won't work
|
|
350
|
+
* **Plugin Skills not appearing**: Clear the cache with `rm -rf ~/.claude/plugins/cache`, restart Claude Code, and reinstall the plugin. See [Plugin Skills not appearing](/en/skills#plugin-skills-not-appearing-after-installation) for details.
|
|
351
|
+
|
|
352
|
+
For detailed troubleshooting with solutions, see [Troubleshooting](/en/plugin-marketplaces#troubleshooting) in the marketplace guide. For debugging tools, see [Debugging and development tools](/en/plugins-reference#debugging-and-development-tools).
|
|
353
|
+
|
|
354
|
+
## Next steps
|
|
355
|
+
|
|
356
|
+
* **Build your own plugins**: See [Plugins](/en/plugins) to create custom commands, agents, and hooks
|
|
357
|
+
* **Create a marketplace**: See [Create a plugin marketplace](/en/plugin-marketplaces) to distribute plugins to your team or community
|
|
358
|
+
* **Technical reference**: See [Plugins reference](/en/plugins-reference) for complete specifications
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
> To find navigation and other pages in this documentation, fetch the llms.txt file at: https://code.claude.com/docs/llms.txt
|