@cairn-tool/cairn 2.0.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/.markdownlintrc +7 -0
- package/LICENSE +21 -0
- package/README.md +1431 -0
- package/dist/agent/audit/baseline.d.ts +69 -0
- package/dist/agent/audit/baseline.js +128 -0
- package/dist/agent/audit/baseline.js.map +1 -0
- package/dist/agent/audit/index.d.ts +126 -0
- package/dist/agent/audit/index.js +625 -0
- package/dist/agent/audit/index.js.map +1 -0
- package/dist/agent/import/detect.d.ts +49 -0
- package/dist/agent/import/detect.js +159 -0
- package/dist/agent/import/detect.js.map +1 -0
- package/dist/agent/import/normalize.d.ts +72 -0
- package/dist/agent/import/normalize.js +475 -0
- package/dist/agent/import/normalize.js.map +1 -0
- package/dist/agent/install/index.d.ts +211 -0
- package/dist/agent/install/index.js +907 -0
- package/dist/agent/install/index.js.map +1 -0
- package/dist/agent/manifest.d.ts +75 -0
- package/dist/agent/manifest.js +210 -0
- package/dist/agent/manifest.js.map +1 -0
- package/dist/agent/marketplace/index.d.ts +69 -0
- package/dist/agent/marketplace/index.js +212 -0
- package/dist/agent/marketplace/index.js.map +1 -0
- package/dist/agent/marketplace/spec.d.ts +48 -0
- package/dist/agent/marketplace/spec.js +237 -0
- package/dist/agent/marketplace/spec.js.map +1 -0
- package/dist/agent/output.d.ts +36 -0
- package/dist/agent/output.js +56 -0
- package/dist/agent/output.js.map +1 -0
- package/dist/agent/overlays.d.ts +38 -0
- package/dist/agent/overlays.js +223 -0
- package/dist/agent/overlays.js.map +1 -0
- package/dist/agent/package/index.d.ts +105 -0
- package/dist/agent/package/index.js +339 -0
- package/dist/agent/package/index.js.map +1 -0
- package/dist/agent/package/tar.d.ts +36 -0
- package/dist/agent/package/tar.js +137 -0
- package/dist/agent/package/tar.js.map +1 -0
- package/dist/agent/parser.d.ts +13 -0
- package/dist/agent/parser.js +559 -0
- package/dist/agent/parser.js.map +1 -0
- package/dist/agent/render.d.ts +16 -0
- package/dist/agent/render.js +721 -0
- package/dist/agent/render.js.map +1 -0
- package/dist/agent/sarif.d.ts +18 -0
- package/dist/agent/sarif.js +56 -0
- package/dist/agent/sarif.js.map +1 -0
- package/dist/agent/scaffold.d.ts +86 -0
- package/dist/agent/scaffold.js +250 -0
- package/dist/agent/scaffold.js.map +1 -0
- package/dist/agent/targets/antigravity.d.ts +17 -0
- package/dist/agent/targets/antigravity.js +218 -0
- package/dist/agent/targets/antigravity.js.map +1 -0
- package/dist/agent/targets/claude-code.d.ts +2 -0
- package/dist/agent/targets/claude-code.js +220 -0
- package/dist/agent/targets/claude-code.js.map +1 -0
- package/dist/agent/targets/codex.d.ts +2 -0
- package/dist/agent/targets/codex.js +212 -0
- package/dist/agent/targets/codex.js.map +1 -0
- package/dist/agent/targets/cursor.d.ts +2 -0
- package/dist/agent/targets/cursor.js +210 -0
- package/dist/agent/targets/cursor.js.map +1 -0
- package/dist/agent/targets/index.d.ts +31 -0
- package/dist/agent/targets/index.js +64 -0
- package/dist/agent/targets/index.js.map +1 -0
- package/dist/agent/targets/opencode.d.ts +15 -0
- package/dist/agent/targets/opencode.js +215 -0
- package/dist/agent/targets/opencode.js.map +1 -0
- package/dist/agent/targets/schema.d.ts +315 -0
- package/dist/agent/targets/schema.js +179 -0
- package/dist/agent/targets/schema.js.map +1 -0
- package/dist/agent/test/assert.d.ts +46 -0
- package/dist/agent/test/assert.js +288 -0
- package/dist/agent/test/assert.js.map +1 -0
- package/dist/agent/test/index.d.ts +73 -0
- package/dist/agent/test/index.js +181 -0
- package/dist/agent/test/index.js.map +1 -0
- package/dist/agent/test/schema.d.ts +81 -0
- package/dist/agent/test/schema.js +235 -0
- package/dist/agent/test/schema.js.map +1 -0
- package/dist/agent/types.d.ts +204 -0
- package/dist/agent/types.js +11 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/agent/upgrade.d.ts +29 -0
- package/dist/agent/upgrade.js +72 -0
- package/dist/agent/upgrade.js.map +1 -0
- package/dist/agent/writer.d.ts +30 -0
- package/dist/agent/writer.js +73 -0
- package/dist/agent/writer.js.map +1 -0
- package/dist/archive/db.d.ts +20 -0
- package/dist/archive/db.js +98 -0
- package/dist/archive/db.js.map +1 -0
- package/dist/archive/progress.d.ts +62 -0
- package/dist/archive/progress.js +151 -0
- package/dist/archive/progress.js.map +1 -0
- package/dist/archive/query.d.ts +86 -0
- package/dist/archive/query.js +241 -0
- package/dist/archive/query.js.map +1 -0
- package/dist/archive/run.d.ts +91 -0
- package/dist/archive/run.js +331 -0
- package/dist/archive/run.js.map +1 -0
- package/dist/archive/segments.d.ts +89 -0
- package/dist/archive/segments.js +144 -0
- package/dist/archive/segments.js.map +1 -0
- package/dist/archive/sets.d.ts +58 -0
- package/dist/archive/sets.js +344 -0
- package/dist/archive/sets.js.map +1 -0
- package/dist/archive/tar-read.d.ts +35 -0
- package/dist/archive/tar-read.js +90 -0
- package/dist/archive/tar-read.js.map +1 -0
- package/dist/audit-baseline.d.ts +66 -0
- package/dist/audit-baseline.js +124 -0
- package/dist/audit-baseline.js.map +1 -0
- package/dist/automation.d.ts +16 -0
- package/dist/automation.js +38 -0
- package/dist/automation.js.map +1 -0
- package/dist/backlinks.d.ts +15 -0
- package/dist/backlinks.js +30 -0
- package/dist/backlinks.js.map +1 -0
- package/dist/checkers/katex.d.ts +3 -0
- package/dist/checkers/katex.js +71 -0
- package/dist/checkers/katex.js.map +1 -0
- package/dist/checkers/markdown-lint.d.ts +28 -0
- package/dist/checkers/markdown-lint.js +53 -0
- package/dist/checkers/markdown-lint.js.map +1 -0
- package/dist/checkers/mermaid.d.ts +6 -0
- package/dist/checkers/mermaid.js +53 -0
- package/dist/checkers/mermaid.js.map +1 -0
- package/dist/checkers/references.d.ts +3 -0
- package/dist/checkers/references.js +55 -0
- package/dist/checkers/references.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +1117 -0
- package/dist/cli.js.map +1 -0
- package/dist/command-result.d.ts +6 -0
- package/dist/command-result.js +13 -0
- package/dist/command-result.js.map +1 -0
- package/dist/commands/agent-audit.d.ts +21 -0
- package/dist/commands/agent-audit.js +119 -0
- package/dist/commands/agent-audit.js.map +1 -0
- package/dist/commands/agent-doctor.d.ts +25 -0
- package/dist/commands/agent-doctor.js +217 -0
- package/dist/commands/agent-doctor.js.map +1 -0
- package/dist/commands/agent-import.d.ts +21 -0
- package/dist/commands/agent-import.js +212 -0
- package/dist/commands/agent-import.js.map +1 -0
- package/dist/commands/agent-install.d.ts +18 -0
- package/dist/commands/agent-install.js +59 -0
- package/dist/commands/agent-install.js.map +1 -0
- package/dist/commands/agent-installed.d.ts +6 -0
- package/dist/commands/agent-installed.js +17 -0
- package/dist/commands/agent-installed.js.map +1 -0
- package/dist/commands/agent-marketplace.d.ts +11 -0
- package/dist/commands/agent-marketplace.js +178 -0
- package/dist/commands/agent-marketplace.js.map +1 -0
- package/dist/commands/agent-package.d.ts +16 -0
- package/dist/commands/agent-package.js +159 -0
- package/dist/commands/agent-package.js.map +1 -0
- package/dist/commands/agent-scaffold.d.ts +17 -0
- package/dist/commands/agent-scaffold.js +181 -0
- package/dist/commands/agent-scaffold.js.map +1 -0
- package/dist/commands/agent-specs.d.ts +7 -0
- package/dist/commands/agent-specs.js +20 -0
- package/dist/commands/agent-specs.js.map +1 -0
- package/dist/commands/agent-test.d.ts +21 -0
- package/dist/commands/agent-test.js +50 -0
- package/dist/commands/agent-test.js.map +1 -0
- package/dist/commands/agent-uninstall.d.ts +6 -0
- package/dist/commands/agent-uninstall.js +45 -0
- package/dist/commands/agent-uninstall.js.map +1 -0
- package/dist/commands/agent-upgrade.d.ts +5 -0
- package/dist/commands/agent-upgrade.js +105 -0
- package/dist/commands/agent-upgrade.js.map +1 -0
- package/dist/commands/agent.d.ts +27 -0
- package/dist/commands/agent.js +549 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/archive.d.ts +47 -0
- package/dist/commands/archive.js +311 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/audit.d.ts +25 -0
- package/dist/commands/audit.js +325 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/check-snippets.d.ts +58 -0
- package/dist/commands/check-snippets.js +247 -0
- package/dist/commands/check-snippets.js.map +1 -0
- package/dist/commands/check-urls.d.ts +52 -0
- package/dist/commands/check-urls.js +205 -0
- package/dist/commands/check-urls.js.map +1 -0
- package/dist/commands/code-blocks.d.ts +8 -0
- package/dist/commands/code-blocks.js +66 -0
- package/dist/commands/code-blocks.js.map +1 -0
- package/dist/commands/completion.d.ts +15 -0
- package/dist/commands/completion.js +20 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/context.d.ts +16 -0
- package/dist/commands/context.js +131 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/describe.d.ts +12 -0
- package/dist/commands/describe.js +62 -0
- package/dist/commands/describe.js.map +1 -0
- package/dist/commands/diff.d.ts +11 -0
- package/dist/commands/diff.js +185 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/fix.d.ts +59 -0
- package/dist/commands/fix.js +173 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/frontmatter.d.ts +7 -0
- package/dist/commands/frontmatter.js +84 -0
- package/dist/commands/frontmatter.js.map +1 -0
- package/dist/commands/graph.d.ts +12 -0
- package/dist/commands/graph.js +122 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/headers.d.ts +7 -0
- package/dist/commands/headers.js +48 -0
- package/dist/commands/headers.js.map +1 -0
- package/dist/commands/index.d.ts +8 -0
- package/dist/commands/index.js +32 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/links.d.ts +9 -0
- package/dist/commands/links.js +123 -0
- package/dist/commands/links.js.map +1 -0
- package/dist/commands/lint-dir.d.ts +15 -0
- package/dist/commands/lint-dir.js +156 -0
- package/dist/commands/lint-dir.js.map +1 -0
- package/dist/commands/lint.d.ts +14 -0
- package/dist/commands/lint.js +45 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/orphans.d.ts +10 -0
- package/dist/commands/orphans.js +74 -0
- package/dist/commands/orphans.js.map +1 -0
- package/dist/commands/outline.d.ts +7 -0
- package/dist/commands/outline.js +54 -0
- package/dist/commands/outline.js.map +1 -0
- package/dist/commands/query.d.ts +18 -0
- package/dist/commands/query.js +341 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/refs-to.d.ts +8 -0
- package/dist/commands/refs-to.js +65 -0
- package/dist/commands/refs-to.js.map +1 -0
- package/dist/commands/refs.d.ts +10 -0
- package/dist/commands/refs.js +103 -0
- package/dist/commands/refs.js.map +1 -0
- package/dist/commands/rename-file.d.ts +16 -0
- package/dist/commands/rename-file.js +215 -0
- package/dist/commands/rename-file.js.map +1 -0
- package/dist/commands/rename-heading.d.ts +10 -0
- package/dist/commands/rename-heading.js +182 -0
- package/dist/commands/rename-heading.js.map +1 -0
- package/dist/commands/schema.d.ts +10 -0
- package/dist/commands/schema.js +34 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/scripts.d.ts +59 -0
- package/dist/commands/scripts.js +222 -0
- package/dist/commands/scripts.js.map +1 -0
- package/dist/commands/section.d.ts +9 -0
- package/dist/commands/section.js +49 -0
- package/dist/commands/section.js.map +1 -0
- package/dist/commands/serve.d.ts +6 -0
- package/dist/commands/serve.js +48 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/stats.d.ts +6 -0
- package/dist/commands/stats.js +109 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/structure.d.ts +6 -0
- package/dist/commands/structure.js +130 -0
- package/dist/commands/structure.js.map +1 -0
- package/dist/commands/tables.d.ts +8 -0
- package/dist/commands/tables.js +77 -0
- package/dist/commands/tables.js.map +1 -0
- package/dist/commands/tasks.d.ts +8 -0
- package/dist/commands/tasks.js +59 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/toc.d.ts +18 -0
- package/dist/commands/toc.js +105 -0
- package/dist/commands/toc.js.map +1 -0
- package/dist/commands/update-check.d.ts +36 -0
- package/dist/commands/update-check.js +119 -0
- package/dist/commands/update-check.js.map +1 -0
- package/dist/commands/usage.d.ts +56 -0
- package/dist/commands/usage.js +883 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/validate-frontmatter.d.ts +13 -0
- package/dist/commands/validate-frontmatter.js +34 -0
- package/dist/commands/validate-frontmatter.js.map +1 -0
- package/dist/completion/model.d.ts +49 -0
- package/dist/completion/model.js +194 -0
- package/dist/completion/model.js.map +1 -0
- package/dist/completion/shells.d.ts +2 -0
- package/dist/completion/shells.js +280 -0
- package/dist/completion/shells.js.map +1 -0
- package/dist/config-schema.d.ts +15 -0
- package/dist/config-schema.js +44 -0
- package/dist/config-schema.js.map +1 -0
- package/dist/config.d.ts +102 -0
- package/dist/config.js +614 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +106 -0
- package/dist/context.js +202 -0
- package/dist/context.js.map +1 -0
- package/dist/contract/describe.d.ts +84 -0
- package/dist/contract/describe.js +104 -0
- package/dist/contract/describe.js.map +1 -0
- package/dist/contract/registry.d.ts +2 -0
- package/dist/contract/registry.js +622 -0
- package/dist/contract/registry.js.map +1 -0
- package/dist/contract/schemas/agent.d.ts +2 -0
- package/dist/contract/schemas/agent.js +572 -0
- package/dist/contract/schemas/agent.js.map +1 -0
- package/dist/contract/schemas/archive.d.ts +3 -0
- package/dist/contract/schemas/archive.js +227 -0
- package/dist/contract/schemas/archive.js.map +1 -0
- package/dist/contract/schemas/index.d.ts +11 -0
- package/dist/contract/schemas/index.js +49 -0
- package/dist/contract/schemas/index.js.map +1 -0
- package/dist/contract/schemas/markdown.d.ts +15 -0
- package/dist/contract/schemas/markdown.js +1035 -0
- package/dist/contract/schemas/markdown.js.map +1 -0
- package/dist/contract/schemas/meta.d.ts +5 -0
- package/dist/contract/schemas/meta.js +233 -0
- package/dist/contract/schemas/meta.js.map +1 -0
- package/dist/contract/schemas/scripts.d.ts +4 -0
- package/dist/contract/schemas/scripts.js +183 -0
- package/dist/contract/schemas/scripts.js.map +1 -0
- package/dist/contract/schemas/shared.d.ts +11 -0
- package/dist/contract/schemas/shared.js +26 -0
- package/dist/contract/schemas/shared.js.map +1 -0
- package/dist/contract/schemas/usage.d.ts +6 -0
- package/dist/contract/schemas/usage.js +489 -0
- package/dist/contract/schemas/usage.js.map +1 -0
- package/dist/contract/types.d.ts +63 -0
- package/dist/contract/types.js +2 -0
- package/dist/contract/types.js.map +1 -0
- package/dist/contract/version.d.ts +20 -0
- package/dist/contract/version.js +21 -0
- package/dist/contract/version.js.map +1 -0
- package/dist/diff.d.ts +156 -0
- package/dist/diff.js +500 -0
- package/dist/diff.js.map +1 -0
- package/dist/edit-plan.d.ts +133 -0
- package/dist/edit-plan.js +245 -0
- package/dist/edit-plan.js.map +1 -0
- package/dist/fix/markdownlint-fixer.d.ts +34 -0
- package/dist/fix/markdownlint-fixer.js +125 -0
- package/dist/fix/markdownlint-fixer.js.map +1 -0
- package/dist/fix/registry.d.ts +48 -0
- package/dist/fix/registry.js +28 -0
- package/dist/fix/registry.js.map +1 -0
- package/dist/fix/relative-links-fixer.d.ts +21 -0
- package/dist/fix/relative-links-fixer.js +96 -0
- package/dist/fix/relative-links-fixer.js.map +1 -0
- package/dist/fix/snippets-fixer.d.ts +2 -0
- package/dist/fix/snippets-fixer.js +64 -0
- package/dist/fix/snippets-fixer.js.map +1 -0
- package/dist/fix/toc-fixer.d.ts +2 -0
- package/dist/fix/toc-fixer.js +94 -0
- package/dist/fix/toc-fixer.js.map +1 -0
- package/dist/formats.d.ts +22 -0
- package/dist/formats.js +34 -0
- package/dist/formats.js.map +1 -0
- package/dist/formatters.d.ts +11 -0
- package/dist/formatters.js +48 -0
- package/dist/formatters.js.map +1 -0
- package/dist/frontmatter-validation.d.ts +11 -0
- package/dist/frontmatter-validation.js +188 -0
- package/dist/frontmatter-validation.js.map +1 -0
- package/dist/git.d.ts +40 -0
- package/dist/git.js +124 -0
- package/dist/git.js.map +1 -0
- package/dist/graph.d.ts +50 -0
- package/dist/graph.js +200 -0
- package/dist/graph.js.map +1 -0
- package/dist/input-selection.d.ts +9 -0
- package/dist/input-selection.js +122 -0
- package/dist/input-selection.js.map +1 -0
- package/dist/input.d.ts +2 -0
- package/dist/input.js +32 -0
- package/dist/input.js.map +1 -0
- package/dist/link-target.d.ts +39 -0
- package/dist/link-target.js +68 -0
- package/dist/link-target.js.map +1 -0
- package/dist/lint.d.ts +13 -0
- package/dist/lint.js +27 -0
- package/dist/lint.js.map +1 -0
- package/dist/markdown-ast.d.ts +73 -0
- package/dist/markdown-ast.js +187 -0
- package/dist/markdown-ast.js.map +1 -0
- package/dist/object-path.d.ts +14 -0
- package/dist/object-path.js +14 -0
- package/dist/object-path.js.map +1 -0
- package/dist/option-utils.d.ts +13 -0
- package/dist/option-utils.js +25 -0
- package/dist/option-utils.js.map +1 -0
- package/dist/outline.d.ts +16 -0
- package/dist/outline.js +32 -0
- package/dist/outline.js.map +1 -0
- package/dist/query/entities.d.ts +60 -0
- package/dist/query/entities.js +219 -0
- package/dist/query/entities.js.map +1 -0
- package/dist/query/execute.d.ts +22 -0
- package/dist/query/execute.js +0 -0
- package/dist/query/execute.js.map +1 -0
- package/dist/query/plan.d.ts +76 -0
- package/dist/query/plan.js +183 -0
- package/dist/query/plan.js.map +1 -0
- package/dist/query/render.d.ts +3 -0
- package/dist/query/render.js +39 -0
- package/dist/query/render.js.map +1 -0
- package/dist/refs.d.ts +19 -0
- package/dist/refs.js +10 -0
- package/dist/refs.js.map +1 -0
- package/dist/result.d.ts +49 -0
- package/dist/result.js +47 -0
- package/dist/result.js.map +1 -0
- package/dist/runtime.d.ts +35 -0
- package/dist/runtime.js +77 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sarif.d.ts +36 -0
- package/dist/sarif.js +30 -0
- package/dist/sarif.js.map +1 -0
- package/dist/scripts/execute.d.ts +65 -0
- package/dist/scripts/execute.js +235 -0
- package/dist/scripts/execute.js.map +1 -0
- package/dist/scripts/registry.d.ts +55 -0
- package/dist/scripts/registry.js +103 -0
- package/dist/scripts/registry.js.map +1 -0
- package/dist/scripts/resolve.d.ts +90 -0
- package/dist/scripts/resolve.js +288 -0
- package/dist/scripts/resolve.js.map +1 -0
- package/dist/sections.d.ts +53 -0
- package/dist/sections.js +100 -0
- package/dist/sections.js.map +1 -0
- package/dist/serve/errors.d.ts +25 -0
- package/dist/serve/errors.js +45 -0
- package/dist/serve/errors.js.map +1 -0
- package/dist/serve/paths.d.ts +32 -0
- package/dist/serve/paths.js +71 -0
- package/dist/serve/paths.js.map +1 -0
- package/dist/serve/server.d.ts +31 -0
- package/dist/serve/server.js +123 -0
- package/dist/serve/server.js.map +1 -0
- package/dist/serve/tools.d.ts +19 -0
- package/dist/serve/tools.js +597 -0
- package/dist/serve/tools.js.map +1 -0
- package/dist/snippets.d.ts +184 -0
- package/dist/snippets.js +454 -0
- package/dist/snippets.js.map +1 -0
- package/dist/sqlite-store.d.ts +62 -0
- package/dist/sqlite-store.js +104 -0
- package/dist/sqlite-store.js.map +1 -0
- package/dist/sqlite.d.ts +59 -0
- package/dist/sqlite.js +51 -0
- package/dist/sqlite.js.map +1 -0
- package/dist/toc.d.ts +58 -0
- package/dist/toc.js +83 -0
- package/dist/toc.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/update-notifier.d.ts +95 -0
- package/dist/update-notifier.js +301 -0
- package/dist/update-notifier.js.map +1 -0
- package/dist/url-cache.d.ts +14 -0
- package/dist/url-cache.js +70 -0
- package/dist/url-cache.js.map +1 -0
- package/dist/usage/aggregate.d.ts +107 -0
- package/dist/usage/aggregate.js +435 -0
- package/dist/usage/aggregate.js.map +1 -0
- package/dist/usage/db/index.d.ts +49 -0
- package/dist/usage/db/index.js +118 -0
- package/dist/usage/db/index.js.map +1 -0
- package/dist/usage/db/migrations.d.ts +29 -0
- package/dist/usage/db/migrations.js +38 -0
- package/dist/usage/db/migrations.js.map +1 -0
- package/dist/usage/db/open.d.ts +33 -0
- package/dist/usage/db/open.js +37 -0
- package/dist/usage/db/open.js.map +1 -0
- package/dist/usage/db/schema.d.ts +18 -0
- package/dist/usage/db/schema.js +147 -0
- package/dist/usage/db/schema.js.map +1 -0
- package/dist/usage/db/store.d.ts +74 -0
- package/dist/usage/db/store.js +280 -0
- package/dist/usage/db/store.js.map +1 -0
- package/dist/usage/events.d.ts +202 -0
- package/dist/usage/events.js +243 -0
- package/dist/usage/events.js.map +1 -0
- package/dist/usage/filter.d.ts +43 -0
- package/dist/usage/filter.js +97 -0
- package/dist/usage/filter.js.map +1 -0
- package/dist/usage/providers/antigravity.d.ts +2 -0
- package/dist/usage/providers/antigravity.js +431 -0
- package/dist/usage/providers/antigravity.js.map +1 -0
- package/dist/usage/providers/claude-code.d.ts +2 -0
- package/dist/usage/providers/claude-code.js +400 -0
- package/dist/usage/providers/claude-code.js.map +1 -0
- package/dist/usage/providers/codex.d.ts +2 -0
- package/dist/usage/providers/codex.js +387 -0
- package/dist/usage/providers/codex.js.map +1 -0
- package/dist/usage/providers/gemini-cli.d.ts +2 -0
- package/dist/usage/providers/gemini-cli.js +466 -0
- package/dist/usage/providers/gemini-cli.js.map +1 -0
- package/dist/usage/providers/index.d.ts +23 -0
- package/dist/usage/providers/index.js +46 -0
- package/dist/usage/providers/index.js.map +1 -0
- package/dist/usage/providers/opencode.d.ts +2 -0
- package/dist/usage/providers/opencode.js +422 -0
- package/dist/usage/providers/opencode.js.map +1 -0
- package/dist/usage/providers/protobuf.d.ts +35 -0
- package/dist/usage/providers/protobuf.js +125 -0
- package/dist/usage/providers/protobuf.js.map +1 -0
- package/dist/usage/providers/types.d.ts +74 -0
- package/dist/usage/providers/types.js +2 -0
- package/dist/usage/providers/types.js.map +1 -0
- package/dist/usage/scan.d.ts +54 -0
- package/dist/usage/scan.js +216 -0
- package/dist/usage/scan.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +8 -0
- package/dist/version.js.map +1 -0
- package/dist/workspace-index.d.ts +39 -0
- package/dist/workspace-index.js +265 -0
- package/dist/workspace-index.js.map +1 -0
- package/dist/workspace.d.ts +89 -0
- package/dist/workspace.js +219 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-snippets.js","sourceRoot":"","sources":["../../src/commands/check-snippets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type RawUrlResult } from "../url-cache.js";
|
|
2
|
+
interface CheckUrlsOptions {
|
|
3
|
+
envelope?: boolean;
|
|
4
|
+
format: string;
|
|
5
|
+
timeout: string;
|
|
6
|
+
concurrency: string;
|
|
7
|
+
retry: string;
|
|
8
|
+
includeOk: boolean;
|
|
9
|
+
include: string[];
|
|
10
|
+
exclude: string[];
|
|
11
|
+
stdinName?: string;
|
|
12
|
+
changedSince?: string;
|
|
13
|
+
ignore: string[];
|
|
14
|
+
ignoreDomain: string[];
|
|
15
|
+
allowedStatus: Array<string | number>;
|
|
16
|
+
cache: boolean;
|
|
17
|
+
cacheTtl: string | number;
|
|
18
|
+
headFallbackStatus: Array<string | number>;
|
|
19
|
+
reportRedirects: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface UrlResult {
|
|
22
|
+
file: string;
|
|
23
|
+
line: number;
|
|
24
|
+
url: string;
|
|
25
|
+
status: number | null;
|
|
26
|
+
ok: boolean;
|
|
27
|
+
error?: string;
|
|
28
|
+
redirected?: boolean;
|
|
29
|
+
finalUrl?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface UrlOccurrence {
|
|
32
|
+
file: string;
|
|
33
|
+
line: number;
|
|
34
|
+
url: string;
|
|
35
|
+
}
|
|
36
|
+
export interface UrlCheckOptions {
|
|
37
|
+
timeout: number;
|
|
38
|
+
concurrency: number;
|
|
39
|
+
retries: number;
|
|
40
|
+
allowedStatuses?: readonly number[];
|
|
41
|
+
headFallbackStatuses?: readonly number[];
|
|
42
|
+
cache?: boolean;
|
|
43
|
+
cacheTtl?: number;
|
|
44
|
+
cachePath?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function checkUrlRaw(url: string, timeout: number, retries: number, headFallbackStatuses?: readonly number[]): Promise<RawUrlResult>;
|
|
47
|
+
export declare function checkUrl(url: string, timeout: number, retries: number, allowedStatuses?: readonly number[], headFallbackStatuses?: readonly number[]): Promise<RawUrlResult & {
|
|
48
|
+
ok: boolean;
|
|
49
|
+
}>;
|
|
50
|
+
export declare function checkUrlOccurrences(occurrences: UrlOccurrence[], options: UrlCheckOptions): Promise<UrlResult[]>;
|
|
51
|
+
export declare function checkUrlsAction(inputs: string | string[], opts: CheckUrlsOptions): Promise<void>;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { minimatch } from "minimatch";
|
|
2
|
+
import { formatSarif } from "../automation.js";
|
|
3
|
+
import { resolveMarkdownInputs } from "../input-selection.js";
|
|
4
|
+
import { outputPath, runtime } from "../runtime.js";
|
|
5
|
+
import { terminate } from "../command-result.js";
|
|
6
|
+
import { jsonPayload } from "../result.js";
|
|
7
|
+
import { getUrlCachePath, readUrlCache, urlCacheKey, writeUrlCache, } from "../url-cache.js";
|
|
8
|
+
function format(opts) {
|
|
9
|
+
return ["llm", "human", "json", "jsonl", "sarif"].includes(opts.format)
|
|
10
|
+
? opts.format
|
|
11
|
+
: "llm";
|
|
12
|
+
}
|
|
13
|
+
function statusCodes(values, fallback) {
|
|
14
|
+
if (!values.length)
|
|
15
|
+
return [...fallback];
|
|
16
|
+
const parsed = values.map(Number);
|
|
17
|
+
if (parsed.some((value) => !Number.isInteger(value) || value < 100 || value > 599)) {
|
|
18
|
+
throw new Error("HTTP statuses must be integers from 100 to 599");
|
|
19
|
+
}
|
|
20
|
+
return parsed;
|
|
21
|
+
}
|
|
22
|
+
export async function checkUrlRaw(url, timeout, retries, headFallbackStatuses = [400, 403, 405, 501]) {
|
|
23
|
+
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
24
|
+
try {
|
|
25
|
+
let response = await fetch(url, {
|
|
26
|
+
method: "HEAD",
|
|
27
|
+
signal: AbortSignal.timeout(timeout),
|
|
28
|
+
redirect: "follow",
|
|
29
|
+
});
|
|
30
|
+
if (headFallbackStatuses.includes(response.status)) {
|
|
31
|
+
response = await fetch(url, {
|
|
32
|
+
method: "GET",
|
|
33
|
+
signal: AbortSignal.timeout(timeout),
|
|
34
|
+
redirect: "follow",
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (response.status === 429 && attempt < retries)
|
|
38
|
+
continue;
|
|
39
|
+
const finalUrl = response.url || url;
|
|
40
|
+
return {
|
|
41
|
+
status: response.status,
|
|
42
|
+
redirected: response.redirected || finalUrl !== url,
|
|
43
|
+
finalUrl,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (attempt < retries)
|
|
48
|
+
continue;
|
|
49
|
+
return {
|
|
50
|
+
status: null,
|
|
51
|
+
error: error instanceof Error
|
|
52
|
+
? (error.code ?? error.message)
|
|
53
|
+
: String(error),
|
|
54
|
+
redirected: false,
|
|
55
|
+
finalUrl: url,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return { status: null, error: "Max retries exceeded", redirected: false, finalUrl: url };
|
|
60
|
+
}
|
|
61
|
+
export async function checkUrl(url, timeout, retries, allowedStatuses = [], headFallbackStatuses = [400, 403, 405, 501]) {
|
|
62
|
+
const result = await checkUrlRaw(url, timeout, retries, headFallbackStatuses);
|
|
63
|
+
return {
|
|
64
|
+
...result,
|
|
65
|
+
ok: result.status !== null &&
|
|
66
|
+
((result.status >= 200 && result.status < 400) || allowedStatuses.includes(result.status)),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async function concurrent(items, limit, fn) {
|
|
70
|
+
let next = 0;
|
|
71
|
+
const worker = async () => {
|
|
72
|
+
while (next < items.length)
|
|
73
|
+
await fn(items[next++]);
|
|
74
|
+
};
|
|
75
|
+
await Promise.all(Array.from({ length: Math.min(Math.max(1, limit), items.length) }, worker));
|
|
76
|
+
}
|
|
77
|
+
export async function checkUrlOccurrences(occurrences, options) {
|
|
78
|
+
const allowed = options.allowedStatuses ?? runtime().config.urls.allowedStatuses;
|
|
79
|
+
const fallback = options.headFallbackStatuses ?? runtime().config.urls.headFallbackStatuses;
|
|
80
|
+
const cacheEnabled = options.cache ?? runtime().config.urls.cache;
|
|
81
|
+
const ttl = options.cacheTtl ?? runtime().config.urls.cacheTtl;
|
|
82
|
+
const cachePath = options.cachePath ?? getUrlCachePath();
|
|
83
|
+
const unique = [...new Set(occurrences.map((item) => item.url))].sort();
|
|
84
|
+
const checked = new Map();
|
|
85
|
+
await concurrent(unique, options.concurrency, async (url) => {
|
|
86
|
+
const key = urlCacheKey(url, {
|
|
87
|
+
timeout: options.timeout,
|
|
88
|
+
retries: options.retries,
|
|
89
|
+
headFallbackStatuses: fallback,
|
|
90
|
+
});
|
|
91
|
+
const cached = cacheEnabled ? readUrlCache(cachePath, key, ttl) : undefined;
|
|
92
|
+
if (cached) {
|
|
93
|
+
checked.set(url, cached);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const result = await checkUrlRaw(url, options.timeout, options.retries, fallback);
|
|
97
|
+
checked.set(url, result);
|
|
98
|
+
if (cacheEnabled)
|
|
99
|
+
writeUrlCache(cachePath, key, result);
|
|
100
|
+
});
|
|
101
|
+
return occurrences.map((occurrence) => {
|
|
102
|
+
const raw = checked.get(occurrence.url);
|
|
103
|
+
return {
|
|
104
|
+
...occurrence,
|
|
105
|
+
...raw,
|
|
106
|
+
ok: raw.status !== null &&
|
|
107
|
+
((raw.status >= 200 && raw.status < 400) || allowed.includes(raw.status)),
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function ignoredDomain(url, domains) {
|
|
112
|
+
try {
|
|
113
|
+
const host = new URL(url).hostname.toLowerCase();
|
|
114
|
+
return domains.some((value) => {
|
|
115
|
+
const domain = value.toLowerCase().replace(/^\*\./, "");
|
|
116
|
+
return host === domain || host.endsWith(`.${domain}`);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export async function checkUrlsAction(inputs, opts) {
|
|
124
|
+
const files = resolveMarkdownInputs(Array.isArray(inputs) ? inputs : [inputs], {
|
|
125
|
+
...opts,
|
|
126
|
+
requireStdinName: true,
|
|
127
|
+
});
|
|
128
|
+
const configured = runtime().config.urls;
|
|
129
|
+
const parsedCacheTtl = Number(opts.cacheTtl);
|
|
130
|
+
if (!Number.isInteger(parsedCacheTtl) || parsedCacheTtl < 0) {
|
|
131
|
+
throw new Error("--cache-ttl must be a non-negative integer");
|
|
132
|
+
}
|
|
133
|
+
const occurrences = files.flatMap((file) => runtime()
|
|
134
|
+
.workspace.document(file)
|
|
135
|
+
.references.filter((ref) => ref.isExternal && /^https?:/i.test(ref.target))
|
|
136
|
+
.filter((ref) => !opts.ignore.some((pattern) => minimatch(ref.target, pattern, { nonegate: true })))
|
|
137
|
+
.filter((ref) => !ignoredDomain(ref.target, opts.ignoreDomain))
|
|
138
|
+
.map((ref) => ({ file, line: ref.line, url: ref.target })));
|
|
139
|
+
const results = await checkUrlOccurrences(occurrences, {
|
|
140
|
+
timeout: Math.max(1, parseInt(opts.timeout, 10) || 5000),
|
|
141
|
+
concurrency: Math.max(1, parseInt(opts.concurrency, 10) || 5),
|
|
142
|
+
retries: Math.max(0, parseInt(opts.retry, 10) || 0),
|
|
143
|
+
allowedStatuses: statusCodes(opts.allowedStatus, configured.allowedStatuses),
|
|
144
|
+
headFallbackStatuses: statusCodes(opts.headFallbackStatus, configured.headFallbackStatuses),
|
|
145
|
+
cache: opts.cache,
|
|
146
|
+
cacheTtl: parsedCacheTtl,
|
|
147
|
+
});
|
|
148
|
+
results.sort((a, b) => a.file.localeCompare(b.file) || a.line - b.line || a.url.localeCompare(b.url));
|
|
149
|
+
const shown = results.map((result) => ({
|
|
150
|
+
...result,
|
|
151
|
+
file: outputPath(result.file, opts),
|
|
152
|
+
...(!opts.reportRedirects ? { redirected: undefined, finalUrl: undefined } : {}),
|
|
153
|
+
}));
|
|
154
|
+
const broken = shown.filter((result) => !result.ok);
|
|
155
|
+
const payloadResults = opts.includeOk ? shown : broken;
|
|
156
|
+
const summary = {
|
|
157
|
+
type: "summary",
|
|
158
|
+
files: files.length,
|
|
159
|
+
total: shown.length,
|
|
160
|
+
ok: shown.length - broken.length,
|
|
161
|
+
broken: broken.length,
|
|
162
|
+
};
|
|
163
|
+
let payload;
|
|
164
|
+
const outputFormat = format(opts);
|
|
165
|
+
if (outputFormat === "json")
|
|
166
|
+
payload = jsonPayload("md check-urls", {
|
|
167
|
+
...(files.length === 1 ? { file: outputPath(files[0], opts) } : {}),
|
|
168
|
+
files: files.length,
|
|
169
|
+
total: shown.length,
|
|
170
|
+
ok: shown.length - broken.length,
|
|
171
|
+
broken: broken.length,
|
|
172
|
+
results: shown,
|
|
173
|
+
}, opts, { exitCode: broken.length ? 2 : 0, summary: { total: shown.length, broken: broken.length } }).trimEnd();
|
|
174
|
+
else if (outputFormat === "jsonl")
|
|
175
|
+
payload = [
|
|
176
|
+
...payloadResults.map((result) => JSON.stringify({ type: "result", ...result })),
|
|
177
|
+
JSON.stringify(summary),
|
|
178
|
+
].join("\n");
|
|
179
|
+
else if (outputFormat === "sarif") {
|
|
180
|
+
const issues = broken.map((result) => ({
|
|
181
|
+
file: result.file,
|
|
182
|
+
line: result.line,
|
|
183
|
+
checker: "external",
|
|
184
|
+
message: `${result.url}: ${result.status ?? result.error ?? "request failed"}`,
|
|
185
|
+
}));
|
|
186
|
+
payload = formatSarif(issues);
|
|
187
|
+
}
|
|
188
|
+
else if (!shown.length)
|
|
189
|
+
payload = `No external URLs found in ${files.length} file(s)`;
|
|
190
|
+
else if (!payloadResults.length)
|
|
191
|
+
payload = `All ${shown.length} URL(s) in ${files.length} file(s) are reachable`;
|
|
192
|
+
else
|
|
193
|
+
payload = [
|
|
194
|
+
`${broken.length} broken URL(s) across ${files.length} file(s):`,
|
|
195
|
+
...payloadResults.map((result) => {
|
|
196
|
+
const detail = result.error ? ` (${result.error})` : "";
|
|
197
|
+
const redirect = opts.reportRedirects && result.redirected ? ` → ${result.finalUrl}` : "";
|
|
198
|
+
return ` ${result.file}:L${result.line} [${result.status ?? "fail"}] ${result.url}${redirect}${detail}`;
|
|
199
|
+
}),
|
|
200
|
+
].join("\n");
|
|
201
|
+
(broken.length ? process.stderr : process.stdout).write(payload + "\n");
|
|
202
|
+
if (broken.length)
|
|
203
|
+
terminate(2);
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=check-urls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-urls.js","sourceRoot":"","sources":["../../src/commands/check-urls.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { extractCodeBlocks } from "../markdown-ast.js";
|
|
2
|
+
import { outputPath, runtime } from "../runtime.js";
|
|
3
|
+
import { requireFile } from "../input.js";
|
|
4
|
+
import { jsonPayload } from "../result.js";
|
|
5
|
+
function resolveFormat(opts) {
|
|
6
|
+
const fmt = opts.format;
|
|
7
|
+
if (fmt === "llm" || fmt === "human" || fmt === "json")
|
|
8
|
+
return fmt;
|
|
9
|
+
return "llm";
|
|
10
|
+
}
|
|
11
|
+
export async function codeBlocksAction(file, opts) {
|
|
12
|
+
const format = resolveFormat(opts);
|
|
13
|
+
const filePath = requireFile(file, opts);
|
|
14
|
+
const shownPath = outputPath(filePath, opts);
|
|
15
|
+
let blocks = extractCodeBlocks(runtime().workspace.document(filePath).tree);
|
|
16
|
+
if (opts.lang) {
|
|
17
|
+
blocks = blocks.filter((b) => b.lang === opts.lang);
|
|
18
|
+
}
|
|
19
|
+
if (format === "json") {
|
|
20
|
+
const output = blocks.map((b) => ({
|
|
21
|
+
line: b.line,
|
|
22
|
+
endLine: b.endLine,
|
|
23
|
+
lang: b.lang,
|
|
24
|
+
lines: b.endLine - b.line + 1,
|
|
25
|
+
...(opts.content ? { content: b.value } : {}),
|
|
26
|
+
}));
|
|
27
|
+
process.stdout.write(jsonPayload("md code-blocks", output, opts));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (blocks.length === 0) {
|
|
31
|
+
if (format === "human") {
|
|
32
|
+
process.stdout.write(`\x1b[33mNo code blocks found in ${shownPath}\x1b[0m\n`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
process.stdout.write(`No code blocks found in ${shownPath}\n`);
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const lines = [];
|
|
40
|
+
const isHuman = format === "human";
|
|
41
|
+
if (isHuman) {
|
|
42
|
+
lines.push(`\n\x1b[1m${blocks.length} code block(s) in ${shownPath}\x1b[0m\n`);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
lines.push(`${blocks.length} code block(s) in ${shownPath}:`);
|
|
46
|
+
}
|
|
47
|
+
for (const b of blocks) {
|
|
48
|
+
const lineCount = b.endLine - b.line + 1;
|
|
49
|
+
const lang = b.lang ?? "(none)";
|
|
50
|
+
if (isHuman) {
|
|
51
|
+
lines.push(` \x1b[36mL${b.line}-L${b.endLine}\x1b[0m \x1b[33m${lang}\x1b[0m (${lineCount} lines)`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
lines.push(` L${b.line}-L${b.endLine} ${lang} (${lineCount} lines)`);
|
|
55
|
+
}
|
|
56
|
+
if (opts.content) {
|
|
57
|
+
const contentLines = b.value.split("\n");
|
|
58
|
+
for (const cl of contentLines) {
|
|
59
|
+
lines.push(` ${cl}`);
|
|
60
|
+
}
|
|
61
|
+
lines.push("");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
process.stdout.write(lines.join("\n") + "\n");
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=code-blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-blocks.js","sourceRoot":"","sources":["../../src/commands/code-blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
export interface CompletionOptions {
|
|
3
|
+
format: string;
|
|
4
|
+
toolName: string;
|
|
5
|
+
toolVersion: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Writes a shell completion script to stdout.
|
|
9
|
+
*
|
|
10
|
+
* `--format` is validated but does not change the output, matching
|
|
11
|
+
* `schema <id>`: the script *is* the payload, and there is no JSON form of it
|
|
12
|
+
* worth publishing — `describe --format json` already emits the same command
|
|
13
|
+
* tree this is generated from.
|
|
14
|
+
*/
|
|
15
|
+
export declare function completionAction(program: Command, shell: string | undefined, opts: CompletionOptions): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BASE_FORMATS } from "../formats.js";
|
|
2
|
+
import { SHELLS, buildModel } from "../completion/model.js";
|
|
3
|
+
import { generateCompletion } from "../completion/shells.js";
|
|
4
|
+
/**
|
|
5
|
+
* Writes a shell completion script to stdout.
|
|
6
|
+
*
|
|
7
|
+
* `--format` is validated but does not change the output, matching
|
|
8
|
+
* `schema <id>`: the script *is* the payload, and there is no JSON form of it
|
|
9
|
+
* worth publishing — `describe --format json` already emits the same command
|
|
10
|
+
* tree this is generated from.
|
|
11
|
+
*/
|
|
12
|
+
export function completionAction(program, shell, opts) {
|
|
13
|
+
if (!BASE_FORMATS.includes(opts.format))
|
|
14
|
+
throw new Error(`Invalid output format: ${opts.format}`);
|
|
15
|
+
if (!shell || !SHELLS.includes(shell))
|
|
16
|
+
throw new Error(`Unknown shell: ${shell ?? ""}. Supported: ${SHELLS.join(", ")}`);
|
|
17
|
+
const model = buildModel(program, { name: opts.toolName, version: opts.toolVersion });
|
|
18
|
+
process.stdout.write(generateCompletion(model, shell));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAc,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQ7D;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,KAAyB,EACzB,IAAuB;IAEvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAsB,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAc,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI,EAAE,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAc,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface ContextOptions {
|
|
2
|
+
envelope?: boolean;
|
|
3
|
+
format: string;
|
|
4
|
+
paths?: string;
|
|
5
|
+
depth: string;
|
|
6
|
+
section: string[];
|
|
7
|
+
target?: string;
|
|
8
|
+
budget: string;
|
|
9
|
+
backlinks: boolean;
|
|
10
|
+
children: boolean;
|
|
11
|
+
frontmatter: boolean;
|
|
12
|
+
include: string[];
|
|
13
|
+
exclude: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function contextAction(seeds: string[], opts: ContextOptions): Promise<void>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { buildContextPack, selectSections, } from "../context.js";
|
|
3
|
+
import { documentSections } from "../sections.js";
|
|
4
|
+
import { documentsReferencing } from "../backlinks.js";
|
|
5
|
+
import { splitLocalTarget } from "../link-target.js";
|
|
6
|
+
import { resolveMarkdownInputs } from "../input-selection.js";
|
|
7
|
+
import { outputPath, runtime } from "../runtime.js";
|
|
8
|
+
import { jsonPayload } from "../result.js";
|
|
9
|
+
import { boundedInteger } from "../option-utils.js";
|
|
10
|
+
function resolveFormat(opts) {
|
|
11
|
+
const fmt = opts.format;
|
|
12
|
+
if (fmt === "llm" || fmt === "human" || fmt === "json")
|
|
13
|
+
return fmt;
|
|
14
|
+
return "llm";
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Documents that reference `--target`, in workspace order.
|
|
18
|
+
*
|
|
19
|
+
* A fragment on the target narrows the match to references carrying that
|
|
20
|
+
* anchor, which is the rule `md query links-to --target` already uses.
|
|
21
|
+
*/
|
|
22
|
+
function targetSeeds(target, files) {
|
|
23
|
+
const parsed = splitLocalTarget(target);
|
|
24
|
+
const resolved = path.resolve(parsed.path);
|
|
25
|
+
const references = documentsReferencing(files, resolved).filter((reference) => parsed.fragment === undefined || reference.fragment === parsed.fragment);
|
|
26
|
+
return [...new Set(references.map((reference) => reference.sourceFile))];
|
|
27
|
+
}
|
|
28
|
+
function renderText(pack, human) {
|
|
29
|
+
const bold = (value) => (human ? `\x1b[1m${value}\x1b[0m` : value);
|
|
30
|
+
const dim = (value) => (human ? `\x1b[2m${value}\x1b[0m` : value);
|
|
31
|
+
const yellow = (value) => (human ? `\x1b[33m${value}\x1b[0m` : value);
|
|
32
|
+
const lines = [
|
|
33
|
+
bold(`# Context pack: ${pack.totals.files} document(s), ${pack.totals.units} unit(s), ` +
|
|
34
|
+
`${pack.totals.bytes} bytes (~${pack.budget.tokenEstimate} tokens, estimate: bytes/4)`),
|
|
35
|
+
bold("# Order: graph distance, then discovery order, then document order."),
|
|
36
|
+
];
|
|
37
|
+
if (pack.budget.truncated) {
|
|
38
|
+
lines.push(yellow(`# Truncated at ${pack.budget.limitBytes} bytes; ${pack.omitted.length} unit(s) omitted.`));
|
|
39
|
+
}
|
|
40
|
+
for (const unit of pack.units) {
|
|
41
|
+
const where = `${unit.id} (L${unit.startLine}-L${unit.endLine})`;
|
|
42
|
+
const { distance, direction, via, viaLine } = unit.provenance;
|
|
43
|
+
let origin = "seed";
|
|
44
|
+
if (distance > 0) {
|
|
45
|
+
// A backlink's line lives in this document, not in `via`, so it is worded
|
|
46
|
+
// the other way round.
|
|
47
|
+
origin =
|
|
48
|
+
direction === "backlink"
|
|
49
|
+
? `distance ${distance}, links to ${via} at L${viaLine}`
|
|
50
|
+
: `distance ${distance} via ${via}:${viaLine}`;
|
|
51
|
+
}
|
|
52
|
+
lines.push("", dim(`<!-- ${where} ${origin} -->`), unit.content.replace(/\n$/, ""));
|
|
53
|
+
}
|
|
54
|
+
if (pack.broken.length) {
|
|
55
|
+
lines.push("", yellow(`# Broken dependencies (${pack.broken.length})`));
|
|
56
|
+
for (const edge of pack.broken) {
|
|
57
|
+
lines.push(`${edge.source}:${edge.line} -> ${edge.target}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (pack.omitted.length) {
|
|
61
|
+
lines.push("", yellow(`# Omitted for budget (${pack.omitted.length}, ${pack.budget.omittedBytes} bytes)`));
|
|
62
|
+
for (const omission of pack.omitted) {
|
|
63
|
+
lines.push(`${omission.id} (${omission.bytes} bytes)`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return lines.join("\n");
|
|
67
|
+
}
|
|
68
|
+
export async function contextAction(seeds, opts) {
|
|
69
|
+
const format = resolveFormat(opts);
|
|
70
|
+
const depth = boundedInteger(opts.depth, "depth", 6);
|
|
71
|
+
const budget = boundedInteger(opts.budget, "budget");
|
|
72
|
+
if (seeds.includes("-"))
|
|
73
|
+
throw new Error("md context does not accept stdin");
|
|
74
|
+
if (!seeds.length && !opts.target) {
|
|
75
|
+
throw new Error("md context requires at least one seed file or --target <path>");
|
|
76
|
+
}
|
|
77
|
+
const workspace = runtime().workspace;
|
|
78
|
+
const files = workspace.markdownFiles(workspace.root, {
|
|
79
|
+
include: opts.include,
|
|
80
|
+
exclude: opts.exclude,
|
|
81
|
+
});
|
|
82
|
+
const seedFiles = seeds.length
|
|
83
|
+
? resolveMarkdownInputs(seeds, { include: opts.include, exclude: opts.exclude })
|
|
84
|
+
: [];
|
|
85
|
+
const fromTarget = opts.target ? targetSeeds(opts.target, files) : [];
|
|
86
|
+
const ordered = [...new Set([...seedFiles, ...fromTarget])];
|
|
87
|
+
if (!ordered.length) {
|
|
88
|
+
throw new Error(opts.target && !seeds.length
|
|
89
|
+
? `No documents reference ${opts.target}`
|
|
90
|
+
: "No documents matched the requested seeds");
|
|
91
|
+
}
|
|
92
|
+
// `--section` restricts each seed to the named sections. A name matching
|
|
93
|
+
// nothing anywhere is a usage error rather than a silently smaller pack.
|
|
94
|
+
const resolvedSeeds = [];
|
|
95
|
+
const matched = new Set();
|
|
96
|
+
for (const file of ordered) {
|
|
97
|
+
if (!opts.section.length) {
|
|
98
|
+
resolvedSeeds.push({ file });
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const sections = documentSections(workspace.document(file));
|
|
102
|
+
const chosen = new Set();
|
|
103
|
+
for (const heading of opts.section) {
|
|
104
|
+
const indices = selectSections(sections, heading, opts.children);
|
|
105
|
+
if (indices.length)
|
|
106
|
+
matched.add(heading);
|
|
107
|
+
for (const index of indices)
|
|
108
|
+
chosen.add(index);
|
|
109
|
+
}
|
|
110
|
+
if (chosen.size)
|
|
111
|
+
resolvedSeeds.push({ file, sections: [...chosen] });
|
|
112
|
+
}
|
|
113
|
+
for (const heading of opts.section) {
|
|
114
|
+
if (!matched.has(heading))
|
|
115
|
+
throw new Error(`Heading not found in any seed: ${heading}`);
|
|
116
|
+
}
|
|
117
|
+
const pack = buildContextPack({
|
|
118
|
+
workspace,
|
|
119
|
+
seeds: resolvedSeeds,
|
|
120
|
+
files,
|
|
121
|
+
depth,
|
|
122
|
+
backlinks: opts.backlinks,
|
|
123
|
+
frontmatter: opts.frontmatter,
|
|
124
|
+
budgetBytes: budget,
|
|
125
|
+
path: (file) => outputPath(file, opts),
|
|
126
|
+
});
|
|
127
|
+
process.stdout.write(format === "json"
|
|
128
|
+
? jsonPayload("md context", pack, opts)
|
|
129
|
+
: renderText(pack, format === "human") + "\n");
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,cAAc,GAGf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAiBpD,SAAS,aAAa,CAAC,IAAoB;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,KAAe;IAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAC7D,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CACvF,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,KAAc;IACnD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAE9E,MAAM,KAAK,GAAG;QACZ,IAAI,CACF,mBAAmB,IAAI,CAAC,MAAM,CAAC,KAAK,iBAAiB,IAAI,CAAC,MAAM,CAAC,KAAK,YAAY;YAChF,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,aAAa,6BAA6B,CACzF;QACD,IAAI,CAAC,qEAAqE,CAAC;KAC5E,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CACR,MAAM,CACJ,kBAAkB,IAAI,CAAC,MAAM,CAAC,UAAU,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,mBAAmB,CAC1F,CACF,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC;QACjE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9D,IAAI,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,0EAA0E;YAC1E,uBAAuB;YACvB,MAAM;gBACJ,SAAS,KAAK,UAAU;oBACtB,CAAC,CAAC,YAAY,QAAQ,cAAc,GAAG,QAAQ,OAAO,EAAE;oBACxD,CAAC,CAAC,YAAY,QAAQ,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,KAAK,IAAI,MAAM,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,MAAM,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,SAAS,CAAC,CAC3F,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAe,EAAE,IAAoB;IACvE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE;QACpD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM;QAC5B,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM;YAC1B,CAAC,CAAC,0BAA0B,IAAI,CAAC,MAAM,EAAE;YACzC,CAAC,CAAC,0CAA0C,CAC/C,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,OAAO;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI;YAAE,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,SAAS;QACT,KAAK,EAAE,aAAa;QACpB,KAAK;QACL,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;KACvC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,KAAK,MAAM;QACf,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;QACvC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAChD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
export interface DescribeOptions {
|
|
3
|
+
format: string;
|
|
4
|
+
toolName: string;
|
|
5
|
+
toolVersion: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Describes the CLI contract. Reports the static contract: project
|
|
9
|
+
* configuration is deliberately not applied, so a consumer sees the same answer
|
|
10
|
+
* regardless of the directory it runs in.
|
|
11
|
+
*/
|
|
12
|
+
export declare function describeAction(program: Command, commandPath: string[], opts: DescribeOptions): Promise<void>;
|