anchorspec 1.3.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/LICENSE +22 -0
- package/README.md +230 -0
- package/bin/anchorspec.js +3 -0
- package/bin/openspec.js +3 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +455 -0
- package/dist/commands/change.d.ts +35 -0
- package/dist/commands/change.js +277 -0
- package/dist/commands/completion.d.ts +72 -0
- package/dist/commands/completion.js +257 -0
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.js +552 -0
- package/dist/commands/feedback.d.ts +9 -0
- package/dist/commands/feedback.js +183 -0
- package/dist/commands/schema.d.ts +6 -0
- package/dist/commands/schema.js +869 -0
- package/dist/commands/show.d.ts +14 -0
- package/dist/commands/show.js +132 -0
- package/dist/commands/spec.d.ts +15 -0
- package/dist/commands/spec.js +225 -0
- package/dist/commands/validate.d.ts +24 -0
- package/dist/commands/validate.js +294 -0
- package/dist/commands/workflow/index.d.ts +17 -0
- package/dist/commands/workflow/index.js +12 -0
- package/dist/commands/workflow/instructions.d.ts +29 -0
- package/dist/commands/workflow/instructions.js +381 -0
- package/dist/commands/workflow/new-change.d.ts +11 -0
- package/dist/commands/workflow/new-change.js +44 -0
- package/dist/commands/workflow/schemas.d.ts +10 -0
- package/dist/commands/workflow/schemas.js +34 -0
- package/dist/commands/workflow/shared.d.ts +57 -0
- package/dist/commands/workflow/shared.js +116 -0
- package/dist/commands/workflow/status.d.ts +14 -0
- package/dist/commands/workflow/status.js +75 -0
- package/dist/commands/workflow/templates.d.ts +16 -0
- package/dist/commands/workflow/templates.js +68 -0
- package/dist/core/archive.d.ts +11 -0
- package/dist/core/archive.js +318 -0
- package/dist/core/artifact-graph/graph.d.ts +56 -0
- package/dist/core/artifact-graph/graph.js +141 -0
- package/dist/core/artifact-graph/index.d.ts +7 -0
- package/dist/core/artifact-graph/index.js +13 -0
- package/dist/core/artifact-graph/instruction-loader.d.ts +143 -0
- package/dist/core/artifact-graph/instruction-loader.js +214 -0
- package/dist/core/artifact-graph/resolver.d.ts +81 -0
- package/dist/core/artifact-graph/resolver.js +257 -0
- package/dist/core/artifact-graph/schema.d.ts +13 -0
- package/dist/core/artifact-graph/schema.js +108 -0
- package/dist/core/artifact-graph/state.d.ts +12 -0
- package/dist/core/artifact-graph/state.js +54 -0
- package/dist/core/artifact-graph/types.d.ts +45 -0
- package/dist/core/artifact-graph/types.js +43 -0
- package/dist/core/available-tools.d.ts +17 -0
- package/dist/core/available-tools.js +43 -0
- package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
- package/dist/core/command-generation/adapters/amazon-q.js +26 -0
- package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
- package/dist/core/command-generation/adapters/antigravity.js +26 -0
- package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
- package/dist/core/command-generation/adapters/auggie.js +27 -0
- package/dist/core/command-generation/adapters/bob.d.ts +14 -0
- package/dist/core/command-generation/adapters/bob.js +45 -0
- package/dist/core/command-generation/adapters/claude.d.ts +13 -0
- package/dist/core/command-generation/adapters/claude.js +50 -0
- package/dist/core/command-generation/adapters/cline.d.ts +14 -0
- package/dist/core/command-generation/adapters/cline.js +27 -0
- package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
- package/dist/core/command-generation/adapters/codebuddy.js +28 -0
- package/dist/core/command-generation/adapters/codex.d.ts +16 -0
- package/dist/core/command-generation/adapters/codex.js +39 -0
- package/dist/core/command-generation/adapters/continue.d.ts +13 -0
- package/dist/core/command-generation/adapters/continue.js +28 -0
- package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
- package/dist/core/command-generation/adapters/costrict.js +27 -0
- package/dist/core/command-generation/adapters/crush.d.ts +13 -0
- package/dist/core/command-generation/adapters/crush.js +30 -0
- package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
- package/dist/core/command-generation/adapters/cursor.js +44 -0
- package/dist/core/command-generation/adapters/factory.d.ts +13 -0
- package/dist/core/command-generation/adapters/factory.js +27 -0
- package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
- package/dist/core/command-generation/adapters/gemini.js +26 -0
- package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
- package/dist/core/command-generation/adapters/github-copilot.js +26 -0
- package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
- package/dist/core/command-generation/adapters/iflow.js +29 -0
- package/dist/core/command-generation/adapters/index.d.ts +32 -0
- package/dist/core/command-generation/adapters/index.js +32 -0
- package/dist/core/command-generation/adapters/junie.d.ts +13 -0
- package/dist/core/command-generation/adapters/junie.js +26 -0
- package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/kilocode.js +23 -0
- package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
- package/dist/core/command-generation/adapters/kiro.js +26 -0
- package/dist/core/command-generation/adapters/lingma.d.ts +13 -0
- package/dist/core/command-generation/adapters/lingma.js +30 -0
- package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
- package/dist/core/command-generation/adapters/opencode.js +29 -0
- package/dist/core/command-generation/adapters/pi.d.ts +18 -0
- package/dist/core/command-generation/adapters/pi.js +55 -0
- package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
- package/dist/core/command-generation/adapters/qoder.js +30 -0
- package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
- package/dist/core/command-generation/adapters/qwen.js +26 -0
- package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/roocode.js +27 -0
- package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
- package/dist/core/command-generation/adapters/windsurf.js +51 -0
- package/dist/core/command-generation/generator.d.ts +21 -0
- package/dist/core/command-generation/generator.js +27 -0
- package/dist/core/command-generation/index.d.ts +22 -0
- package/dist/core/command-generation/index.js +24 -0
- package/dist/core/command-generation/registry.d.ts +36 -0
- package/dist/core/command-generation/registry.js +98 -0
- package/dist/core/command-generation/types.d.ts +56 -0
- package/dist/core/command-generation/types.js +8 -0
- package/dist/core/completions/command-registry.d.ts +7 -0
- package/dist/core/completions/command-registry.js +461 -0
- package/dist/core/completions/completion-provider.d.ts +60 -0
- package/dist/core/completions/completion-provider.js +102 -0
- package/dist/core/completions/factory.d.ts +64 -0
- package/dist/core/completions/factory.js +75 -0
- package/dist/core/completions/generators/bash-generator.d.ts +32 -0
- package/dist/core/completions/generators/bash-generator.js +174 -0
- package/dist/core/completions/generators/fish-generator.d.ts +32 -0
- package/dist/core/completions/generators/fish-generator.js +157 -0
- package/dist/core/completions/generators/powershell-generator.d.ts +33 -0
- package/dist/core/completions/generators/powershell-generator.js +207 -0
- package/dist/core/completions/generators/zsh-generator.d.ts +44 -0
- package/dist/core/completions/generators/zsh-generator.js +250 -0
- package/dist/core/completions/installers/bash-installer.d.ts +87 -0
- package/dist/core/completions/installers/bash-installer.js +318 -0
- package/dist/core/completions/installers/fish-installer.d.ts +43 -0
- package/dist/core/completions/installers/fish-installer.js +143 -0
- package/dist/core/completions/installers/powershell-installer.d.ts +102 -0
- package/dist/core/completions/installers/powershell-installer.js +387 -0
- package/dist/core/completions/installers/zsh-installer.d.ts +125 -0
- package/dist/core/completions/installers/zsh-installer.js +449 -0
- package/dist/core/completions/templates/bash-templates.d.ts +6 -0
- package/dist/core/completions/templates/bash-templates.js +24 -0
- package/dist/core/completions/templates/fish-templates.d.ts +7 -0
- package/dist/core/completions/templates/fish-templates.js +39 -0
- package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
- package/dist/core/completions/templates/powershell-templates.js +25 -0
- package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
- package/dist/core/completions/templates/zsh-templates.js +36 -0
- package/dist/core/completions/types.d.ts +79 -0
- package/dist/core/completions/types.js +2 -0
- package/dist/core/config-prompts.d.ts +9 -0
- package/dist/core/config-prompts.js +34 -0
- package/dist/core/config-schema.d.ts +86 -0
- package/dist/core/config-schema.js +213 -0
- package/dist/core/config.d.ts +18 -0
- package/dist/core/config.js +37 -0
- package/dist/core/converters/json-converter.d.ts +6 -0
- package/dist/core/converters/json-converter.js +51 -0
- package/dist/core/global-config.d.ts +44 -0
- package/dist/core/global-config.js +125 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +3 -0
- package/dist/core/init.d.ts +37 -0
- package/dist/core/init.js +593 -0
- package/dist/core/legacy-cleanup.d.ts +162 -0
- package/dist/core/legacy-cleanup.js +514 -0
- package/dist/core/list.d.ts +9 -0
- package/dist/core/list.js +171 -0
- package/dist/core/migration.d.ts +23 -0
- package/dist/core/migration.js +108 -0
- package/dist/core/parsers/change-parser.d.ts +13 -0
- package/dist/core/parsers/change-parser.js +193 -0
- package/dist/core/parsers/markdown-parser.d.ts +22 -0
- package/dist/core/parsers/markdown-parser.js +187 -0
- package/dist/core/parsers/requirement-blocks.d.ts +37 -0
- package/dist/core/parsers/requirement-blocks.js +201 -0
- package/dist/core/profile-sync-drift.d.ts +38 -0
- package/dist/core/profile-sync-drift.js +200 -0
- package/dist/core/profiles.d.ts +26 -0
- package/dist/core/profiles.js +40 -0
- package/dist/core/project-config.d.ts +64 -0
- package/dist/core/project-config.js +223 -0
- package/dist/core/schemas/base.schema.d.ts +13 -0
- package/dist/core/schemas/base.schema.js +13 -0
- package/dist/core/schemas/change.schema.d.ts +73 -0
- package/dist/core/schemas/change.schema.js +31 -0
- package/dist/core/schemas/index.d.ts +4 -0
- package/dist/core/schemas/index.js +4 -0
- package/dist/core/schemas/spec.schema.d.ts +18 -0
- package/dist/core/schemas/spec.schema.js +15 -0
- package/dist/core/shared/index.d.ts +8 -0
- package/dist/core/shared/index.js +8 -0
- package/dist/core/shared/skill-generation.d.ts +49 -0
- package/dist/core/shared/skill-generation.js +96 -0
- package/dist/core/shared/tool-detection.d.ts +71 -0
- package/dist/core/shared/tool-detection.js +158 -0
- package/dist/core/specs-apply.d.ts +73 -0
- package/dist/core/specs-apply.js +384 -0
- package/dist/core/styles/palette.d.ts +7 -0
- package/dist/core/styles/palette.js +8 -0
- package/dist/core/templates/index.d.ts +8 -0
- package/dist/core/templates/index.js +9 -0
- package/dist/core/templates/skill-templates.d.ts +19 -0
- package/dist/core/templates/skill-templates.js +18 -0
- package/dist/core/templates/types.d.ts +19 -0
- package/dist/core/templates/types.js +5 -0
- package/dist/core/templates/workflows/apply-change.d.ts +10 -0
- package/dist/core/templates/workflows/apply-change.js +308 -0
- package/dist/core/templates/workflows/archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/archive-change.js +271 -0
- package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/bulk-archive-change.js +488 -0
- package/dist/core/templates/workflows/continue-change.d.ts +10 -0
- package/dist/core/templates/workflows/continue-change.js +232 -0
- package/dist/core/templates/workflows/explore.d.ts +10 -0
- package/dist/core/templates/workflows/explore.js +461 -0
- package/dist/core/templates/workflows/feedback.d.ts +9 -0
- package/dist/core/templates/workflows/feedback.js +108 -0
- package/dist/core/templates/workflows/ff-change.d.ts +10 -0
- package/dist/core/templates/workflows/ff-change.js +198 -0
- package/dist/core/templates/workflows/new-change.d.ts +10 -0
- package/dist/core/templates/workflows/new-change.js +143 -0
- package/dist/core/templates/workflows/onboard.d.ts +10 -0
- package/dist/core/templates/workflows/onboard.js +565 -0
- package/dist/core/templates/workflows/propose.d.ts +10 -0
- package/dist/core/templates/workflows/propose.js +216 -0
- package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
- package/dist/core/templates/workflows/sync-specs.js +272 -0
- package/dist/core/templates/workflows/verify-change.d.ts +10 -0
- package/dist/core/templates/workflows/verify-change.js +332 -0
- package/dist/core/update.d.ts +77 -0
- package/dist/core/update.js +537 -0
- package/dist/core/validation/constants.d.ts +34 -0
- package/dist/core/validation/constants.js +40 -0
- package/dist/core/validation/types.d.ts +18 -0
- package/dist/core/validation/types.js +2 -0
- package/dist/core/validation/validator.d.ts +33 -0
- package/dist/core/validation/validator.js +409 -0
- package/dist/core/view.d.ts +8 -0
- package/dist/core/view.js +168 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/prompts/searchable-multi-select.d.ts +28 -0
- package/dist/prompts/searchable-multi-select.js +159 -0
- package/dist/ui/ascii-patterns.d.ts +16 -0
- package/dist/ui/ascii-patterns.js +133 -0
- package/dist/ui/welcome-screen.d.ts +10 -0
- package/dist/ui/welcome-screen.js +146 -0
- package/dist/utils/change-metadata.d.ts +51 -0
- package/dist/utils/change-metadata.js +147 -0
- package/dist/utils/change-utils.d.ts +62 -0
- package/dist/utils/change-utils.js +121 -0
- package/dist/utils/command-references.d.ts +18 -0
- package/dist/utils/command-references.js +20 -0
- package/dist/utils/file-system.d.ts +36 -0
- package/dist/utils/file-system.js +281 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/interactive.d.ts +18 -0
- package/dist/utils/interactive.js +21 -0
- package/dist/utils/item-discovery.d.ts +4 -0
- package/dist/utils/item-discovery.js +72 -0
- package/dist/utils/match.d.ts +3 -0
- package/dist/utils/match.js +22 -0
- package/dist/utils/shell-detection.d.ts +20 -0
- package/dist/utils/shell-detection.js +41 -0
- package/dist/utils/task-progress.d.ts +8 -0
- package/dist/utils/task-progress.js +36 -0
- package/package.json +78 -0
- package/schemas/spec-driven/schema.yaml +153 -0
- package/schemas/spec-driven/templates/design.md +19 -0
- package/schemas/spec-driven/templates/proposal.md +23 -0
- package/schemas/spec-driven/templates/spec.md +8 -0
- package/schemas/spec-driven/templates/tasks.md +9 -0
- package/scripts/postinstall.js +83 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Generation Module
|
|
3
|
+
*
|
|
4
|
+
* Generic command generation system with tool-specific adapters.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { generateCommands, CommandAdapterRegistry, type CommandContent } from './command-generation/index.js';
|
|
9
|
+
*
|
|
10
|
+
* const contents: CommandContent[] = [...];
|
|
11
|
+
* const adapter = CommandAdapterRegistry.get('cursor');
|
|
12
|
+
* if (adapter) {
|
|
13
|
+
* const commands = generateCommands(contents, adapter);
|
|
14
|
+
* // Write commands to disk
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
// Registry
|
|
19
|
+
export { CommandAdapterRegistry } from './registry.js';
|
|
20
|
+
// Generator functions
|
|
21
|
+
export { generateCommand, generateCommands } from './generator.js';
|
|
22
|
+
// Adapters (for direct access if needed)
|
|
23
|
+
export { claudeAdapter, cursorAdapter, windsurfAdapter } from './adapters/index.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Adapter Registry
|
|
3
|
+
*
|
|
4
|
+
* Centralized registry for tool command adapters.
|
|
5
|
+
* Similar pattern to existing SlashCommandRegistry in the codebase.
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolCommandAdapter } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Registry for looking up tool command adapters.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CommandAdapterRegistry {
|
|
12
|
+
private static adapters;
|
|
13
|
+
/**
|
|
14
|
+
* Register a tool command adapter.
|
|
15
|
+
* @param adapter - The adapter to register
|
|
16
|
+
*/
|
|
17
|
+
static register(adapter: ToolCommandAdapter): void;
|
|
18
|
+
/**
|
|
19
|
+
* Get an adapter by tool ID.
|
|
20
|
+
* @param toolId - The tool identifier (e.g., 'claude', 'cursor')
|
|
21
|
+
* @returns The adapter or undefined if not registered
|
|
22
|
+
*/
|
|
23
|
+
static get(toolId: string): ToolCommandAdapter | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Get all registered adapters.
|
|
26
|
+
* @returns Array of all registered adapters
|
|
27
|
+
*/
|
|
28
|
+
static getAll(): ToolCommandAdapter[];
|
|
29
|
+
/**
|
|
30
|
+
* Check if an adapter is registered for a tool.
|
|
31
|
+
* @param toolId - The tool identifier
|
|
32
|
+
* @returns True if an adapter exists
|
|
33
|
+
*/
|
|
34
|
+
static has(toolId: string): boolean;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Adapter Registry
|
|
3
|
+
*
|
|
4
|
+
* Centralized registry for tool command adapters.
|
|
5
|
+
* Similar pattern to existing SlashCommandRegistry in the codebase.
|
|
6
|
+
*/
|
|
7
|
+
import { amazonQAdapter } from './adapters/amazon-q.js';
|
|
8
|
+
import { antigravityAdapter } from './adapters/antigravity.js';
|
|
9
|
+
import { auggieAdapter } from './adapters/auggie.js';
|
|
10
|
+
import { bobAdapter } from './adapters/bob.js';
|
|
11
|
+
import { claudeAdapter } from './adapters/claude.js';
|
|
12
|
+
import { clineAdapter } from './adapters/cline.js';
|
|
13
|
+
import { codexAdapter } from './adapters/codex.js';
|
|
14
|
+
import { codebuddyAdapter } from './adapters/codebuddy.js';
|
|
15
|
+
import { continueAdapter } from './adapters/continue.js';
|
|
16
|
+
import { costrictAdapter } from './adapters/costrict.js';
|
|
17
|
+
import { crushAdapter } from './adapters/crush.js';
|
|
18
|
+
import { cursorAdapter } from './adapters/cursor.js';
|
|
19
|
+
import { factoryAdapter } from './adapters/factory.js';
|
|
20
|
+
import { geminiAdapter } from './adapters/gemini.js';
|
|
21
|
+
import { githubCopilotAdapter } from './adapters/github-copilot.js';
|
|
22
|
+
import { iflowAdapter } from './adapters/iflow.js';
|
|
23
|
+
import { junieAdapter } from './adapters/junie.js';
|
|
24
|
+
import { kilocodeAdapter } from './adapters/kilocode.js';
|
|
25
|
+
import { kiroAdapter } from './adapters/kiro.js';
|
|
26
|
+
import { opencodeAdapter } from './adapters/opencode.js';
|
|
27
|
+
import { piAdapter } from './adapters/pi.js';
|
|
28
|
+
import { qoderAdapter } from './adapters/qoder.js';
|
|
29
|
+
import { lingmaAdapter } from './adapters/lingma.js';
|
|
30
|
+
import { qwenAdapter } from './adapters/qwen.js';
|
|
31
|
+
import { roocodeAdapter } from './adapters/roocode.js';
|
|
32
|
+
import { windsurfAdapter } from './adapters/windsurf.js';
|
|
33
|
+
/**
|
|
34
|
+
* Registry for looking up tool command adapters.
|
|
35
|
+
*/
|
|
36
|
+
export class CommandAdapterRegistry {
|
|
37
|
+
static adapters = new Map();
|
|
38
|
+
// Static initializer - register built-in adapters
|
|
39
|
+
static {
|
|
40
|
+
CommandAdapterRegistry.register(amazonQAdapter);
|
|
41
|
+
CommandAdapterRegistry.register(antigravityAdapter);
|
|
42
|
+
CommandAdapterRegistry.register(auggieAdapter);
|
|
43
|
+
CommandAdapterRegistry.register(bobAdapter);
|
|
44
|
+
CommandAdapterRegistry.register(claudeAdapter);
|
|
45
|
+
CommandAdapterRegistry.register(clineAdapter);
|
|
46
|
+
CommandAdapterRegistry.register(codexAdapter);
|
|
47
|
+
CommandAdapterRegistry.register(codebuddyAdapter);
|
|
48
|
+
CommandAdapterRegistry.register(continueAdapter);
|
|
49
|
+
CommandAdapterRegistry.register(costrictAdapter);
|
|
50
|
+
CommandAdapterRegistry.register(crushAdapter);
|
|
51
|
+
CommandAdapterRegistry.register(cursorAdapter);
|
|
52
|
+
CommandAdapterRegistry.register(factoryAdapter);
|
|
53
|
+
CommandAdapterRegistry.register(geminiAdapter);
|
|
54
|
+
CommandAdapterRegistry.register(githubCopilotAdapter);
|
|
55
|
+
CommandAdapterRegistry.register(iflowAdapter);
|
|
56
|
+
CommandAdapterRegistry.register(junieAdapter);
|
|
57
|
+
CommandAdapterRegistry.register(kilocodeAdapter);
|
|
58
|
+
CommandAdapterRegistry.register(kiroAdapter);
|
|
59
|
+
CommandAdapterRegistry.register(opencodeAdapter);
|
|
60
|
+
CommandAdapterRegistry.register(piAdapter);
|
|
61
|
+
CommandAdapterRegistry.register(qoderAdapter);
|
|
62
|
+
CommandAdapterRegistry.register(lingmaAdapter);
|
|
63
|
+
CommandAdapterRegistry.register(qwenAdapter);
|
|
64
|
+
CommandAdapterRegistry.register(roocodeAdapter);
|
|
65
|
+
CommandAdapterRegistry.register(windsurfAdapter);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Register a tool command adapter.
|
|
69
|
+
* @param adapter - The adapter to register
|
|
70
|
+
*/
|
|
71
|
+
static register(adapter) {
|
|
72
|
+
CommandAdapterRegistry.adapters.set(adapter.toolId, adapter);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get an adapter by tool ID.
|
|
76
|
+
* @param toolId - The tool identifier (e.g., 'claude', 'cursor')
|
|
77
|
+
* @returns The adapter or undefined if not registered
|
|
78
|
+
*/
|
|
79
|
+
static get(toolId) {
|
|
80
|
+
return CommandAdapterRegistry.adapters.get(toolId);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get all registered adapters.
|
|
84
|
+
* @returns Array of all registered adapters
|
|
85
|
+
*/
|
|
86
|
+
static getAll() {
|
|
87
|
+
return Array.from(CommandAdapterRegistry.adapters.values());
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check if an adapter is registered for a tool.
|
|
91
|
+
* @param toolId - The tool identifier
|
|
92
|
+
* @returns True if an adapter exists
|
|
93
|
+
*/
|
|
94
|
+
static has(toolId) {
|
|
95
|
+
return CommandAdapterRegistry.adapters.has(toolId);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Generation Types
|
|
3
|
+
*
|
|
4
|
+
* Tool-agnostic interfaces for command generation.
|
|
5
|
+
* These types separate "what to generate" from "how to format it".
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Tool-agnostic command data.
|
|
9
|
+
* Represents the content of a command without any tool-specific formatting.
|
|
10
|
+
*/
|
|
11
|
+
export interface CommandContent {
|
|
12
|
+
/** Command identifier (e.g., 'explore', 'apply', 'new') */
|
|
13
|
+
id: string;
|
|
14
|
+
/** Human-readable name (e.g., 'OpenSpec Explore') */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Brief description of command purpose */
|
|
17
|
+
description: string;
|
|
18
|
+
/** Grouping category (e.g., 'Workflow') */
|
|
19
|
+
category: string;
|
|
20
|
+
/** Array of tag strings */
|
|
21
|
+
tags: string[];
|
|
22
|
+
/** The command instruction content (body text) */
|
|
23
|
+
body: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Per-tool formatting strategy.
|
|
27
|
+
* Each AI tool implements this interface to handle its specific file path
|
|
28
|
+
* and frontmatter format requirements.
|
|
29
|
+
*/
|
|
30
|
+
export interface ToolCommandAdapter {
|
|
31
|
+
/** Tool identifier matching AIToolOption.value (e.g., 'claude', 'cursor') */
|
|
32
|
+
toolId: string;
|
|
33
|
+
/**
|
|
34
|
+
* Returns the file path for a command.
|
|
35
|
+
* @param commandId - The command identifier (e.g., 'explore')
|
|
36
|
+
* @returns Path from project root (e.g., '.claude/commands/opsx/explore.md').
|
|
37
|
+
* May be absolute for tools with global-scoped prompts (e.g., Codex).
|
|
38
|
+
*/
|
|
39
|
+
getFilePath(commandId: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Formats the complete file content including frontmatter.
|
|
42
|
+
* @param content - The tool-agnostic command content
|
|
43
|
+
* @returns Complete file content ready to write
|
|
44
|
+
*/
|
|
45
|
+
formatFile(content: CommandContent): string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Result of generating a command file.
|
|
49
|
+
*/
|
|
50
|
+
export interface GeneratedCommand {
|
|
51
|
+
/** File path from project root, or absolute for global-scoped tools */
|
|
52
|
+
path: string;
|
|
53
|
+
/** Complete file content (frontmatter + body) */
|
|
54
|
+
fileContent: string;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CommandDefinition } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Registry of all OpenSpec CLI commands with their flags and metadata.
|
|
4
|
+
* This registry is used to generate shell completion scripts.
|
|
5
|
+
*/
|
|
6
|
+
export declare const COMMAND_REGISTRY: CommandDefinition[];
|
|
7
|
+
//# sourceMappingURL=command-registry.d.ts.map
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common flags used across multiple commands
|
|
3
|
+
*/
|
|
4
|
+
const COMMON_FLAGS = {
|
|
5
|
+
json: {
|
|
6
|
+
name: 'json',
|
|
7
|
+
description: 'Output as JSON',
|
|
8
|
+
},
|
|
9
|
+
jsonValidation: {
|
|
10
|
+
name: 'json',
|
|
11
|
+
description: 'Output validation results as JSON',
|
|
12
|
+
},
|
|
13
|
+
strict: {
|
|
14
|
+
name: 'strict',
|
|
15
|
+
description: 'Enable strict validation mode',
|
|
16
|
+
},
|
|
17
|
+
noInteractive: {
|
|
18
|
+
name: 'no-interactive',
|
|
19
|
+
description: 'Disable interactive prompts',
|
|
20
|
+
},
|
|
21
|
+
type: {
|
|
22
|
+
name: 'type',
|
|
23
|
+
description: 'Specify item type when ambiguous',
|
|
24
|
+
takesValue: true,
|
|
25
|
+
values: ['change', 'spec'],
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Registry of all AnchorSpec CLI commands with their flags and metadata.
|
|
30
|
+
* This registry is used to generate shell completion scripts.
|
|
31
|
+
*/
|
|
32
|
+
export const COMMAND_REGISTRY = [
|
|
33
|
+
{
|
|
34
|
+
name: 'init',
|
|
35
|
+
description: 'Initialize AnchorSpec in your project',
|
|
36
|
+
acceptsPositional: true,
|
|
37
|
+
positionalType: 'path',
|
|
38
|
+
flags: [
|
|
39
|
+
{
|
|
40
|
+
name: 'tools',
|
|
41
|
+
description: 'Configure AI tools non-interactively (e.g., "all", "none", or comma-separated tool IDs)',
|
|
42
|
+
takesValue: true,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'update',
|
|
48
|
+
description: 'Update AnchorSpec instruction files',
|
|
49
|
+
acceptsPositional: true,
|
|
50
|
+
positionalType: 'path',
|
|
51
|
+
flags: [],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'list',
|
|
55
|
+
description: 'List items (changes by default, or specs with --specs)',
|
|
56
|
+
flags: [
|
|
57
|
+
{
|
|
58
|
+
name: 'specs',
|
|
59
|
+
description: 'List specs instead of changes',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'changes',
|
|
63
|
+
description: 'List changes explicitly (default)',
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'view',
|
|
69
|
+
description: 'Display an interactive dashboard of specs and changes',
|
|
70
|
+
flags: [],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'validate',
|
|
74
|
+
description: 'Validate changes and specs',
|
|
75
|
+
acceptsPositional: true,
|
|
76
|
+
positionalType: 'change-or-spec-id',
|
|
77
|
+
flags: [
|
|
78
|
+
{
|
|
79
|
+
name: 'all',
|
|
80
|
+
description: 'Validate all changes and specs',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'changes',
|
|
84
|
+
description: 'Validate all changes',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'specs',
|
|
88
|
+
description: 'Validate all specs',
|
|
89
|
+
},
|
|
90
|
+
COMMON_FLAGS.type,
|
|
91
|
+
COMMON_FLAGS.strict,
|
|
92
|
+
COMMON_FLAGS.jsonValidation,
|
|
93
|
+
{
|
|
94
|
+
name: 'concurrency',
|
|
95
|
+
description: 'Max concurrent validations (defaults to env ANCHORSPEC_CONCURRENCY or 6)',
|
|
96
|
+
takesValue: true,
|
|
97
|
+
},
|
|
98
|
+
COMMON_FLAGS.noInteractive,
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'show',
|
|
103
|
+
description: 'Show a change or spec',
|
|
104
|
+
acceptsPositional: true,
|
|
105
|
+
positionalType: 'change-or-spec-id',
|
|
106
|
+
flags: [
|
|
107
|
+
COMMON_FLAGS.json,
|
|
108
|
+
COMMON_FLAGS.type,
|
|
109
|
+
COMMON_FLAGS.noInteractive,
|
|
110
|
+
{
|
|
111
|
+
name: 'deltas-only',
|
|
112
|
+
description: 'Show only deltas (JSON only, change-specific)',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'requirements-only',
|
|
116
|
+
description: 'Alias for --deltas-only (deprecated, change-specific)',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: 'requirements',
|
|
120
|
+
description: 'Show only requirements, exclude scenarios (JSON only, spec-specific)',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: 'no-scenarios',
|
|
124
|
+
description: 'Exclude scenario content (JSON only, spec-specific)',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'requirement',
|
|
128
|
+
short: 'r',
|
|
129
|
+
description: 'Show specific requirement by ID (JSON only, spec-specific)',
|
|
130
|
+
takesValue: true,
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: 'archive',
|
|
136
|
+
description: 'Archive a completed change and update main specs',
|
|
137
|
+
acceptsPositional: true,
|
|
138
|
+
positionalType: 'change-id',
|
|
139
|
+
flags: [
|
|
140
|
+
{
|
|
141
|
+
name: 'yes',
|
|
142
|
+
short: 'y',
|
|
143
|
+
description: 'Skip confirmation prompts',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'skip-specs',
|
|
147
|
+
description: 'Skip spec update operations',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: 'no-validate',
|
|
151
|
+
description: 'Skip validation (not recommended)',
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: 'feedback',
|
|
157
|
+
description: 'Submit feedback about AnchorSpec',
|
|
158
|
+
acceptsPositional: true,
|
|
159
|
+
flags: [
|
|
160
|
+
{
|
|
161
|
+
name: 'body',
|
|
162
|
+
description: 'Detailed description for the feedback',
|
|
163
|
+
takesValue: true,
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: 'change',
|
|
169
|
+
description: 'Manage AnchorSpec change proposals (deprecated)',
|
|
170
|
+
flags: [],
|
|
171
|
+
subcommands: [
|
|
172
|
+
{
|
|
173
|
+
name: 'show',
|
|
174
|
+
description: 'Show a change proposal',
|
|
175
|
+
acceptsPositional: true,
|
|
176
|
+
positionalType: 'change-id',
|
|
177
|
+
flags: [
|
|
178
|
+
COMMON_FLAGS.json,
|
|
179
|
+
{
|
|
180
|
+
name: 'deltas-only',
|
|
181
|
+
description: 'Show only deltas (JSON only)',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
name: 'requirements-only',
|
|
185
|
+
description: 'Alias for --deltas-only (deprecated)',
|
|
186
|
+
},
|
|
187
|
+
COMMON_FLAGS.noInteractive,
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: 'list',
|
|
192
|
+
description: 'List all active changes (deprecated)',
|
|
193
|
+
flags: [
|
|
194
|
+
COMMON_FLAGS.json,
|
|
195
|
+
{
|
|
196
|
+
name: 'long',
|
|
197
|
+
description: 'Show id and title with counts',
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
name: 'validate',
|
|
203
|
+
description: 'Validate a change proposal',
|
|
204
|
+
acceptsPositional: true,
|
|
205
|
+
positionalType: 'change-id',
|
|
206
|
+
flags: [
|
|
207
|
+
COMMON_FLAGS.strict,
|
|
208
|
+
COMMON_FLAGS.jsonValidation,
|
|
209
|
+
COMMON_FLAGS.noInteractive,
|
|
210
|
+
],
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
name: 'spec',
|
|
216
|
+
description: 'Manage AnchorSpec specifications',
|
|
217
|
+
flags: [],
|
|
218
|
+
subcommands: [
|
|
219
|
+
{
|
|
220
|
+
name: 'show',
|
|
221
|
+
description: 'Show a specification',
|
|
222
|
+
acceptsPositional: true,
|
|
223
|
+
positionalType: 'spec-id',
|
|
224
|
+
flags: [
|
|
225
|
+
COMMON_FLAGS.json,
|
|
226
|
+
{
|
|
227
|
+
name: 'requirements',
|
|
228
|
+
description: 'Show only requirements, exclude scenarios (JSON only)',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
name: 'no-scenarios',
|
|
232
|
+
description: 'Exclude scenario content (JSON only)',
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
name: 'requirement',
|
|
236
|
+
short: 'r',
|
|
237
|
+
description: 'Show specific requirement by ID (JSON only)',
|
|
238
|
+
takesValue: true,
|
|
239
|
+
},
|
|
240
|
+
COMMON_FLAGS.noInteractive,
|
|
241
|
+
],
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
name: 'list',
|
|
245
|
+
description: 'List all specifications',
|
|
246
|
+
flags: [
|
|
247
|
+
COMMON_FLAGS.json,
|
|
248
|
+
{
|
|
249
|
+
name: 'long',
|
|
250
|
+
description: 'Show id and title with counts',
|
|
251
|
+
},
|
|
252
|
+
],
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: 'validate',
|
|
256
|
+
description: 'Validate a specification',
|
|
257
|
+
acceptsPositional: true,
|
|
258
|
+
positionalType: 'spec-id',
|
|
259
|
+
flags: [
|
|
260
|
+
COMMON_FLAGS.strict,
|
|
261
|
+
COMMON_FLAGS.jsonValidation,
|
|
262
|
+
COMMON_FLAGS.noInteractive,
|
|
263
|
+
],
|
|
264
|
+
},
|
|
265
|
+
],
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
name: 'completion',
|
|
269
|
+
description: 'Manage shell completions for AnchorSpec CLI',
|
|
270
|
+
flags: [],
|
|
271
|
+
subcommands: [
|
|
272
|
+
{
|
|
273
|
+
name: 'generate',
|
|
274
|
+
description: 'Generate completion script for a shell (outputs to stdout)',
|
|
275
|
+
acceptsPositional: true,
|
|
276
|
+
positionalType: 'shell',
|
|
277
|
+
flags: [],
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
name: 'install',
|
|
281
|
+
description: 'Install completion script for a shell',
|
|
282
|
+
acceptsPositional: true,
|
|
283
|
+
positionalType: 'shell',
|
|
284
|
+
flags: [
|
|
285
|
+
{
|
|
286
|
+
name: 'verbose',
|
|
287
|
+
description: 'Show detailed installation output',
|
|
288
|
+
},
|
|
289
|
+
],
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
name: 'uninstall',
|
|
293
|
+
description: 'Uninstall completion script for a shell',
|
|
294
|
+
acceptsPositional: true,
|
|
295
|
+
positionalType: 'shell',
|
|
296
|
+
flags: [
|
|
297
|
+
{
|
|
298
|
+
name: 'yes',
|
|
299
|
+
short: 'y',
|
|
300
|
+
description: 'Skip confirmation prompts',
|
|
301
|
+
},
|
|
302
|
+
],
|
|
303
|
+
},
|
|
304
|
+
],
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
name: 'config',
|
|
308
|
+
description: 'View and modify global AnchorSpec configuration',
|
|
309
|
+
flags: [
|
|
310
|
+
{
|
|
311
|
+
name: 'scope',
|
|
312
|
+
description: 'Config scope (only "global" supported currently)',
|
|
313
|
+
takesValue: true,
|
|
314
|
+
values: ['global'],
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
subcommands: [
|
|
318
|
+
{
|
|
319
|
+
name: 'path',
|
|
320
|
+
description: 'Show config file location',
|
|
321
|
+
flags: [],
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: 'list',
|
|
325
|
+
description: 'Show all current settings',
|
|
326
|
+
flags: [
|
|
327
|
+
COMMON_FLAGS.json,
|
|
328
|
+
],
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
name: 'get',
|
|
332
|
+
description: 'Get a specific value (raw, scriptable)',
|
|
333
|
+
acceptsPositional: true,
|
|
334
|
+
flags: [],
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
name: 'set',
|
|
338
|
+
description: 'Set a value (auto-coerce types)',
|
|
339
|
+
acceptsPositional: true,
|
|
340
|
+
flags: [
|
|
341
|
+
{
|
|
342
|
+
name: 'string',
|
|
343
|
+
description: 'Force value to be stored as string',
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
name: 'allow-unknown',
|
|
347
|
+
description: 'Allow setting unknown keys',
|
|
348
|
+
},
|
|
349
|
+
],
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
name: 'unset',
|
|
353
|
+
description: 'Remove a key (revert to default)',
|
|
354
|
+
acceptsPositional: true,
|
|
355
|
+
flags: [],
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
name: 'reset',
|
|
359
|
+
description: 'Reset configuration to defaults',
|
|
360
|
+
flags: [
|
|
361
|
+
{
|
|
362
|
+
name: 'all',
|
|
363
|
+
description: 'Reset all configuration (required)',
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
name: 'yes',
|
|
367
|
+
short: 'y',
|
|
368
|
+
description: 'Skip confirmation prompts',
|
|
369
|
+
},
|
|
370
|
+
],
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
name: 'edit',
|
|
374
|
+
description: 'Open config in $EDITOR',
|
|
375
|
+
flags: [],
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
name: 'profile',
|
|
379
|
+
description: 'Configure workflow profile (interactive picker or preset shortcut)',
|
|
380
|
+
flags: [],
|
|
381
|
+
},
|
|
382
|
+
],
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
name: 'schema',
|
|
386
|
+
description: 'Manage workflow schemas',
|
|
387
|
+
flags: [],
|
|
388
|
+
subcommands: [
|
|
389
|
+
{
|
|
390
|
+
name: 'which',
|
|
391
|
+
description: 'Show where a schema resolves from',
|
|
392
|
+
acceptsPositional: true,
|
|
393
|
+
positionalType: 'schema-name',
|
|
394
|
+
flags: [
|
|
395
|
+
COMMON_FLAGS.json,
|
|
396
|
+
{
|
|
397
|
+
name: 'all',
|
|
398
|
+
description: 'List all schemas with their resolution sources',
|
|
399
|
+
},
|
|
400
|
+
],
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
name: 'validate',
|
|
404
|
+
description: 'Validate a schema structure and templates',
|
|
405
|
+
acceptsPositional: true,
|
|
406
|
+
positionalType: 'schema-name',
|
|
407
|
+
flags: [
|
|
408
|
+
COMMON_FLAGS.json,
|
|
409
|
+
{
|
|
410
|
+
name: 'verbose',
|
|
411
|
+
description: 'Show detailed validation steps',
|
|
412
|
+
},
|
|
413
|
+
],
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
name: 'fork',
|
|
417
|
+
description: 'Copy an existing schema to project for customization',
|
|
418
|
+
acceptsPositional: true,
|
|
419
|
+
positionalType: 'schema-name',
|
|
420
|
+
flags: [
|
|
421
|
+
COMMON_FLAGS.json,
|
|
422
|
+
{
|
|
423
|
+
name: 'force',
|
|
424
|
+
description: 'Overwrite existing destination',
|
|
425
|
+
},
|
|
426
|
+
],
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
name: 'init',
|
|
430
|
+
description: 'Create a new project-local schema',
|
|
431
|
+
acceptsPositional: true,
|
|
432
|
+
flags: [
|
|
433
|
+
COMMON_FLAGS.json,
|
|
434
|
+
{
|
|
435
|
+
name: 'description',
|
|
436
|
+
description: 'Schema description',
|
|
437
|
+
takesValue: true,
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
name: 'artifacts',
|
|
441
|
+
description: 'Comma-separated artifact IDs',
|
|
442
|
+
takesValue: true,
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
name: 'default',
|
|
446
|
+
description: 'Set as project default schema',
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
name: 'no-default',
|
|
450
|
+
description: 'Do not prompt to set as default',
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
name: 'force',
|
|
454
|
+
description: 'Overwrite existing schema',
|
|
455
|
+
},
|
|
456
|
+
],
|
|
457
|
+
},
|
|
458
|
+
],
|
|
459
|
+
},
|
|
460
|
+
];
|
|
461
|
+
//# sourceMappingURL=command-registry.js.map
|