eslint-plugin-copilot 1.0.7 → 1.1.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 +74 -71
- package/dist/_internal/copilot-config-references.d.ts +1 -1
- package/dist/_internal/copilot-config-references.d.ts.map +1 -1
- package/dist/_internal/copilot-config-references.js +3 -1
- package/dist/_internal/copilot-config-references.js.map +1 -1
- package/dist/_internal/copilot-file-kind.d.ts +4 -0
- package/dist/_internal/copilot-file-kind.d.ts.map +1 -1
- package/dist/_internal/copilot-file-kind.js +20 -4
- package/dist/_internal/copilot-file-kind.js.map +1 -1
- package/dist/_internal/create-copilot-rule.d.ts +4 -2
- package/dist/_internal/create-copilot-rule.d.ts.map +1 -1
- package/dist/_internal/create-copilot-rule.js.map +1 -1
- package/dist/_internal/file-system.d.ts.map +1 -1
- package/dist/_internal/file-system.js +31 -18
- package/dist/_internal/file-system.js.map +1 -1
- package/dist/_internal/frontmatter.d.ts +1 -1
- package/dist/_internal/frontmatter.d.ts.map +1 -1
- package/dist/_internal/frontmatter.js +151 -119
- package/dist/_internal/frontmatter.js.map +1 -1
- package/dist/_internal/markdown-links.d.ts.map +1 -1
- package/dist/_internal/markdown-links.js +3 -1
- package/dist/_internal/markdown-links.js.map +1 -1
- package/dist/_internal/markdown-rule.d.ts +2 -1
- package/dist/_internal/markdown-rule.d.ts.map +1 -1
- package/dist/_internal/markdown-rule.js.map +1 -1
- package/dist/_internal/repository-hooks-json.d.ts +5 -2
- package/dist/_internal/repository-hooks-json.d.ts.map +1 -1
- package/dist/_internal/repository-hooks-json.js +7 -6
- package/dist/_internal/repository-hooks-json.js.map +1 -1
- package/dist/_internal/rule-catalog.d.ts.map +1 -1
- package/dist/_internal/rule-catalog.js +2 -3
- package/dist/_internal/rule-catalog.js.map +1 -1
- package/dist/plugin.cjs +615 -425
- package/dist/plugin.cjs.map +4 -4
- package/dist/plugin.d.cts +2 -1
- package/dist/plugin.d.ts +2 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +5 -3
- package/dist/plugin.js.map +1 -1
- package/dist/rules/no-blank-customization-body.d.ts +1 -0
- package/dist/rules/no-blank-customization-body.d.ts.map +1 -1
- package/dist/rules/no-blank-customization-body.js +3 -0
- package/dist/rules/no-blank-customization-body.js.map +1 -1
- package/dist/rules/no-blank-repository-instructions.d.ts +1 -0
- package/dist/rules/no-blank-repository-instructions.d.ts.map +1 -1
- package/dist/rules/no-blank-repository-instructions.js +3 -0
- package/dist/rules/no-blank-repository-instructions.js.map +1 -1
- package/dist/rules/no-blank-skill-body.d.ts +1 -0
- package/dist/rules/no-blank-skill-body.d.ts.map +1 -1
- package/dist/rules/no-blank-skill-body.js +3 -0
- package/dist/rules/no-blank-skill-body.js.map +1 -1
- package/dist/rules/no-deprecated-agent-infer.d.ts +1 -0
- package/dist/rules/no-deprecated-agent-infer.d.ts.map +1 -1
- package/dist/rules/no-deprecated-agent-infer.js +3 -0
- package/dist/rules/no-deprecated-agent-infer.js.map +1 -1
- package/dist/rules/no-duplicate-agent-names.d.ts +1 -0
- package/dist/rules/no-duplicate-agent-names.d.ts.map +1 -1
- package/dist/rules/no-duplicate-agent-names.js +6 -4
- package/dist/rules/no-duplicate-agent-names.js.map +1 -1
- package/dist/rules/no-duplicate-prompt-names.d.ts +1 -0
- package/dist/rules/no-duplicate-prompt-names.d.ts.map +1 -1
- package/dist/rules/no-duplicate-prompt-names.js +6 -4
- package/dist/rules/no-duplicate-prompt-names.js.map +1 -1
- package/dist/rules/no-duplicate-skill-names.d.ts +1 -0
- package/dist/rules/no-duplicate-skill-names.d.ts.map +1 -1
- package/dist/rules/no-duplicate-skill-names.js +6 -4
- package/dist/rules/no-duplicate-skill-names.js.map +1 -1
- package/dist/rules/no-duplicate-slash-command-names.d.ts +1 -0
- package/dist/rules/no-duplicate-slash-command-names.d.ts.map +1 -1
- package/dist/rules/no-duplicate-slash-command-names.js +6 -4
- package/dist/rules/no-duplicate-slash-command-names.js.map +1 -1
- package/dist/rules/no-empty-repository-hook-arrays.d.ts +1 -0
- package/dist/rules/no-empty-repository-hook-arrays.d.ts.map +1 -1
- package/dist/rules/no-empty-repository-hook-arrays.js +7 -3
- package/dist/rules/no-empty-repository-hook-arrays.js.map +1 -1
- package/dist/rules/no-legacy-chatmode-files.d.ts +1 -0
- package/dist/rules/no-legacy-chatmode-files.d.ts.map +1 -1
- package/dist/rules/no-legacy-chatmode-files.js +3 -0
- package/dist/rules/no-legacy-chatmode-files.js.map +1 -1
- package/dist/rules/prefer-custom-instructions-under-code-review-limit.d.ts +1 -0
- package/dist/rules/prefer-custom-instructions-under-code-review-limit.d.ts.map +1 -1
- package/dist/rules/prefer-custom-instructions-under-code-review-limit.js +3 -0
- package/dist/rules/prefer-custom-instructions-under-code-review-limit.js.map +1 -1
- package/dist/rules/prefer-fast-repository-hooks.d.ts +1 -0
- package/dist/rules/prefer-fast-repository-hooks.d.ts.map +1 -1
- package/dist/rules/prefer-fast-repository-hooks.js +5 -1
- package/dist/rules/prefer-fast-repository-hooks.js.map +1 -1
- package/dist/rules/prefer-qualified-tools.d.ts +1 -0
- package/dist/rules/prefer-qualified-tools.d.ts.map +1 -1
- package/dist/rules/prefer-qualified-tools.js +8 -3
- package/dist/rules/prefer-qualified-tools.js.map +1 -1
- package/dist/rules/require-agent-tool-for-subagents.d.ts +1 -0
- package/dist/rules/require-agent-tool-for-subagents.d.ts.map +1 -1
- package/dist/rules/require-agent-tool-for-subagents.js +6 -2
- package/dist/rules/require-agent-tool-for-subagents.js.map +1 -1
- package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.d.ts +1 -0
- package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.d.ts.map +1 -1
- package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.js +3 -0
- package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.js.map +1 -1
- package/dist/rules/require-chatmode-file-metadata.d.ts +1 -0
- package/dist/rules/require-chatmode-file-metadata.d.ts.map +1 -1
- package/dist/rules/require-chatmode-file-metadata.js +5 -1
- package/dist/rules/require-chatmode-file-metadata.js.map +1 -1
- package/dist/rules/require-existing-agent-hook-cwd.d.ts +1 -0
- package/dist/rules/require-existing-agent-hook-cwd.d.ts.map +1 -1
- package/dist/rules/require-existing-agent-hook-cwd.js +6 -2
- package/dist/rules/require-existing-agent-hook-cwd.js.map +1 -1
- package/dist/rules/require-existing-agent-mcp-servers.d.ts +1 -0
- package/dist/rules/require-existing-agent-mcp-servers.d.ts.map +1 -1
- package/dist/rules/require-existing-agent-mcp-servers.js +6 -2
- package/dist/rules/require-existing-agent-mcp-servers.js.map +1 -1
- package/dist/rules/require-existing-relative-agent-links.d.ts +1 -0
- package/dist/rules/require-existing-relative-agent-links.d.ts.map +1 -1
- package/dist/rules/require-existing-relative-agent-links.js +3 -0
- package/dist/rules/require-existing-relative-agent-links.js.map +1 -1
- package/dist/rules/require-existing-relative-instructions-links.d.ts +1 -0
- package/dist/rules/require-existing-relative-instructions-links.d.ts.map +1 -1
- package/dist/rules/require-existing-relative-instructions-links.js +3 -0
- package/dist/rules/require-existing-relative-instructions-links.js.map +1 -1
- package/dist/rules/require-existing-relative-prompt-links.d.ts +1 -0
- package/dist/rules/require-existing-relative-prompt-links.d.ts.map +1 -1
- package/dist/rules/require-existing-relative-prompt-links.js +3 -0
- package/dist/rules/require-existing-relative-prompt-links.js.map +1 -1
- package/dist/rules/require-existing-relative-skill-links.d.ts +1 -0
- package/dist/rules/require-existing-relative-skill-links.d.ts.map +1 -1
- package/dist/rules/require-existing-relative-skill-links.js +3 -0
- package/dist/rules/require-existing-relative-skill-links.js.map +1 -1
- package/dist/rules/require-existing-repository-hook-cwd.d.ts +1 -0
- package/dist/rules/require-existing-repository-hook-cwd.d.ts.map +1 -1
- package/dist/rules/require-existing-repository-hook-cwd.js +5 -1
- package/dist/rules/require-existing-repository-hook-cwd.js.map +1 -1
- package/dist/rules/require-github-copilot-target-for-mcp-servers.d.ts +1 -0
- package/dist/rules/require-github-copilot-target-for-mcp-servers.d.ts.map +1 -1
- package/dist/rules/require-github-copilot-target-for-mcp-servers.js +5 -1
- package/dist/rules/require-github-copilot-target-for-mcp-servers.js.map +1 -1
- package/dist/rules/require-instructions-apply-to.d.ts +1 -0
- package/dist/rules/require-instructions-apply-to.d.ts.map +1 -1
- package/dist/rules/require-instructions-apply-to.js +5 -1
- package/dist/rules/require-instructions-apply-to.js.map +1 -1
- package/dist/rules/require-json-agent-mcp-servers.d.ts +1 -0
- package/dist/rules/require-json-agent-mcp-servers.d.ts.map +1 -1
- package/dist/rules/require-json-agent-mcp-servers.js +6 -2
- package/dist/rules/require-json-agent-mcp-servers.js.map +1 -1
- package/dist/rules/require-prompt-file-metadata.d.ts +1 -0
- package/dist/rules/require-prompt-file-metadata.d.ts.map +1 -1
- package/dist/rules/require-prompt-file-metadata.js +43 -32
- package/dist/rules/require-prompt-file-metadata.js.map +1 -1
- package/dist/rules/require-qualified-agent-handoff-models.d.ts +1 -0
- package/dist/rules/require-qualified-agent-handoff-models.d.ts.map +1 -1
- package/dist/rules/require-qualified-agent-handoff-models.js +6 -2
- package/dist/rules/require-qualified-agent-handoff-models.js.map +1 -1
- package/dist/rules/require-relative-agent-hook-cwd.d.ts +1 -0
- package/dist/rules/require-relative-agent-hook-cwd.d.ts.map +1 -1
- package/dist/rules/require-relative-agent-hook-cwd.js +6 -2
- package/dist/rules/require-relative-agent-hook-cwd.js.map +1 -1
- package/dist/rules/require-relative-agent-links.d.ts +1 -0
- package/dist/rules/require-relative-agent-links.d.ts.map +1 -1
- package/dist/rules/require-relative-agent-links.js +3 -0
- package/dist/rules/require-relative-agent-links.js.map +1 -1
- package/dist/rules/require-relative-instructions-links.d.ts +1 -0
- package/dist/rules/require-relative-instructions-links.d.ts.map +1 -1
- package/dist/rules/require-relative-instructions-links.js +3 -0
- package/dist/rules/require-relative-instructions-links.js.map +1 -1
- package/dist/rules/require-relative-prompt-links.d.ts +1 -0
- package/dist/rules/require-relative-prompt-links.d.ts.map +1 -1
- package/dist/rules/require-relative-prompt-links.js +3 -0
- package/dist/rules/require-relative-prompt-links.js.map +1 -1
- package/dist/rules/require-relative-repository-hook-cwd.d.ts +1 -0
- package/dist/rules/require-relative-repository-hook-cwd.d.ts.map +1 -1
- package/dist/rules/require-relative-repository-hook-cwd.js +5 -1
- package/dist/rules/require-relative-repository-hook-cwd.js.map +1 -1
- package/dist/rules/require-relative-skill-links.d.ts +1 -0
- package/dist/rules/require-relative-skill-links.d.ts.map +1 -1
- package/dist/rules/require-relative-skill-links.js +3 -0
- package/dist/rules/require-relative-skill-links.js.map +1 -1
- package/dist/rules/require-repository-hook-arrays.d.ts +1 -0
- package/dist/rules/require-repository-hook-arrays.d.ts.map +1 -1
- package/dist/rules/require-repository-hook-arrays.js +7 -3
- package/dist/rules/require-repository-hook-arrays.js.map +1 -1
- package/dist/rules/require-repository-hook-command-shell.d.ts +1 -0
- package/dist/rules/require-repository-hook-command-shell.d.ts.map +1 -1
- package/dist/rules/require-repository-hook-command-shell.js +5 -1
- package/dist/rules/require-repository-hook-command-shell.js.map +1 -1
- package/dist/rules/require-repository-hooks-object.d.ts +1 -0
- package/dist/rules/require-repository-hooks-object.d.ts.map +1 -1
- package/dist/rules/require-repository-hooks-object.js +3 -0
- package/dist/rules/require-repository-hooks-object.js.map +1 -1
- package/dist/rules/require-repository-instructions-file.d.ts +1 -0
- package/dist/rules/require-repository-instructions-file.d.ts.map +1 -1
- package/dist/rules/require-repository-instructions-file.js +8 -5
- package/dist/rules/require-repository-instructions-file.js.map +1 -1
- package/dist/rules/require-skill-file-location.d.ts +1 -0
- package/dist/rules/require-skill-file-location.d.ts.map +1 -1
- package/dist/rules/require-skill-file-location.js +3 -0
- package/dist/rules/require-skill-file-location.js.map +1 -1
- package/dist/rules/require-skill-file-metadata.d.ts +1 -0
- package/dist/rules/require-skill-file-metadata.d.ts.map +1 -1
- package/dist/rules/require-skill-file-metadata.js +6 -2
- package/dist/rules/require-skill-file-metadata.js.map +1 -1
- package/dist/rules/require-skill-md-filename.d.ts +1 -0
- package/dist/rules/require-skill-md-filename.d.ts.map +1 -1
- package/dist/rules/require-skill-md-filename.js +3 -0
- package/dist/rules/require-skill-md-filename.js.map +1 -1
- package/dist/rules/require-skill-name-match-directory.d.ts +1 -0
- package/dist/rules/require-skill-name-match-directory.d.ts.map +1 -1
- package/dist/rules/require-skill-name-match-directory.js +5 -1
- package/dist/rules/require-skill-name-match-directory.js.map +1 -1
- package/dist/rules/require-string-repository-hook-env-values.d.ts +1 -0
- package/dist/rules/require-string-repository-hook-env-values.d.ts.map +1 -1
- package/dist/rules/require-string-repository-hook-env-values.js +6 -2
- package/dist/rules/require-string-repository-hook-env-values.js.map +1 -1
- package/dist/rules/require-valid-agent-argument-hint.d.ts +1 -0
- package/dist/rules/require-valid-agent-argument-hint.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-argument-hint.js +5 -1
- package/dist/rules/require-valid-agent-argument-hint.js.map +1 -1
- package/dist/rules/require-valid-agent-handoff-send.d.ts +1 -0
- package/dist/rules/require-valid-agent-handoff-send.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-handoff-send.js +7 -3
- package/dist/rules/require-valid-agent-handoff-send.js.map +1 -1
- package/dist/rules/require-valid-agent-handoffs.d.ts +1 -0
- package/dist/rules/require-valid-agent-handoffs.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-handoffs.js +5 -1
- package/dist/rules/require-valid-agent-handoffs.js.map +1 -1
- package/dist/rules/require-valid-agent-hook-events.d.ts +1 -0
- package/dist/rules/require-valid-agent-hook-events.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-hook-events.js +6 -2
- package/dist/rules/require-valid-agent-hook-events.js.map +1 -1
- package/dist/rules/require-valid-agent-hook-timeouts.d.ts +1 -0
- package/dist/rules/require-valid-agent-hook-timeouts.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-hook-timeouts.js +6 -2
- package/dist/rules/require-valid-agent-hook-timeouts.js.map +1 -1
- package/dist/rules/require-valid-agent-hooks.d.ts +1 -0
- package/dist/rules/require-valid-agent-hooks.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-hooks.js +31 -21
- package/dist/rules/require-valid-agent-hooks.js.map +1 -1
- package/dist/rules/require-valid-agent-invocation-controls.d.ts +1 -0
- package/dist/rules/require-valid-agent-invocation-controls.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-invocation-controls.js +7 -3
- package/dist/rules/require-valid-agent-invocation-controls.js.map +1 -1
- package/dist/rules/require-valid-agent-mcp-servers.d.ts +1 -0
- package/dist/rules/require-valid-agent-mcp-servers.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-mcp-servers.js +8 -4
- package/dist/rules/require-valid-agent-mcp-servers.js.map +1 -1
- package/dist/rules/require-valid-agent-model.d.ts +1 -0
- package/dist/rules/require-valid-agent-model.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-model.js +7 -3
- package/dist/rules/require-valid-agent-model.js.map +1 -1
- package/dist/rules/require-valid-agent-name.d.ts +1 -0
- package/dist/rules/require-valid-agent-name.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-name.js +5 -1
- package/dist/rules/require-valid-agent-name.js.map +1 -1
- package/dist/rules/require-valid-agent-subagents.d.ts +1 -0
- package/dist/rules/require-valid-agent-subagents.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-subagents.js +8 -4
- package/dist/rules/require-valid-agent-subagents.js.map +1 -1
- package/dist/rules/require-valid-agent-target.d.ts +1 -0
- package/dist/rules/require-valid-agent-target.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-target.js +6 -2
- package/dist/rules/require-valid-agent-target.js.map +1 -1
- package/dist/rules/require-valid-agent-tools.d.ts +1 -0
- package/dist/rules/require-valid-agent-tools.d.ts.map +1 -1
- package/dist/rules/require-valid-agent-tools.js +8 -4
- package/dist/rules/require-valid-agent-tools.js.map +1 -1
- package/dist/rules/require-valid-instructions-apply-to-globs.d.ts +1 -0
- package/dist/rules/require-valid-instructions-apply-to-globs.d.ts.map +1 -1
- package/dist/rules/require-valid-instructions-apply-to-globs.js +8 -3
- package/dist/rules/require-valid-instructions-apply-to-globs.js.map +1 -1
- package/dist/rules/require-valid-prompt-argument-hint.d.ts +1 -0
- package/dist/rules/require-valid-prompt-argument-hint.d.ts.map +1 -1
- package/dist/rules/require-valid-prompt-argument-hint.js +6 -3
- package/dist/rules/require-valid-prompt-argument-hint.js.map +1 -1
- package/dist/rules/require-valid-prompt-model.d.ts +1 -0
- package/dist/rules/require-valid-prompt-model.d.ts.map +1 -1
- package/dist/rules/require-valid-prompt-model.js +9 -5
- package/dist/rules/require-valid-prompt-model.js.map +1 -1
- package/dist/rules/require-valid-prompt-name.d.ts +1 -0
- package/dist/rules/require-valid-prompt-name.d.ts.map +1 -1
- package/dist/rules/require-valid-prompt-name.js +5 -1
- package/dist/rules/require-valid-prompt-name.js.map +1 -1
- package/dist/rules/require-valid-prompt-tools.d.ts +1 -0
- package/dist/rules/require-valid-prompt-tools.d.ts.map +1 -1
- package/dist/rules/require-valid-prompt-tools.js +8 -4
- package/dist/rules/require-valid-prompt-tools.js.map +1 -1
- package/dist/rules/require-valid-repository-hook-command-type.d.ts +1 -0
- package/dist/rules/require-valid-repository-hook-command-type.d.ts.map +1 -1
- package/dist/rules/require-valid-repository-hook-command-type.js +5 -1
- package/dist/rules/require-valid-repository-hook-command-type.js.map +1 -1
- package/dist/rules/require-valid-repository-hook-env.d.ts +1 -0
- package/dist/rules/require-valid-repository-hook-env.d.ts.map +1 -1
- package/dist/rules/require-valid-repository-hook-env.js +6 -2
- package/dist/rules/require-valid-repository-hook-env.js.map +1 -1
- package/dist/rules/require-valid-repository-hook-events.d.ts +1 -0
- package/dist/rules/require-valid-repository-hook-events.d.ts.map +1 -1
- package/dist/rules/require-valid-repository-hook-events.js +5 -1
- package/dist/rules/require-valid-repository-hook-events.js.map +1 -1
- package/dist/rules/require-valid-repository-hook-timeouts.d.ts +1 -0
- package/dist/rules/require-valid-repository-hook-timeouts.d.ts.map +1 -1
- package/dist/rules/require-valid-repository-hook-timeouts.js +7 -3
- package/dist/rules/require-valid-repository-hook-timeouts.js.map +1 -1
- package/dist/rules/require-valid-repository-hook-version.d.ts +1 -0
- package/dist/rules/require-valid-repository-hook-version.d.ts.map +1 -1
- package/dist/rules/require-valid-repository-hook-version.js +3 -0
- package/dist/rules/require-valid-repository-hook-version.js.map +1 -1
- package/dist/rules/require-valid-skill-directory-name.d.ts +1 -0
- package/dist/rules/require-valid-skill-directory-name.d.ts.map +1 -1
- package/dist/rules/require-valid-skill-directory-name.js +3 -0
- package/dist/rules/require-valid-skill-directory-name.js.map +1 -1
- package/dist/rules/require-valid-skill-license.d.ts +1 -0
- package/dist/rules/require-valid-skill-license.d.ts.map +1 -1
- package/dist/rules/require-valid-skill-license.js +5 -1
- package/dist/rules/require-valid-skill-license.js.map +1 -1
- package/dist/rules/require-valid-skill-name.d.ts +1 -0
- package/dist/rules/require-valid-skill-name.d.ts.map +1 -1
- package/dist/rules/require-valid-skill-name.js +5 -1
- package/dist/rules/require-valid-skill-name.js.map +1 -1
- package/docs/rules/getting-started.md +1 -1
- package/docs/rules/no-blank-customization-body.md +1 -1
- package/docs/rules/no-blank-repository-instructions.md +2 -1
- package/docs/rules/prefer-custom-instructions-under-code-review-limit.md +1 -0
- package/docs/rules/require-repository-instructions-file.md +8 -3
- package/package.json +75 -63
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
ESLint plugin for linting GitHub Copilot repository customization files such as:
|
|
6
6
|
|
|
7
7
|
- `.github/copilot-instructions.md`
|
|
8
|
+
- `.github/instructions/copilot-instructions.md`
|
|
8
9
|
- `.github/instructions/**/*.instructions.md`
|
|
9
10
|
- `.github/prompts/**/*.prompt.md`
|
|
10
11
|
- `.github/agents/**/*.agent.md`
|
|
@@ -55,6 +56,7 @@ The shipped presets already configure:
|
|
|
55
56
|
The built-in presets target these Markdown file patterns:
|
|
56
57
|
|
|
57
58
|
- `.github/copilot-instructions.md`
|
|
59
|
+
- `.github/instructions/copilot-instructions.md`
|
|
58
60
|
- `.github/instructions/**/*.instructions.md`
|
|
59
61
|
- `.github/prompts/**/*.prompt.md`
|
|
60
62
|
- `.github/agents/**/*.agent.md`
|
|
@@ -96,77 +98,78 @@ export default [
|
|
|
96
98
|
|
|
97
99
|
## Rules
|
|
98
100
|
|
|
99
|
-
| Rule
|
|
100
|
-
|
|
|
101
|
-
| [`no-blank-customization-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-customization-body)
|
|
102
|
-
| [`no-blank-repository-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-repository-instructions)
|
|
103
|
-
| [`no-blank-skill-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-skill-body)
|
|
104
|
-
| [`no-deprecated-agent-infer`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-deprecated-agent-infer)
|
|
105
|
-
| [`no-duplicate-agent-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-agent-names)
|
|
106
|
-
| [`no-duplicate-prompt-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-prompt-names)
|
|
107
|
-
| [`no-duplicate-skill-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-skill-names)
|
|
108
|
-
| [`no-duplicate-slash-command-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-slash-command-names)
|
|
109
|
-
| [`no-empty-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-empty-repository-hook-arrays)
|
|
110
|
-
| [`no-legacy-chatmode-files`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-legacy-chatmode-files)
|
|
111
|
-
| [`prefer-custom-instructions-under-code-review-limit`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-custom-instructions-under-code-review-limit)
|
|
112
|
-
| [`prefer-fast-repository-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-fast-repository-hooks)
|
|
113
|
-
| [`prefer-qualified-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-qualified-tools)
|
|
114
|
-
| [`require-agent-tool-for-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agent-tool-for-subagents)
|
|
115
|
-
| [`require-agents-md-for-cross-surface-agent-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agents-md-for-cross-surface-agent-instructions) |
|
|
116
|
-
| [`require-chatmode-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-chatmode-file-metadata)
|
|
117
|
-
| [`require-existing-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-hook-cwd)
|
|
118
|
-
| [`require-existing-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-mcp-servers)
|
|
119
|
-
| [`require-existing-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-agent-links)
|
|
120
|
-
| [`require-existing-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-instructions-links)
|
|
121
|
-
| [`require-existing-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-prompt-links)
|
|
122
|
-
| [`require-existing-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-skill-links)
|
|
123
|
-
| [`require-existing-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-repository-hook-cwd)
|
|
124
|
-
| [`require-github-copilot-target-for-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-github-copilot-target-for-mcp-servers)
|
|
125
|
-
| [`require-instructions-apply-to`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-instructions-apply-to)
|
|
126
|
-
| [`require-json-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-json-agent-mcp-servers)
|
|
127
|
-
| [`require-prompt-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-prompt-file-metadata)
|
|
128
|
-
| [`require-qualified-agent-handoff-models`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-qualified-agent-handoff-models)
|
|
129
|
-
| [`require-relative-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-hook-cwd)
|
|
130
|
-
| [`require-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-links)
|
|
131
|
-
| [`require-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-instructions-links)
|
|
132
|
-
| [`require-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-prompt-links)
|
|
133
|
-
| [`require-relative-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-repository-hook-cwd)
|
|
134
|
-
| [`require-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-skill-links)
|
|
135
|
-
| [`require-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-arrays)
|
|
136
|
-
| [`require-repository-hook-command-shell`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-command-shell)
|
|
137
|
-
| [`require-repository-hooks-object`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hooks-object)
|
|
138
|
-
| [`require-repository-instructions-file`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-instructions-file)
|
|
139
|
-
| [`require-skill-file-location`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-location)
|
|
140
|
-
| [`require-skill-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-metadata)
|
|
141
|
-
| [`require-skill-md-filename`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-md-filename)
|
|
142
|
-
| [`require-skill-name-match-directory`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-name-match-directory)
|
|
143
|
-
| [`require-string-repository-hook-env-values`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-string-repository-hook-env-values)
|
|
144
|
-
| [`require-valid-agent-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-argument-hint)
|
|
145
|
-
| [`require-valid-agent-handoff-send`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoff-send)
|
|
146
|
-
| [`require-valid-agent-handoffs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoffs)
|
|
147
|
-
| [`require-valid-agent-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-events)
|
|
148
|
-
| [`require-valid-agent-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-timeouts)
|
|
149
|
-
| [`require-valid-agent-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hooks)
|
|
150
|
-
| [`require-valid-agent-invocation-controls`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-invocation-controls)
|
|
151
|
-
| [`require-valid-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-mcp-servers)
|
|
152
|
-
| [`require-valid-agent-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-model)
|
|
153
|
-
| [`require-valid-agent-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-name)
|
|
154
|
-
| [`require-valid-agent-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-subagents)
|
|
155
|
-
| [`require-valid-agent-target`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-target)
|
|
156
|
-
| [`require-valid-agent-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-tools)
|
|
157
|
-
| [`require-valid-instructions-apply-to-globs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-instructions-apply-to-globs)
|
|
158
|
-
| [`require-valid-prompt-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-argument-hint)
|
|
159
|
-
| [`require-valid-prompt-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-model)
|
|
160
|
-
| [`require-valid-prompt-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-name)
|
|
161
|
-
| [`require-valid-prompt-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-tools)
|
|
162
|
-
| [`require-valid-repository-hook-command-type`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-command-type)
|
|
163
|
-
| [`require-valid-repository-hook-env`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-env)
|
|
164
|
-
| [`require-valid-repository-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-events)
|
|
165
|
-
| [`require-valid-repository-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-timeouts)
|
|
166
|
-
| [`require-valid-repository-hook-version`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-version)
|
|
167
|
-
| [`require-valid-skill-directory-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-directory-name)
|
|
168
|
-
| [`require-valid-skill-license`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-license)
|
|
169
|
-
| [`require-valid-skill-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-name)
|
|
101
|
+
| Rule | all | minimal | recommended | strict |
|
|
102
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: | :-----: | :---------: | :----: |
|
|
103
|
+
| [`no-blank-customization-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-customization-body) | ✅ | — | ✅ | ✅ |
|
|
104
|
+
| [`no-blank-repository-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-repository-instructions) | ✅ | — | ✅ | ✅ |
|
|
105
|
+
| [`no-blank-skill-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-skill-body) | ✅ | — | ✅ | ✅ |
|
|
106
|
+
| [`no-deprecated-agent-infer`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-deprecated-agent-infer) | ✅ | — | ✅ | ✅ |
|
|
107
|
+
| [`no-duplicate-agent-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-agent-names) | ✅ | — | ✅ | ✅ |
|
|
108
|
+
| [`no-duplicate-prompt-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-prompt-names) | ✅ | — | ✅ | ✅ |
|
|
109
|
+
| [`no-duplicate-skill-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-skill-names) | ✅ | — | ✅ | ✅ |
|
|
110
|
+
| [`no-duplicate-slash-command-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-slash-command-names) | ✅ | — | ✅ | ✅ |
|
|
111
|
+
| [`no-empty-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-empty-repository-hook-arrays) | ✅ | — | — | ✅ |
|
|
112
|
+
| [`no-legacy-chatmode-files`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-legacy-chatmode-files) | ✅ | — | ✅ | ✅ |
|
|
113
|
+
| [`prefer-custom-instructions-under-code-review-limit`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-custom-instructions-under-code-review-limit) | ✅ | — | — | ✅ |
|
|
114
|
+
| [`prefer-fast-repository-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-fast-repository-hooks) | ✅ | — | — | ✅ |
|
|
115
|
+
| [`prefer-qualified-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-qualified-tools) | ✅ | — | — | — |
|
|
116
|
+
| [`require-agent-tool-for-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agent-tool-for-subagents) | ✅ | — | ✅ | ✅ |
|
|
117
|
+
| [`require-agents-md-for-cross-surface-agent-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agents-md-for-cross-surface-agent-instructions) | ✅ | — | — | ✅ |
|
|
118
|
+
| [`require-chatmode-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-chatmode-file-metadata) | ✅ | ✅ | ✅ | ✅ |
|
|
119
|
+
| [`require-existing-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-hook-cwd) | ✅ | — | — | ✅ |
|
|
120
|
+
| [`require-existing-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-mcp-servers) | ✅ | — | — | ✅ |
|
|
121
|
+
| [`require-existing-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-agent-links) | ✅ | — | — | ✅ |
|
|
122
|
+
| [`require-existing-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-instructions-links) | ✅ | — | — | ✅ |
|
|
123
|
+
| [`require-existing-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-prompt-links) | ✅ | — | — | ✅ |
|
|
124
|
+
| [`require-existing-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-skill-links) | ✅ | — | — | ✅ |
|
|
125
|
+
| [`require-existing-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-repository-hook-cwd) | ✅ | — | — | ✅ |
|
|
126
|
+
| [`require-github-copilot-target-for-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-github-copilot-target-for-mcp-servers) | ✅ | — | ✅ | ✅ |
|
|
127
|
+
| [`require-instructions-apply-to`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-instructions-apply-to) | ✅ | ✅ | ✅ | ✅ |
|
|
128
|
+
| [`require-json-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-json-agent-mcp-servers) | ✅ | — | ✅ | ✅ |
|
|
129
|
+
| [`require-prompt-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-prompt-file-metadata) | ✅ | ✅ | ✅ | ✅ |
|
|
130
|
+
| [`require-qualified-agent-handoff-models`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-qualified-agent-handoff-models) | ✅ | — | ✅ | ✅ |
|
|
131
|
+
| [`require-relative-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-hook-cwd) | ✅ | — | ✅ | ✅ |
|
|
132
|
+
| [`require-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-links) | ✅ | — | ✅ | ✅ |
|
|
133
|
+
| [`require-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-instructions-links) | ✅ | — | ✅ | ✅ |
|
|
134
|
+
| [`require-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-prompt-links) | ✅ | — | ✅ | ✅ |
|
|
135
|
+
| [`require-relative-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-repository-hook-cwd) | ✅ | — | ✅ | ✅ |
|
|
136
|
+
| [`require-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-skill-links) | ✅ | — | ✅ | ✅ |
|
|
137
|
+
| [`require-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-arrays) | ✅ | — | ✅ | ✅ |
|
|
138
|
+
| [`require-repository-hook-command-shell`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-command-shell) | ✅ | — | ✅ | ✅ |
|
|
139
|
+
| [`require-repository-hooks-object`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hooks-object) | ✅ | — | ✅ | ✅ |
|
|
140
|
+
| [`require-repository-instructions-file`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-instructions-file) | ✅ | — | — | ✅ |
|
|
141
|
+
| [`require-skill-file-location`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-location) | ✅ | — | ✅ | ✅ |
|
|
142
|
+
| [`require-skill-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-metadata) | ✅ | — | ✅ | ✅ |
|
|
143
|
+
| [`require-skill-md-filename`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-md-filename) | ✅ | — | ✅ | ✅ |
|
|
144
|
+
| [`require-skill-name-match-directory`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-name-match-directory) | ✅ | — | — | ✅ |
|
|
145
|
+
| [`require-string-repository-hook-env-values`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-string-repository-hook-env-values) | ✅ | — | ✅ | ✅ |
|
|
146
|
+
| [`require-valid-agent-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-argument-hint) | ✅ | — | ✅ | ✅ |
|
|
147
|
+
| [`require-valid-agent-handoff-send`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoff-send) | ✅ | — | ✅ | ✅ |
|
|
148
|
+
| [`require-valid-agent-handoffs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoffs) | ✅ | — | ✅ | ✅ |
|
|
149
|
+
| [`require-valid-agent-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-events) | ✅ | — | ✅ | ✅ |
|
|
150
|
+
| [`require-valid-agent-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-timeouts) | ✅ | — | ✅ | ✅ |
|
|
151
|
+
| [`require-valid-agent-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hooks) | ✅ | — | ✅ | ✅ |
|
|
152
|
+
| [`require-valid-agent-invocation-controls`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-invocation-controls) | ✅ | — | ✅ | ✅ |
|
|
153
|
+
| [`require-valid-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-mcp-servers) | ✅ | — | ✅ | ✅ |
|
|
154
|
+
| [`require-valid-agent-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-model) | ✅ | — | ✅ | ✅ |
|
|
155
|
+
| [`require-valid-agent-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-name) | ✅ | — | ✅ | ✅ |
|
|
156
|
+
| [`require-valid-agent-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-subagents) | ✅ | — | ✅ | ✅ |
|
|
157
|
+
| [`require-valid-agent-target`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-target) | ✅ | — | ✅ | ✅ |
|
|
158
|
+
| [`require-valid-agent-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-tools) | ✅ | — | ✅ | ✅ |
|
|
159
|
+
| [`require-valid-instructions-apply-to-globs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-instructions-apply-to-globs) | ✅ | — | ✅ | ✅ |
|
|
160
|
+
| [`require-valid-prompt-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-argument-hint) | ✅ | — | ✅ | ✅ |
|
|
161
|
+
| [`require-valid-prompt-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-model) | ✅ | — | ✅ | ✅ |
|
|
162
|
+
| [`require-valid-prompt-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-name) | ✅ | — | ✅ | ✅ |
|
|
163
|
+
| [`require-valid-prompt-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-tools) | ✅ | — | ✅ | ✅ |
|
|
164
|
+
| [`require-valid-repository-hook-command-type`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-command-type) | ✅ | — | ✅ | ✅ |
|
|
165
|
+
| [`require-valid-repository-hook-env`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-env) | ✅ | — | ✅ | ✅ |
|
|
166
|
+
| [`require-valid-repository-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-events) | ✅ | — | ✅ | ✅ |
|
|
167
|
+
| [`require-valid-repository-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-timeouts) | ✅ | — | ✅ | ✅ |
|
|
168
|
+
| [`require-valid-repository-hook-version`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-version) | ✅ | — | ✅ | ✅ |
|
|
169
|
+
| [`require-valid-skill-directory-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-directory-name) | ✅ | — | ✅ | ✅ |
|
|
170
|
+
| [`require-valid-skill-license`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-license) | ✅ | — | — | ✅ |
|
|
171
|
+
| [`require-valid-skill-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-name) | ✅ | — | ✅ | ✅ |
|
|
172
|
+
|
|
170
173
|
## Contributors ✨
|
|
171
174
|
|
|
172
175
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
* Shared Copilot preset/config reference constants and type guards.
|
|
4
4
|
*/
|
|
5
|
-
/**
|
|
5
|
+
/** Stable preset names used across docs, README tables, and runtime configs. */
|
|
6
6
|
export declare const copilotConfigNames: readonly ["all", "minimal", "recommended", "strict"];
|
|
7
7
|
/** Metadata contract shared across preset wiring, docs, and README rendering. */
|
|
8
8
|
export type CopilotConfigMetadata = Readonly<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-config-references.d.ts","sourceRoot":"","sources":["../../src/_internal/copilot-config-references.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"copilot-config-references.d.ts","sourceRoot":"","sources":["../../src/_internal/copilot-config-references.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,sDAKrB,CAAC;AAEX,iFAAiF;AACjF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,WAAW,iBAAiB,EAAE,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;CACjC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,4DAA4D;AAC5D,KAAK,yBAAyB,GAAG,QAAQ,CAAC;IACtC,qBAAqB,EAAE,KAAK,CAAC;IAC7B,yBAAyB,EAAE,SAAS,CAAC;IACrC,6BAA6B,EAAE,aAAa,CAAC;IAC7C,wBAAwB,EAAE,QAAQ,CAAC;CACtC,CAAC,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAC9C,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CA0BnD,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,EAAE,SAAS,iBAAiB,EAKvE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,EAAE,yBAK1C,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,4BAA4B,CAAC;AAE/E,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,EAAE,CACnC,KAAK,EAAE,MAAM,KACZ,KAAK,IAAI,sBAGuC,CAAC"}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* Shared Copilot preset/config reference constants and type guards.
|
|
4
4
|
*/
|
|
5
5
|
/** Canonical flat-config preset keys exposed through `plugin.configs`. */
|
|
6
|
+
import { objectHasOwn } from "ts-extras";
|
|
7
|
+
/** Stable preset names used across docs, README tables, and runtime configs. */
|
|
6
8
|
export const copilotConfigNames = [
|
|
7
9
|
"all",
|
|
8
10
|
"minimal",
|
|
@@ -51,5 +53,5 @@ export const copilotConfigReferenceToName = {
|
|
|
51
53
|
"copilot.configs.strict": "strict",
|
|
52
54
|
};
|
|
53
55
|
/** Check whether a string is a supported docs preset reference. */
|
|
54
|
-
export const isCopilotConfigReference = (value) =>
|
|
56
|
+
export const isCopilotConfigReference = (value) => objectHasOwn(copilotConfigReferenceToName, value);
|
|
55
57
|
//# sourceMappingURL=copilot-config-references.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-config-references.js","sourceRoot":"","sources":["../../src/_internal/copilot-config-references.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,KAAK;IACL,SAAS;IACT,aAAa;IACb,QAAQ;CACF,CAAC;AAqBX,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAEpC;IACA,GAAG,EAAE;QACD,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;IACD,OAAO,EAAE;QACL,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;IACD,WAAW,EAAE;QACT,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,+BAA+B,GAAiC;IACzE,SAAS;IACT,aAAa;IACb,QAAQ;IACR,KAAK;CACR,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAA8B;IACnE,qBAAqB,EAAE,KAAK;IAC5B,yBAAyB,EAAE,SAAS;IACpC,6BAA6B,EAAE,aAAa;IAC5C,wBAAwB,EAAE,QAAQ;CACrC,CAAC;AAKF,mEAAmE;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAEE,CACnC,KAAK,EAC0B,EAAE,CACjC,
|
|
1
|
+
{"version":3,"file":"copilot-config-references.js","sourceRoot":"","sources":["../../src/_internal/copilot-config-references.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0EAA0E;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,KAAK;IACL,SAAS;IACT,aAAa;IACb,QAAQ;CACF,CAAC;AAqBX,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAEpC;IACA,GAAG,EAAE;QACD,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;IACD,OAAO,EAAE;QACL,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;IACD,WAAW,EAAE;QACT,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,+BAA+B,GAAiC;IACzE,SAAS;IACT,aAAa;IACb,QAAQ;IACR,KAAK;CACR,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAA8B;IACnE,qBAAqB,EAAE,KAAK;IAC5B,yBAAyB,EAAE,SAAS;IACpC,6BAA6B,EAAE,aAAa;IAC5C,wBAAwB,EAAE,QAAQ;CACrC,CAAC;AAKF,mEAAmE;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAEE,CACnC,KAAK,EAC0B,EAAE,CACjC,YAAY,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -10,10 +10,14 @@ export declare const isSkillMarkdownFilePath: (filePath: string) => boolean;
|
|
|
10
10
|
export declare const isSkillFilePath: (filePath: string) => boolean;
|
|
11
11
|
/** Check whether a path points to a repository hook configuration file. */
|
|
12
12
|
export declare const isRepositoryHookFilePath: (filePath: string) => boolean;
|
|
13
|
+
/** Check whether a path points to a repository-wide Copilot instructions file. */
|
|
14
|
+
export declare const isRepositoryInstructionsFilePath: (filePath: string) => boolean;
|
|
13
15
|
/** Derive the Copilot customization file kind for an absolute or relative path. */
|
|
14
16
|
export declare const getCopilotFileKind: (filePath: string) => CopilotFileKind | null;
|
|
15
17
|
/** Discover the repository root for the current file path. */
|
|
16
18
|
export declare const findRepositoryRoot: (filePath: string) => string;
|
|
19
|
+
/** Resolve supported repository custom instructions file paths. */
|
|
20
|
+
export declare const getRepositoryInstructionsPaths: (filePath: string) => readonly string[];
|
|
17
21
|
/** Resolve the canonical repository custom instructions file path. */
|
|
18
22
|
export declare const getRepositoryInstructionsPath: (filePath: string) => string;
|
|
19
23
|
//# sourceMappingURL=copilot-file-kind.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-file-kind.d.ts","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"copilot-file-kind.d.ts","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"AAQA,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GACrB,oBAAoB,GACpB,UAAU,GACV,cAAc,GACd,QAAQ,GACR,iBAAiB,GACjB,yBAAyB,GACzB,OAAO,CAAC;AAMd,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAQ3D,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,OAQxD,CAAC;AAYF,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,OAO1D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,OAQlD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAQ3D,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,GAAI,UAAU,MAAM,KAAG,OASnE,CAAC;AAQF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,GAC3B,UAAU,MAAM,KACjB,eAAe,GAAG,IAsCpB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,MA2CrD,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,8BAA8B,GACvC,UAAU,MAAM,KACjB,SAAS,MAAM,EAYjB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,KAAG,MAM5D,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as fs from "node:fs";
|
|
6
6
|
import * as path from "node:path";
|
|
7
|
+
import { arrayFirst, arrayJoin, stringSplit } from "ts-extras";
|
|
7
8
|
/** Normalize a path to slash-separated form for pattern checks. */
|
|
8
9
|
const normalizeFilePath = (filePath) => path.resolve(filePath).replaceAll("\\", "/");
|
|
9
10
|
/** Check whether a path points to a legacy workspace chat mode file. */
|
|
@@ -46,6 +47,12 @@ export const isRepositoryHookFilePath = (filePath) => {
|
|
|
46
47
|
return (normalizedFilePath.includes("/.github/hooks/") &&
|
|
47
48
|
basename.endsWith(".json"));
|
|
48
49
|
};
|
|
50
|
+
/** Check whether a path points to a repository-wide Copilot instructions file. */
|
|
51
|
+
export const isRepositoryInstructionsFilePath = (filePath) => {
|
|
52
|
+
const normalizedFilePath = normalizeFilePath(filePath);
|
|
53
|
+
return (normalizedFilePath.endsWith("/.github/copilot-instructions.md") ||
|
|
54
|
+
normalizedFilePath.endsWith("/.github/instructions/copilot-instructions.md"));
|
|
55
|
+
};
|
|
49
56
|
/** Check whether a basename is one of the supported agent instruction names. */
|
|
50
57
|
const isAgentInstructionsBasename = (basename) => basename === "AGENTS.md" ||
|
|
51
58
|
basename === "CLAUDE.md" ||
|
|
@@ -54,7 +61,7 @@ const isAgentInstructionsBasename = (basename) => basename === "AGENTS.md" ||
|
|
|
54
61
|
export const getCopilotFileKind = (filePath) => {
|
|
55
62
|
const normalizedFilePath = normalizeFilePath(filePath);
|
|
56
63
|
const basename = path.posix.basename(normalizedFilePath);
|
|
57
|
-
if (normalizedFilePath
|
|
64
|
+
if (isRepositoryInstructionsFilePath(normalizedFilePath)) {
|
|
58
65
|
return "repository-instructions";
|
|
59
66
|
}
|
|
60
67
|
if (normalizedFilePath.includes("/.github/instructions/") &&
|
|
@@ -80,11 +87,11 @@ export const getCopilotFileKind = (filePath) => {
|
|
|
80
87
|
/** Discover the repository root for the current file path. */
|
|
81
88
|
export const findRepositoryRoot = (filePath) => {
|
|
82
89
|
const normalizedFilePath = path.resolve(filePath);
|
|
83
|
-
const pathSegments = normalizeFilePath(normalizedFilePath)
|
|
90
|
+
const pathSegments = stringSplit(normalizeFilePath(normalizedFilePath), "/");
|
|
84
91
|
const githubDirectoryIndex = pathSegments.lastIndexOf(".github");
|
|
85
92
|
if (githubDirectoryIndex > 0) {
|
|
86
93
|
const rootSegments = pathSegments.slice(0, githubDirectoryIndex);
|
|
87
|
-
const candidateRoot = rootSegments
|
|
94
|
+
const candidateRoot = arrayJoin(rootSegments, path.sep);
|
|
88
95
|
if (candidateRoot.length > 0) {
|
|
89
96
|
return candidateRoot;
|
|
90
97
|
}
|
|
@@ -106,6 +113,15 @@ export const findRepositoryRoot = (filePath) => {
|
|
|
106
113
|
currentDirectory = parentDirectory;
|
|
107
114
|
}
|
|
108
115
|
};
|
|
116
|
+
/** Resolve supported repository custom instructions file paths. */
|
|
117
|
+
export const getRepositoryInstructionsPaths = (filePath) => {
|
|
118
|
+
const repositoryRoot = findRepositoryRoot(filePath);
|
|
119
|
+
return [
|
|
120
|
+
path.join(repositoryRoot, ".github", "copilot-instructions.md"),
|
|
121
|
+
path.join(repositoryRoot, ".github", "instructions", "copilot-instructions.md"),
|
|
122
|
+
];
|
|
123
|
+
};
|
|
109
124
|
/** Resolve the canonical repository custom instructions file path. */
|
|
110
|
-
export const getRepositoryInstructionsPath = (filePath) =>
|
|
125
|
+
export const getRepositoryInstructionsPath = (filePath) => arrayFirst(getRepositoryInstructionsPaths(filePath)) ??
|
|
126
|
+
path.join(findRepositoryRoot(filePath), ".github", "copilot-instructions.md");
|
|
111
127
|
//# sourceMappingURL=copilot-file-kind.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-file-kind.js","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-file-kind.js","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Shared rule creator wrapper used by eslint-plugin-copilot rules.
|
|
4
4
|
*/
|
|
5
5
|
import type { TSESLint } from "@typescript-eslint/utils";
|
|
6
|
+
import type { UnknownArray } from "type-fest";
|
|
6
7
|
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
7
8
|
import type { CopilotConfigName, CopilotConfigReference } from "./copilot-config-references.js";
|
|
8
9
|
/** Copilot-specific metadata extensions stored in `meta.docs`. */
|
|
@@ -20,7 +21,7 @@ export type CopilotRuleDocs = Readonly<{
|
|
|
20
21
|
/** Public runtime rule module shape emitted by this plugin. */
|
|
21
22
|
export type CopilotRuleModule = Readonly<{
|
|
22
23
|
name: string;
|
|
23
|
-
}> & TSESLint.RuleModule<string,
|
|
24
|
+
}> & TSESLint.RuleModule<string, Readonly<UnknownArray>, CopilotRuleDocs>;
|
|
24
25
|
type BaseRuleCreator = ReturnType<typeof ESLintUtils.RuleCreator<CopilotRuleInputDocs>>;
|
|
25
26
|
/** Authored docs metadata accepted by individual rule modules. */
|
|
26
27
|
type CopilotRuleInputDocs = Readonly<{
|
|
@@ -29,11 +30,12 @@ type CopilotRuleInputDocs = Readonly<{
|
|
|
29
30
|
frozen: boolean;
|
|
30
31
|
recommended: boolean;
|
|
31
32
|
requiresTypeChecking: boolean;
|
|
33
|
+
url: string;
|
|
32
34
|
}>;
|
|
33
35
|
declare const baseRuleCreator: BaseRuleCreator;
|
|
34
36
|
/**
|
|
35
37
|
* Shared rule creator that injects canonical docs URLs and stable catalog ids.
|
|
36
38
|
*/
|
|
37
|
-
export declare const createCopilotRule: <Options extends
|
|
39
|
+
export declare const createCopilotRule: <Options extends Readonly<UnknownArray>, MessageIds extends string>(ruleDefinition: Parameters<typeof baseRuleCreator<Options, MessageIds>>[0]) => CopilotRuleModule;
|
|
38
40
|
export {};
|
|
39
41
|
//# sourceMappingURL=create-copilot-rule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-copilot-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/create-copilot-rule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-copilot-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/create-copilot-rule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EACR,iBAAiB,EACjB,sBAAsB,EACzB,MAAM,gCAAgC,CAAC;AAKxC,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACnC,kBAAkB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,cAAc,EAAE,sBAAsB,GAAG,SAAS,sBAAsB,EAAE,CAAC;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC,GACE,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAAC;AAEzE,KAAK,eAAe,GAAG,UAAU,CAC7B,OAAO,WAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,CACvD,CAAC;AAEF,kEAAkE;AAClE,KAAK,oBAAoB,GAAG,QAAQ,CAAC;IACjC,cAAc,EAAE,sBAAsB,GAAG,SAAS,sBAAsB,EAAE,CAAC;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,QAAA,MAAM,eAAe,EAAE,eAC6C,CAAC;AA8CrE;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC1B,OAAO,SAAS,QAAQ,CAAC,YAAY,CAAC,EACtC,UAAU,SAAS,MAAM,EAEzB,gBAAgB,UAAU,CAAC,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAC3E,iBAsBF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-copilot-rule.js","sourceRoot":"","sources":["../../src/_internal/create-copilot-rule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-copilot-rule.js","sourceRoot":"","sources":["../../src/_internal/create-copilot-rule.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAOvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAmCvD,MAAM,eAAe,GACjB,WAAW,CAAC,WAAW,CAAuB,iBAAiB,CAAC,CAAC;AAErE,MAAM,iCAAiC,GAAG,CACtC,SAAiC,EAChB,EAAE;IACnB,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC7B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,KAAK,6BAA6B,CAAC,CAAC,CAAC;YACjC,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC5B,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,IAAI,SAAS,CACf,yCAAyC,SAAS,EAAE,CACvD,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,gEAAgE;AAChE,MAAM,2BAA2B,GAEG,CAChC,KAAiE,EACnE,EAAE;IACA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAqB,CAAC;IAErD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,eAAe,CAAC,GAAG,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAI7B,cAA0E,EACzD,EAAE;IACnB,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,8BAA8B,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C,MAAM,IAAI,GAAoB;QAC1B,GAAG,YAAY;QACf,kBAAkB,EAAE,2BAA2B,CAC3C,YAAY,CAAC,cAAc,CAC9B;QACD,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,GAAG,EAAE,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC;KAC9C,CAAC;IAEF,OAAO;QACH,GAAG,WAAW;QACd,IAAI,EAAE;YACF,GAAG,WAAW,CAAC,IAAI;YACnB,IAAI;SACP;QACD,IAAI,EAAE,cAAc,CAAC,IAAI;KACA,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/_internal/file-system.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/_internal/file-system.ts"],"names":[],"mappings":"AAWA,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MACT,CAAC;AAEjD,+EAA+E;AAC/E,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,KAAG,OACnB,CAAC;AAE5B,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,GAAI,OAAO,MAAM,KAAG,MAYzD,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,OACT,CAAC;AAE9C,iFAAiF;AACjF,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OACsB,CAAC;AAEpE,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,GAAI,OAAO,MAAM,KAAG,OAmB1D,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,OASvD,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,4BAA4B,GACrC,iBAAiB,MAAM,EACvB,cAAc,MAAM,KACrB,MAIE,CAAC;AAEN,qDAAqD;AACrD,eAAO,MAAM,6BAA6B,GACtC,oBAAoB,MAAM,EAC1B,cAAc,MAAM,KACrB,MAC0E,CAAC;AAwC9E,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,GAC7B,eAAe,MAAM,EACrB,YAAY,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,KAClD,SAAS,MAAM,EAyBjB,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as fs from "node:fs";
|
|
6
6
|
import * as path from "node:path";
|
|
7
|
+
import { isDefined, isEmpty } from "ts-extras";
|
|
7
8
|
const WINDOWS_ABSOLUTE_PATH_PATTERN = /^[A-Za-z]:[/\\]/u;
|
|
8
9
|
const URI_SCHEME_PATTERN = /^[A-Za-z][+\-.0-9A-Za-z]*:/u;
|
|
9
10
|
/** Normalize a path to absolute slash-separated form. */
|
|
@@ -15,7 +16,7 @@ export const stripPathFragmentAndQuery = (value) => {
|
|
|
15
16
|
const queryIndex = value.indexOf("?");
|
|
16
17
|
const fragmentIndex = value.indexOf("#");
|
|
17
18
|
const cutIndexCandidates = [queryIndex, fragmentIndex].filter((index) => index >= 0);
|
|
18
|
-
if (cutIndexCandidates
|
|
19
|
+
if (isEmpty(cutIndexCandidates)) {
|
|
19
20
|
return value;
|
|
20
21
|
}
|
|
21
22
|
return value.slice(0, Math.min(...cutIndexCandidates));
|
|
@@ -52,6 +53,31 @@ export const isRelativeWorkspacePath = (value) => {
|
|
|
52
53
|
export const resolveRelativeWorkspacePath = (currentFilePath, relativePath) => path.resolve(path.dirname(currentFilePath), stripPathFragmentAndQuery(relativePath));
|
|
53
54
|
/** Resolve a repository-root-relative path token. */
|
|
54
55
|
export const resolveRepositoryRelativePath = (repositoryRootPath, relativePath) => path.resolve(repositoryRootPath, stripPathFragmentAndQuery(relativePath));
|
|
56
|
+
/** Visit one directory and return discovered child files and subdirectories. */
|
|
57
|
+
const collectDirectoryFiles = (currentDirectory, predicate) => {
|
|
58
|
+
const discoveredFiles = [];
|
|
59
|
+
const pendingDirectories = [];
|
|
60
|
+
for (const entry of fs.readdirSync(currentDirectory, {
|
|
61
|
+
withFileTypes: true,
|
|
62
|
+
})) {
|
|
63
|
+
const absoluteEntryPath = path.join(currentDirectory, entry.name);
|
|
64
|
+
if (entry.isDirectory()) {
|
|
65
|
+
pendingDirectories.push(absoluteEntryPath);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (!entry.isFile()) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (isDefined(predicate) && !predicate(absoluteEntryPath)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
discoveredFiles.push(absoluteEntryPath);
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
discoveredFiles,
|
|
78
|
+
pendingDirectories,
|
|
79
|
+
};
|
|
80
|
+
};
|
|
55
81
|
/** Recursively list files under a directory when it exists. */
|
|
56
82
|
export const listFilesRecursively = (directoryPath, predicate) => {
|
|
57
83
|
if (!pathExists(directoryPath)) {
|
|
@@ -61,25 +87,12 @@ export const listFilesRecursively = (directoryPath, predicate) => {
|
|
|
61
87
|
const pendingDirectories = [directoryPath];
|
|
62
88
|
while (pendingDirectories.length > 0) {
|
|
63
89
|
const currentDirectory = pendingDirectories.pop();
|
|
64
|
-
if (currentDirectory
|
|
90
|
+
if (!isDefined(currentDirectory)) {
|
|
65
91
|
continue;
|
|
66
92
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const absoluteEntryPath = path.join(currentDirectory, entry.name);
|
|
71
|
-
if (entry.isDirectory()) {
|
|
72
|
-
pendingDirectories.push(absoluteEntryPath);
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (!entry.isFile()) {
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
if (predicate !== undefined && !predicate(absoluteEntryPath)) {
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
discoveredFiles.push(absoluteEntryPath);
|
|
82
|
-
}
|
|
93
|
+
const currentDirectoryContents = collectDirectoryFiles(currentDirectory, predicate);
|
|
94
|
+
pendingDirectories.push(...currentDirectoryContents.pendingDirectories);
|
|
95
|
+
discoveredFiles.push(...currentDirectoryContents.discoveredFiles);
|
|
83
96
|
}
|
|
84
97
|
return discoveredFiles.toSorted((left, right) => left.localeCompare(right));
|
|
85
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/_internal/file-system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/_internal/file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
* Lightweight Markdown frontmatter helpers for Copilot customization files.
|
|
4
4
|
*/
|
|
5
|
-
/** Parsed frontmatter
|
|
5
|
+
/** Parsed frontmatter document extracted from the top of a Markdown file. */
|
|
6
6
|
export type FrontmatterDocument = Readonly<{
|
|
7
7
|
body: string;
|
|
8
8
|
content: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/_internal/frontmatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/_internal/frontmatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GACtB,QAAQ,CAAC;IACL,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC,GACF,QAAQ,CAAC;IACL,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAET,0EAA0E;AAC1E,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1E,6EAA6E;AAC7E,MAAM,MAAM,6BAA6B,GAAG,WAAW,CACnD,MAAM,EACN,SAAS,0BAA0B,EAAE,CACxC,CAAC;AAyTF,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,GAC3B,MAAM,MAAM,KACb,mBAAmB,GAAG,IAgCxB,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,oBAAoB,GAC7B,UAAU,mBAAmB,EAC7B,KAAK,MAAM,KACZ,MAAM,GAAG,SAMX,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,GAC3B,UAAU,mBAAmB,EAC7B,KAAK,MAAM,KACZ,SAAS,MAAM,EAAE,GAAG,SAMtB,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,GAC5B,UAAU,mBAAmB,EAC7B,KAAK,MAAM,KACZ,OAAmC,CAAC;AA2NvC,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GACjC,UAAU,mBAAmB,EAC7B,KAAK,MAAM,KACZ,SAAS,0BAA0B,EAAE,GAAG,SAgB1C,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,8BAA8B,GACvC,UAAU,mBAAmB,EAC7B,KAAK,MAAM,KACZ,6BAA6B,GAAG,SAYlC,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,KAAG,MACvB,CAAC"}
|