@bobby_z/openspec 0.0.1
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 +204 -0
- package/bin/openspec.js +3 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +482 -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 +8 -0
- package/dist/commands/config.js +198 -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 +52 -0
- package/dist/commands/workflow/shared.js +111 -0
- package/dist/commands/workflow/status.d.ts +14 -0
- package/dist/commands/workflow/status.js +58 -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 +328 -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/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/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/devagent.d.ts +15 -0
- package/dist/core/command-generation/adapters/devagent.js +28 -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 +28 -0
- package/dist/core/command-generation/adapters/index.js +28 -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/opencode.d.ts +13 -0
- package/dist/core/command-generation/adapters/opencode.js +29 -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 +90 -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 +454 -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 +88 -0
- package/dist/core/completions/installers/powershell-installer.js +327 -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 +76 -0
- package/dist/core/config-schema.js +200 -0
- package/dist/core/config.d.ts +17 -0
- package/dist/core/config.js +175 -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 +39 -0
- package/dist/core/global-config.js +115 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +3 -0
- package/dist/core/init.d.ts +32 -0
- package/dist/core/init.js +447 -0
- package/dist/core/legacy-cleanup.d.ts +162 -0
- package/dist/core/legacy-cleanup.js +520 -0
- package/dist/core/list.d.ts +9 -0
- package/dist/core/list.js +171 -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/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 +42 -0
- package/dist/core/shared/skill-generation.js +80 -0
- package/dist/core/shared/tool-detection.d.ts +66 -0
- package/dist/core/shared/tool-detection.js +140 -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 +122 -0
- package/dist/core/templates/skill-templates.js +3437 -0
- package/dist/core/update.d.ts +42 -0
- package/dist/core/update.js +311 -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 +27 -0
- package/dist/prompts/searchable-multi-select.js +149 -0
- package/dist/telemetry/config.d.ts +32 -0
- package/dist/telemetry/config.js +68 -0
- package/dist/telemetry/index.d.ts +31 -0
- package/dist/telemetry/index.js +145 -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 +83 -0
- package/schemas/spec-driven/schema.yaml +151 -0
- package/schemas/spec-driven/templates/design.md +21 -0
- package/schemas/spec-driven/templates/proposal.md +25 -0
- package/schemas/spec-driven/templates/spec.md +10 -0
- package/schemas/spec-driven/templates/tasks.md +9 -0
- package/scripts/postinstall.js +147 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Claude Code following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* Escapes a string value for safe YAML output.
|
|
9
|
+
* Quotes the string if it contains special YAML characters.
|
|
10
|
+
*/
|
|
11
|
+
function escapeYamlValue(value) {
|
|
12
|
+
// Check if value needs quoting (contains special YAML characters or starts/ends with whitespace)
|
|
13
|
+
const needsQuoting = /[:\n\r#{}[\],&*!|>'"%@`]|^\s|\s$/.test(value);
|
|
14
|
+
if (needsQuoting) {
|
|
15
|
+
// Use double quotes and escape internal double quotes and backslashes
|
|
16
|
+
const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
|
|
17
|
+
return `"${escaped}"`;
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Formats a tags array as a YAML array with proper escaping.
|
|
23
|
+
*/
|
|
24
|
+
function formatTagsArray(tags) {
|
|
25
|
+
const escapedTags = tags.map((tag) => escapeYamlValue(tag));
|
|
26
|
+
return `[${escapedTags.join(', ')}]`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Claude Code adapter for command generation.
|
|
30
|
+
* File path: .claude/commands/opsx/<id>.md
|
|
31
|
+
* Frontmatter: name, description, category, tags
|
|
32
|
+
*/
|
|
33
|
+
export const claudeAdapter = {
|
|
34
|
+
toolId: 'claude',
|
|
35
|
+
getFilePath(commandId) {
|
|
36
|
+
return path.join('.claude', 'commands', 'opsx', `${commandId}.md`);
|
|
37
|
+
},
|
|
38
|
+
formatFile(content) {
|
|
39
|
+
return `---
|
|
40
|
+
name: ${escapeYamlValue(content.name)}
|
|
41
|
+
description: ${escapeYamlValue(content.description)}
|
|
42
|
+
category: ${escapeYamlValue(content.category)}
|
|
43
|
+
tags: ${formatTagsArray(content.tags)}
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
${content.body}
|
|
47
|
+
`;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cline Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Cline following its workflow specification.
|
|
5
|
+
* Cline uses markdown headers instead of YAML frontmatter.
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Cline adapter for command generation.
|
|
10
|
+
* File path: .clinerules/workflows/opsx-<id>.md
|
|
11
|
+
* Format: Markdown header with description
|
|
12
|
+
*/
|
|
13
|
+
export declare const clineAdapter: ToolCommandAdapter;
|
|
14
|
+
//# sourceMappingURL=cline.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cline Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Cline following its workflow specification.
|
|
5
|
+
* Cline uses markdown headers instead of YAML frontmatter.
|
|
6
|
+
*/
|
|
7
|
+
import path from 'path';
|
|
8
|
+
/**
|
|
9
|
+
* Cline adapter for command generation.
|
|
10
|
+
* File path: .clinerules/workflows/opsx-<id>.md
|
|
11
|
+
* Format: Markdown header with description
|
|
12
|
+
*/
|
|
13
|
+
export const clineAdapter = {
|
|
14
|
+
toolId: 'cline',
|
|
15
|
+
getFilePath(commandId) {
|
|
16
|
+
return path.join('.clinerules', 'workflows', `opsx-${commandId}.md`);
|
|
17
|
+
},
|
|
18
|
+
formatFile(content) {
|
|
19
|
+
return `# ${content.name}
|
|
20
|
+
|
|
21
|
+
${content.description}
|
|
22
|
+
|
|
23
|
+
${content.body}
|
|
24
|
+
`;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=cline.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CodeBuddy Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for CodeBuddy following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* CodeBuddy adapter for command generation.
|
|
9
|
+
* File path: .codebuddy/commands/opsx/<id>.md
|
|
10
|
+
* Frontmatter: name, description, argument-hint
|
|
11
|
+
*/
|
|
12
|
+
export declare const codebuddyAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=codebuddy.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CodeBuddy Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for CodeBuddy following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* CodeBuddy adapter for command generation.
|
|
9
|
+
* File path: .codebuddy/commands/opsx/<id>.md
|
|
10
|
+
* Frontmatter: name, description, argument-hint
|
|
11
|
+
*/
|
|
12
|
+
export const codebuddyAdapter = {
|
|
13
|
+
toolId: 'codebuddy',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.codebuddy', 'commands', 'opsx', `${commandId}.md`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
return `---
|
|
19
|
+
name: ${content.name}
|
|
20
|
+
description: "${content.description}"
|
|
21
|
+
argument-hint: "[command arguments]"
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
${content.body}
|
|
25
|
+
`;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=codebuddy.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Codex following its frontmatter specification.
|
|
5
|
+
* Codex custom prompts live in the global home directory (~/.codex/prompts/)
|
|
6
|
+
* and are not shared through the repository. The CODEX_HOME env var can
|
|
7
|
+
* override the default ~/.codex location.
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Codex adapter for command generation.
|
|
12
|
+
* File path: <CODEX_HOME>/prompts/opsx-<id>.md (absolute, global)
|
|
13
|
+
* Frontmatter: description, argument-hint
|
|
14
|
+
*/
|
|
15
|
+
export declare const codexAdapter: ToolCommandAdapter;
|
|
16
|
+
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Codex following its frontmatter specification.
|
|
5
|
+
* Codex custom prompts live in the global home directory (~/.codex/prompts/)
|
|
6
|
+
* and are not shared through the repository. The CODEX_HOME env var can
|
|
7
|
+
* override the default ~/.codex location.
|
|
8
|
+
*/
|
|
9
|
+
import os from 'os';
|
|
10
|
+
import path from 'path';
|
|
11
|
+
/**
|
|
12
|
+
* Returns the Codex home directory.
|
|
13
|
+
* Respects the CODEX_HOME env var, defaulting to ~/.codex.
|
|
14
|
+
*/
|
|
15
|
+
function getCodexHome() {
|
|
16
|
+
const envHome = process.env.CODEX_HOME?.trim();
|
|
17
|
+
return path.resolve(envHome ? envHome : path.join(os.homedir(), '.codex'));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Codex adapter for command generation.
|
|
21
|
+
* File path: <CODEX_HOME>/prompts/opsx-<id>.md (absolute, global)
|
|
22
|
+
* Frontmatter: description, argument-hint
|
|
23
|
+
*/
|
|
24
|
+
export const codexAdapter = {
|
|
25
|
+
toolId: 'codex',
|
|
26
|
+
getFilePath(commandId) {
|
|
27
|
+
return path.join(getCodexHome(), 'prompts', `opsx-${commandId}.md`);
|
|
28
|
+
},
|
|
29
|
+
formatFile(content) {
|
|
30
|
+
return `---
|
|
31
|
+
description: ${content.description}
|
|
32
|
+
argument-hint: command arguments
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
${content.body}
|
|
36
|
+
`;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Continue Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Continue following its .prompt specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Continue adapter for command generation.
|
|
9
|
+
* File path: .continue/prompts/opsx-<id>.prompt
|
|
10
|
+
* Frontmatter: name, description, invokable
|
|
11
|
+
*/
|
|
12
|
+
export declare const continueAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=continue.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Continue Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Continue following its .prompt specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* Continue adapter for command generation.
|
|
9
|
+
* File path: .continue/prompts/opsx-<id>.prompt
|
|
10
|
+
* Frontmatter: name, description, invokable
|
|
11
|
+
*/
|
|
12
|
+
export const continueAdapter = {
|
|
13
|
+
toolId: 'continue',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.continue', 'prompts', `opsx-${commandId}.prompt`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
return `---
|
|
19
|
+
name: opsx-${content.id}
|
|
20
|
+
description: ${content.description}
|
|
21
|
+
invokable: true
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
${content.body}
|
|
25
|
+
`;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=continue.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoStrict Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for CoStrict following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* CoStrict adapter for command generation.
|
|
9
|
+
* File path: .cospec/openspec/commands/opsx-<id>.md
|
|
10
|
+
* Frontmatter: description, argument-hint
|
|
11
|
+
*/
|
|
12
|
+
export declare const costrictAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=costrict.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoStrict Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for CoStrict following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* CoStrict adapter for command generation.
|
|
9
|
+
* File path: .cospec/openspec/commands/opsx-<id>.md
|
|
10
|
+
* Frontmatter: description, argument-hint
|
|
11
|
+
*/
|
|
12
|
+
export const costrictAdapter = {
|
|
13
|
+
toolId: 'costrict',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.cospec', 'openspec', 'commands', `opsx-${commandId}.md`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
return `---
|
|
19
|
+
description: "${content.description}"
|
|
20
|
+
argument-hint: command arguments
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
${content.body}
|
|
24
|
+
`;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=costrict.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crush Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Crush following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Crush adapter for command generation.
|
|
9
|
+
* File path: .crush/commands/opsx/<id>.md
|
|
10
|
+
* Frontmatter: name, description, category, tags
|
|
11
|
+
*/
|
|
12
|
+
export declare const crushAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=crush.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crush Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Crush following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* Crush adapter for command generation.
|
|
9
|
+
* File path: .crush/commands/opsx/<id>.md
|
|
10
|
+
* Frontmatter: name, description, category, tags
|
|
11
|
+
*/
|
|
12
|
+
export const crushAdapter = {
|
|
13
|
+
toolId: 'crush',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.crush', 'commands', 'opsx', `${commandId}.md`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
const tagsStr = content.tags.join(', ');
|
|
19
|
+
return `---
|
|
20
|
+
name: ${content.name}
|
|
21
|
+
description: ${content.description}
|
|
22
|
+
category: ${content.category}
|
|
23
|
+
tags: [${tagsStr}]
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
${content.body}
|
|
27
|
+
`;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=crush.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cursor Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Cursor following its frontmatter specification.
|
|
5
|
+
* Cursor uses a different frontmatter format and file naming convention.
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Cursor adapter for command generation.
|
|
10
|
+
* File path: .cursor/commands/opsx-<id>.md
|
|
11
|
+
* Frontmatter: name (as /opsx-<id>), id, category, description
|
|
12
|
+
*/
|
|
13
|
+
export declare const cursorAdapter: ToolCommandAdapter;
|
|
14
|
+
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cursor Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Cursor following its frontmatter specification.
|
|
5
|
+
* Cursor uses a different frontmatter format and file naming convention.
|
|
6
|
+
*/
|
|
7
|
+
import path from 'path';
|
|
8
|
+
/**
|
|
9
|
+
* Escapes a string value for safe YAML output.
|
|
10
|
+
* Quotes the string if it contains special YAML characters.
|
|
11
|
+
*/
|
|
12
|
+
function escapeYamlValue(value) {
|
|
13
|
+
// Check if value needs quoting (contains special YAML characters or starts/ends with whitespace)
|
|
14
|
+
const needsQuoting = /[:\n\r#{}[\],&*!|>'"%@`]|^\s|\s$/.test(value);
|
|
15
|
+
if (needsQuoting) {
|
|
16
|
+
// Use double quotes and escape internal double quotes and backslashes
|
|
17
|
+
const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
|
|
18
|
+
return `"${escaped}"`;
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Cursor adapter for command generation.
|
|
24
|
+
* File path: .cursor/commands/opsx-<id>.md
|
|
25
|
+
* Frontmatter: name (as /opsx-<id>), id, category, description
|
|
26
|
+
*/
|
|
27
|
+
export const cursorAdapter = {
|
|
28
|
+
toolId: 'cursor',
|
|
29
|
+
getFilePath(commandId) {
|
|
30
|
+
return path.join('.cursor', 'commands', `opsx-${commandId}.md`);
|
|
31
|
+
},
|
|
32
|
+
formatFile(content) {
|
|
33
|
+
return `---
|
|
34
|
+
name: /opsx-${content.id}
|
|
35
|
+
id: opsx-${content.id}
|
|
36
|
+
category: ${escapeYamlValue(content.category)}
|
|
37
|
+
description: ${escapeYamlValue(content.description)}
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
${content.body}
|
|
41
|
+
`;
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DevAgent Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* DevAgent is a Cline-compatible fork; it uses the same workflow format
|
|
5
|
+
* (markdown headers, no YAML frontmatter) but with different directory names.
|
|
6
|
+
* File path: .devagentrules/workflows/opsx-<id>.md
|
|
7
|
+
*/
|
|
8
|
+
import type { ToolCommandAdapter } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* DevAgent adapter for command generation.
|
|
11
|
+
* File path: .devagentrules/workflows/opsx-<id>.md
|
|
12
|
+
* Format: Markdown header with description (same as Cline)
|
|
13
|
+
*/
|
|
14
|
+
export declare const devagentAdapter: ToolCommandAdapter;
|
|
15
|
+
//# sourceMappingURL=devagent.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DevAgent Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* DevAgent is a Cline-compatible fork; it uses the same workflow format
|
|
5
|
+
* (markdown headers, no YAML frontmatter) but with different directory names.
|
|
6
|
+
* File path: .devagentrules/workflows/opsx-<id>.md
|
|
7
|
+
*/
|
|
8
|
+
import path from "path";
|
|
9
|
+
/**
|
|
10
|
+
* DevAgent adapter for command generation.
|
|
11
|
+
* File path: .devagentrules/workflows/opsx-<id>.md
|
|
12
|
+
* Format: Markdown header with description (same as Cline)
|
|
13
|
+
*/
|
|
14
|
+
export const devagentAdapter = {
|
|
15
|
+
toolId: "devagent",
|
|
16
|
+
getFilePath(commandId) {
|
|
17
|
+
return path.join(".devagentrules", "workflows", `opsx-${commandId}.md`);
|
|
18
|
+
},
|
|
19
|
+
formatFile(content) {
|
|
20
|
+
return `# ${content.name}
|
|
21
|
+
|
|
22
|
+
${content.description}
|
|
23
|
+
|
|
24
|
+
${content.body}
|
|
25
|
+
`;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=devagent.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory Droid Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Factory Droid following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Factory adapter for command generation.
|
|
9
|
+
* File path: .factory/commands/opsx-<id>.md
|
|
10
|
+
* Frontmatter: description, argument-hint
|
|
11
|
+
*/
|
|
12
|
+
export declare const factoryAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory Droid Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Factory Droid following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* Factory adapter for command generation.
|
|
9
|
+
* File path: .factory/commands/opsx-<id>.md
|
|
10
|
+
* Frontmatter: description, argument-hint
|
|
11
|
+
*/
|
|
12
|
+
export const factoryAdapter = {
|
|
13
|
+
toolId: 'factory',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.factory', 'commands', `opsx-${commandId}.md`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
return `---
|
|
19
|
+
description: ${content.description}
|
|
20
|
+
argument-hint: command arguments
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
${content.body}
|
|
24
|
+
`;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini CLI Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Gemini CLI following its TOML specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Gemini adapter for command generation.
|
|
9
|
+
* File path: .gemini/commands/opsx/<id>.toml
|
|
10
|
+
* Format: TOML with description and prompt fields
|
|
11
|
+
*/
|
|
12
|
+
export declare const geminiAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini CLI Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for Gemini CLI following its TOML specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* Gemini adapter for command generation.
|
|
9
|
+
* File path: .gemini/commands/opsx/<id>.toml
|
|
10
|
+
* Format: TOML with description and prompt fields
|
|
11
|
+
*/
|
|
12
|
+
export const geminiAdapter = {
|
|
13
|
+
toolId: 'gemini',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.gemini', 'commands', 'opsx', `${commandId}.toml`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
return `description = "${content.description}"
|
|
19
|
+
|
|
20
|
+
prompt = """
|
|
21
|
+
${content.body}
|
|
22
|
+
"""
|
|
23
|
+
`;
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Copilot Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for GitHub Copilot following its .prompt.md specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* GitHub Copilot adapter for command generation.
|
|
9
|
+
* File path: .github/prompts/opsx-<id>.prompt.md
|
|
10
|
+
* Frontmatter: description
|
|
11
|
+
*/
|
|
12
|
+
export declare const githubCopilotAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=github-copilot.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Copilot Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for GitHub Copilot following its .prompt.md specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* GitHub Copilot adapter for command generation.
|
|
9
|
+
* File path: .github/prompts/opsx-<id>.prompt.md
|
|
10
|
+
* Frontmatter: description
|
|
11
|
+
*/
|
|
12
|
+
export const githubCopilotAdapter = {
|
|
13
|
+
toolId: 'github-copilot',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.github', 'prompts', `opsx-${commandId}.prompt.md`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
return `---
|
|
19
|
+
description: ${content.description}
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
${content.body}
|
|
23
|
+
`;
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=github-copilot.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* iFlow Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for iFlow following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolCommandAdapter } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* iFlow adapter for command generation.
|
|
9
|
+
* File path: .iflow/commands/opsx-<id>.md
|
|
10
|
+
* Frontmatter: name, id, category, description
|
|
11
|
+
*/
|
|
12
|
+
export declare const iflowAdapter: ToolCommandAdapter;
|
|
13
|
+
//# sourceMappingURL=iflow.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* iFlow Command Adapter
|
|
3
|
+
*
|
|
4
|
+
* Formats commands for iFlow following its frontmatter specification.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* iFlow adapter for command generation.
|
|
9
|
+
* File path: .iflow/commands/opsx-<id>.md
|
|
10
|
+
* Frontmatter: name, id, category, description
|
|
11
|
+
*/
|
|
12
|
+
export const iflowAdapter = {
|
|
13
|
+
toolId: 'iflow',
|
|
14
|
+
getFilePath(commandId) {
|
|
15
|
+
return path.join('.iflow', 'commands', `opsx-${commandId}.md`);
|
|
16
|
+
},
|
|
17
|
+
formatFile(content) {
|
|
18
|
+
return `---
|
|
19
|
+
name: /opsx-${content.id}
|
|
20
|
+
id: opsx-${content.id}
|
|
21
|
+
category: ${content.category}
|
|
22
|
+
description: ${content.description}
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
${content.body}
|
|
26
|
+
`;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=iflow.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Adapters Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all tool command adapters.
|
|
5
|
+
*/
|
|
6
|
+
export { amazonQAdapter } from "./amazon-q.js";
|
|
7
|
+
export { antigravityAdapter } from "./antigravity.js";
|
|
8
|
+
export { auggieAdapter } from "./auggie.js";
|
|
9
|
+
export { claudeAdapter } from "./claude.js";
|
|
10
|
+
export { clineAdapter } from "./cline.js";
|
|
11
|
+
export { devagentAdapter } from "./devagent.js";
|
|
12
|
+
export { codexAdapter } from "./codex.js";
|
|
13
|
+
export { codebuddyAdapter } from "./codebuddy.js";
|
|
14
|
+
export { continueAdapter } from "./continue.js";
|
|
15
|
+
export { costrictAdapter } from "./costrict.js";
|
|
16
|
+
export { crushAdapter } from "./crush.js";
|
|
17
|
+
export { cursorAdapter } from "./cursor.js";
|
|
18
|
+
export { factoryAdapter } from "./factory.js";
|
|
19
|
+
export { geminiAdapter } from "./gemini.js";
|
|
20
|
+
export { githubCopilotAdapter } from "./github-copilot.js";
|
|
21
|
+
export { iflowAdapter } from "./iflow.js";
|
|
22
|
+
export { kilocodeAdapter } from "./kilocode.js";
|
|
23
|
+
export { opencodeAdapter } from "./opencode.js";
|
|
24
|
+
export { qoderAdapter } from "./qoder.js";
|
|
25
|
+
export { qwenAdapter } from "./qwen.js";
|
|
26
|
+
export { roocodeAdapter } from "./roocode.js";
|
|
27
|
+
export { windsurfAdapter } from "./windsurf.js";
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Adapters Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all tool command adapters.
|
|
5
|
+
*/
|
|
6
|
+
export { amazonQAdapter } from "./amazon-q.js";
|
|
7
|
+
export { antigravityAdapter } from "./antigravity.js";
|
|
8
|
+
export { auggieAdapter } from "./auggie.js";
|
|
9
|
+
export { claudeAdapter } from "./claude.js";
|
|
10
|
+
export { clineAdapter } from "./cline.js";
|
|
11
|
+
export { devagentAdapter } from "./devagent.js";
|
|
12
|
+
export { codexAdapter } from "./codex.js";
|
|
13
|
+
export { codebuddyAdapter } from "./codebuddy.js";
|
|
14
|
+
export { continueAdapter } from "./continue.js";
|
|
15
|
+
export { costrictAdapter } from "./costrict.js";
|
|
16
|
+
export { crushAdapter } from "./crush.js";
|
|
17
|
+
export { cursorAdapter } from "./cursor.js";
|
|
18
|
+
export { factoryAdapter } from "./factory.js";
|
|
19
|
+
export { geminiAdapter } from "./gemini.js";
|
|
20
|
+
export { githubCopilotAdapter } from "./github-copilot.js";
|
|
21
|
+
export { iflowAdapter } from "./iflow.js";
|
|
22
|
+
export { kilocodeAdapter } from "./kilocode.js";
|
|
23
|
+
export { opencodeAdapter } from "./opencode.js";
|
|
24
|
+
export { qoderAdapter } from "./qoder.js";
|
|
25
|
+
export { qwenAdapter } from "./qwen.js";
|
|
26
|
+
export { roocodeAdapter } from "./roocode.js";
|
|
27
|
+
export { windsurfAdapter } from "./windsurf.js";
|
|
28
|
+
//# sourceMappingURL=index.js.map
|