lightspec 0.2.2 → 0.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/dist/core/configurators/skills/base.d.ts +27 -0
- package/dist/core/configurators/{slash → skills}/base.js +19 -81
- package/dist/core/configurators/skills/registry.d.ts +9 -0
- package/dist/core/configurators/skills/registry.js +24 -0
- package/dist/core/init.d.ts +1 -1
- package/dist/core/init.js +16 -16
- package/dist/core/templates/agent-skill-templates.d.ts +6 -0
- package/dist/core/templates/{slash-command-templates.js → agent-skill-templates.js} +7 -7
- package/dist/core/templates/agents-root-stub.d.ts +1 -1
- package/dist/core/templates/agents-root-stub.js +2 -9
- package/dist/core/templates/agents-template.d.ts +1 -1
- package/dist/core/templates/agents-template.js +1 -1
- package/dist/core/templates/archive-template.js +1 -1
- package/dist/core/templates/index.d.ts +4 -4
- package/dist/core/templates/index.js +5 -5
- package/dist/core/update.js +11 -11
- package/package.json +2 -1
- package/dist/core/configurators/slash/amazon-q.d.ts +0 -9
- package/dist/core/configurators/slash/amazon-q.js +0 -50
- package/dist/core/configurators/slash/antigravity.d.ts +0 -9
- package/dist/core/configurators/slash/antigravity.js +0 -25
- package/dist/core/configurators/slash/auggie.d.ts +0 -9
- package/dist/core/configurators/slash/auggie.js +0 -38
- package/dist/core/configurators/slash/base.d.ts +0 -30
- package/dist/core/configurators/slash/claude.d.ts +0 -9
- package/dist/core/configurators/slash/claude.js +0 -44
- package/dist/core/configurators/slash/cline.d.ts +0 -9
- package/dist/core/configurators/slash/cline.js +0 -25
- package/dist/core/configurators/slash/codebuddy.d.ts +0 -9
- package/dist/core/configurators/slash/codebuddy.js +0 -41
- package/dist/core/configurators/slash/codex.d.ts +0 -6
- package/dist/core/configurators/slash/codex.js +0 -6
- package/dist/core/configurators/slash/continue.d.ts +0 -9
- package/dist/core/configurators/slash/continue.js +0 -53
- package/dist/core/configurators/slash/costrict.d.ts +0 -9
- package/dist/core/configurators/slash/costrict.js +0 -35
- package/dist/core/configurators/slash/crush.d.ts +0 -9
- package/dist/core/configurators/slash/crush.js +0 -44
- package/dist/core/configurators/slash/cursor.d.ts +0 -9
- package/dist/core/configurators/slash/cursor.js +0 -44
- package/dist/core/configurators/slash/factory.d.ts +0 -10
- package/dist/core/configurators/slash/factory.js +0 -42
- package/dist/core/configurators/slash/gemini.d.ts +0 -9
- package/dist/core/configurators/slash/gemini.js +0 -24
- package/dist/core/configurators/slash/github-copilot.d.ts +0 -9
- package/dist/core/configurators/slash/github-copilot.js +0 -38
- package/dist/core/configurators/slash/iflow.d.ts +0 -9
- package/dist/core/configurators/slash/iflow.js +0 -44
- package/dist/core/configurators/slash/kilocode.d.ts +0 -9
- package/dist/core/configurators/slash/kilocode.js +0 -18
- package/dist/core/configurators/slash/mistral-vibe.d.ts +0 -6
- package/dist/core/configurators/slash/mistral-vibe.js +0 -6
- package/dist/core/configurators/slash/opencode.d.ts +0 -12
- package/dist/core/configurators/slash/opencode.js +0 -76
- package/dist/core/configurators/slash/qoder.d.ts +0 -35
- package/dist/core/configurators/slash/qoder.js +0 -83
- package/dist/core/configurators/slash/qwen.d.ts +0 -32
- package/dist/core/configurators/slash/qwen.js +0 -51
- package/dist/core/configurators/slash/registry.d.ts +0 -9
- package/dist/core/configurators/slash/registry.js +0 -86
- package/dist/core/configurators/slash/roocode.d.ts +0 -9
- package/dist/core/configurators/slash/roocode.js +0 -25
- package/dist/core/configurators/slash/toml-base.d.ts +0 -4
- package/dist/core/configurators/slash/toml-base.js +0 -4
- package/dist/core/configurators/slash/windsurf.d.ts +0 -9
- package/dist/core/configurators/slash/windsurf.js +0 -25
- package/dist/core/templates/slash-command-templates.d.ts +0 -6
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
const FILE_PATHS = {
|
|
3
|
-
proposal: '.github/prompts/lightspec-proposal.prompt.md',
|
|
4
|
-
apply: '.github/prompts/lightspec-apply.prompt.md',
|
|
5
|
-
archive: '.github/prompts/lightspec-archive.prompt.md',
|
|
6
|
-
'context-check': '.github/copilot/prompts/lightspec-context-check.md'
|
|
7
|
-
};
|
|
8
|
-
const FRONTMATTER = {
|
|
9
|
-
proposal: `---
|
|
10
|
-
description: Scaffold a new LightSpec change and validate strictly.
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
$ARGUMENTS`,
|
|
14
|
-
apply: `---
|
|
15
|
-
description: Implement an approved LightSpec change and keep tasks in sync.
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
$ARGUMENTS`,
|
|
19
|
-
archive: `---
|
|
20
|
-
description: Archive a deployed LightSpec change and update specs.
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
$ARGUMENTS`,
|
|
24
|
-
'context-check': `---
|
|
25
|
-
description: Validate project context in agent instruction files and help populate missing information.
|
|
26
|
-
---`
|
|
27
|
-
};
|
|
28
|
-
export class GitHubCopilotSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
29
|
-
toolId = 'github-copilot';
|
|
30
|
-
isAvailable = true;
|
|
31
|
-
getRelativePath(id) {
|
|
32
|
-
return FILE_PATHS[id];
|
|
33
|
-
}
|
|
34
|
-
getFrontmatter(id) {
|
|
35
|
-
return FRONTMATTER[id];
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=github-copilot.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
import { SlashCommandId } from '../../templates/index.js';
|
|
3
|
-
export declare class IflowSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
4
|
-
readonly toolId = "iflow";
|
|
5
|
-
readonly isAvailable = true;
|
|
6
|
-
protected getRelativePath(id: SlashCommandId): string;
|
|
7
|
-
protected getFrontmatter(id: SlashCommandId): string;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=iflow.d.ts.map
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
const FILE_PATHS = {
|
|
3
|
-
proposal: '.iflow/commands/lightspec-proposal.md',
|
|
4
|
-
apply: '.iflow/commands/lightspec-apply.md',
|
|
5
|
-
archive: '.iflow/commands/lightspec-archive.md',
|
|
6
|
-
'context-check': '.iflow/commands/lightspec-context-check.md'
|
|
7
|
-
};
|
|
8
|
-
const FRONTMATTER = {
|
|
9
|
-
proposal: `---
|
|
10
|
-
name: /lightspec-proposal
|
|
11
|
-
id: lightspec-proposal
|
|
12
|
-
category: LightSpec
|
|
13
|
-
description: Scaffold a new LightSpec change and validate strictly.
|
|
14
|
-
---`,
|
|
15
|
-
apply: `---
|
|
16
|
-
name: /lightspec-apply
|
|
17
|
-
id: lightspec-apply
|
|
18
|
-
category: LightSpec
|
|
19
|
-
description: Implement an approved LightSpec change and keep tasks in sync.
|
|
20
|
-
---`,
|
|
21
|
-
archive: `---
|
|
22
|
-
name: /lightspec-archive
|
|
23
|
-
id: lightspec-archive
|
|
24
|
-
category: LightSpec
|
|
25
|
-
description: Archive a deployed LightSpec change and update specs.
|
|
26
|
-
---`,
|
|
27
|
-
'context-check': `---
|
|
28
|
-
name: LightSpec: Context Check
|
|
29
|
-
description: Validate project context in agent instruction files and help populate missing information.
|
|
30
|
-
category: LightSpec
|
|
31
|
-
tags: [lightspec, context, validation]
|
|
32
|
-
---`
|
|
33
|
-
};
|
|
34
|
-
export class IflowSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
35
|
-
toolId = 'iflow';
|
|
36
|
-
isAvailable = true;
|
|
37
|
-
getRelativePath(id) {
|
|
38
|
-
return FILE_PATHS[id];
|
|
39
|
-
}
|
|
40
|
-
getFrontmatter(id) {
|
|
41
|
-
return FRONTMATTER[id];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=iflow.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from "./base.js";
|
|
2
|
-
import { SlashCommandId } from "../../templates/index.js";
|
|
3
|
-
export declare class KiloCodeSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
4
|
-
readonly toolId = "kilocode";
|
|
5
|
-
readonly isAvailable = true;
|
|
6
|
-
protected getRelativePath(id: SlashCommandId): string;
|
|
7
|
-
protected getFrontmatter(_id: SlashCommandId): string | undefined;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=kilocode.d.ts.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from "./base.js";
|
|
2
|
-
const FILE_PATHS = {
|
|
3
|
-
proposal: ".kilocode/workflows/lightspec-proposal.md",
|
|
4
|
-
apply: ".kilocode/workflows/lightspec-apply.md",
|
|
5
|
-
archive: ".kilocode/workflows/lightspec-archive.md",
|
|
6
|
-
'context-check': '.kilocode/commands/lightspec-context-check.md'
|
|
7
|
-
};
|
|
8
|
-
export class KiloCodeSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
9
|
-
toolId = "kilocode";
|
|
10
|
-
isAvailable = true;
|
|
11
|
-
getRelativePath(id) {
|
|
12
|
-
return FILE_PATHS[id];
|
|
13
|
-
}
|
|
14
|
-
getFrontmatter(_id) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=kilocode.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from "./base.js";
|
|
2
|
-
import { SlashCommandId } from "../../templates/index.js";
|
|
3
|
-
export declare class OpenCodeSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
4
|
-
readonly toolId = "opencode";
|
|
5
|
-
readonly isAvailable = true;
|
|
6
|
-
protected getRelativePath(id: SlashCommandId): string;
|
|
7
|
-
protected getFrontmatter(id: SlashCommandId): string | undefined;
|
|
8
|
-
generateAll(projectPath: string, _lightspecDir: string): Promise<string[]>;
|
|
9
|
-
updateExisting(projectPath: string, _lightspecDir: string): Promise<string[]>;
|
|
10
|
-
private rewriteArchiveFile;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=opencode.d.ts.map
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from "./base.js";
|
|
2
|
-
import { FileSystemUtils } from "../../../utils/file-system.js";
|
|
3
|
-
import { LIGHTSPEC_MARKERS } from "../../config.js";
|
|
4
|
-
const FILE_PATHS = {
|
|
5
|
-
proposal: ".opencode/command/lightspec-proposal.md",
|
|
6
|
-
apply: ".opencode/command/lightspec-apply.md",
|
|
7
|
-
archive: ".opencode/command/lightspec-archive.md",
|
|
8
|
-
'context-check': ".opencode/command/lightspec-context-check.md"
|
|
9
|
-
};
|
|
10
|
-
const FRONTMATTER = {
|
|
11
|
-
proposal: `---
|
|
12
|
-
description: Scaffold a new LightSpec change and validate strictly.
|
|
13
|
-
---
|
|
14
|
-
The user has requested the following change proposal. Use the lightspec instructions to create their change proposal.
|
|
15
|
-
<UserRequest>
|
|
16
|
-
$ARGUMENTS
|
|
17
|
-
</UserRequest>
|
|
18
|
-
`,
|
|
19
|
-
apply: `---
|
|
20
|
-
description: Implement an approved LightSpec change and keep tasks in sync.
|
|
21
|
-
---
|
|
22
|
-
The user has requested to implement the following change proposal. Find the change proposal and follow the instructions below. If you're not sure or if ambiguous, ask for clarification from the user.
|
|
23
|
-
<UserRequest>
|
|
24
|
-
$ARGUMENTS
|
|
25
|
-
</UserRequest>
|
|
26
|
-
`,
|
|
27
|
-
archive: `---
|
|
28
|
-
description: Archive a deployed LightSpec change and update specs.
|
|
29
|
-
---
|
|
30
|
-
<ChangeId>
|
|
31
|
-
$ARGUMENTS
|
|
32
|
-
</ChangeId>
|
|
33
|
-
`,
|
|
34
|
-
'context-check': `---
|
|
35
|
-
description: Validate project context in agent instruction files and help populate missing information.
|
|
36
|
-
---`
|
|
37
|
-
};
|
|
38
|
-
export class OpenCodeSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
39
|
-
toolId = "opencode";
|
|
40
|
-
isAvailable = true;
|
|
41
|
-
getRelativePath(id) {
|
|
42
|
-
return FILE_PATHS[id];
|
|
43
|
-
}
|
|
44
|
-
getFrontmatter(id) {
|
|
45
|
-
return FRONTMATTER[id];
|
|
46
|
-
}
|
|
47
|
-
async generateAll(projectPath, _lightspecDir) {
|
|
48
|
-
const createdOrUpdated = await super.generateAll(projectPath, _lightspecDir);
|
|
49
|
-
await this.rewriteArchiveFile(projectPath);
|
|
50
|
-
return createdOrUpdated;
|
|
51
|
-
}
|
|
52
|
-
async updateExisting(projectPath, _lightspecDir) {
|
|
53
|
-
const updated = await super.updateExisting(projectPath, _lightspecDir);
|
|
54
|
-
const rewroteArchive = await this.rewriteArchiveFile(projectPath);
|
|
55
|
-
if (rewroteArchive && !updated.includes(FILE_PATHS.archive)) {
|
|
56
|
-
updated.push(FILE_PATHS.archive);
|
|
57
|
-
}
|
|
58
|
-
return updated;
|
|
59
|
-
}
|
|
60
|
-
async rewriteArchiveFile(projectPath) {
|
|
61
|
-
const archivePath = FileSystemUtils.joinPath(projectPath, FILE_PATHS.archive);
|
|
62
|
-
if (!await FileSystemUtils.fileExists(archivePath)) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
const body = this.getBody("archive");
|
|
66
|
-
const frontmatter = this.getFrontmatter("archive");
|
|
67
|
-
const sections = [];
|
|
68
|
-
if (frontmatter) {
|
|
69
|
-
sections.push(frontmatter.trim());
|
|
70
|
-
}
|
|
71
|
-
sections.push(`${LIGHTSPEC_MARKERS.start}\n${body}\n${LIGHTSPEC_MARKERS.end}`);
|
|
72
|
-
await FileSystemUtils.writeFile(archivePath, sections.join("\n") + "\n");
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=opencode.js.map
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
import { SlashCommandId } from '../../templates/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Qoder Slash Command Configurator
|
|
5
|
-
*
|
|
6
|
-
* Manages LightSpec slash commands for Qoder AI assistant.
|
|
7
|
-
* Creates three workflow commands: proposal, apply, and archive.
|
|
8
|
-
* Uses colon-separated command format (/lightspec:proposal).
|
|
9
|
-
*
|
|
10
|
-
* @extends {SlashCommandConfigurator}
|
|
11
|
-
*/
|
|
12
|
-
export declare class QoderSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
13
|
-
/** Unique identifier for Qoder tool */
|
|
14
|
-
readonly toolId = "qoder";
|
|
15
|
-
/** Indicates slash commands are available for this tool */
|
|
16
|
-
readonly isAvailable = true;
|
|
17
|
-
/**
|
|
18
|
-
* Get relative file path for a slash command
|
|
19
|
-
*
|
|
20
|
-
* @param {SlashCommandId} id - Command identifier (proposal, apply, or archive)
|
|
21
|
-
* @returns {string} Relative path from project root to command file
|
|
22
|
-
*/
|
|
23
|
-
protected getRelativePath(id: SlashCommandId): string;
|
|
24
|
-
/**
|
|
25
|
-
* Get YAML frontmatter for a slash command
|
|
26
|
-
*
|
|
27
|
-
* Frontmatter defines how the command appears in Qoder's UI,
|
|
28
|
-
* including display name, description, and categorization.
|
|
29
|
-
*
|
|
30
|
-
* @param {SlashCommandId} id - Command identifier (proposal, apply, or archive)
|
|
31
|
-
* @returns {string} YAML frontmatter block with command metadata
|
|
32
|
-
*/
|
|
33
|
-
protected getFrontmatter(id: SlashCommandId): string;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=qoder.d.ts.map
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
/**
|
|
3
|
-
* File paths for Qoder slash commands
|
|
4
|
-
* Maps each LightSpec workflow stage to its command file location
|
|
5
|
-
* Commands are stored in .qoder/commands/lightspec/ directory
|
|
6
|
-
*/
|
|
7
|
-
const FILE_PATHS = {
|
|
8
|
-
// Create and validate new change proposals
|
|
9
|
-
proposal: '.qoder/commands/lightspec/proposal.md',
|
|
10
|
-
// Implement approved changes with task tracking
|
|
11
|
-
apply: '.qoder/commands/lightspec/apply.md',
|
|
12
|
-
// Archive completed changes and update specs
|
|
13
|
-
archive: '.qoder/commands/lightspec/archive.md',
|
|
14
|
-
'context-check': '.qoder/prompts/lightspec-context-check.md'
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* YAML frontmatter for Qoder slash commands
|
|
18
|
-
* Defines metadata displayed in Qoder's command palette
|
|
19
|
-
* Each command is categorized and tagged for easy discovery
|
|
20
|
-
*/
|
|
21
|
-
const FRONTMATTER = {
|
|
22
|
-
proposal: `---
|
|
23
|
-
name: LightSpec: Proposal
|
|
24
|
-
description: Scaffold a new LightSpec change and validate strictly.
|
|
25
|
-
category: LightSpec
|
|
26
|
-
tags: [lightspec, change]
|
|
27
|
-
---`,
|
|
28
|
-
apply: `---
|
|
29
|
-
name: LightSpec: Apply
|
|
30
|
-
description: Implement an approved LightSpec change and keep tasks in sync.
|
|
31
|
-
category: LightSpec
|
|
32
|
-
tags: [lightspec, apply]
|
|
33
|
-
---`,
|
|
34
|
-
archive: `---
|
|
35
|
-
name: LightSpec: Archive
|
|
36
|
-
description: Archive a deployed LightSpec change and update specs.
|
|
37
|
-
category: LightSpec
|
|
38
|
-
tags: [lightspec, archive]
|
|
39
|
-
---`,
|
|
40
|
-
'context-check': `---
|
|
41
|
-
name: LightSpec: Context Check
|
|
42
|
-
description: Validate project context in agent instruction files and help populate missing information.
|
|
43
|
-
category: LightSpec
|
|
44
|
-
tags: [lightspec, context, validation]
|
|
45
|
-
---`
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Qoder Slash Command Configurator
|
|
49
|
-
*
|
|
50
|
-
* Manages LightSpec slash commands for Qoder AI assistant.
|
|
51
|
-
* Creates three workflow commands: proposal, apply, and archive.
|
|
52
|
-
* Uses colon-separated command format (/lightspec:proposal).
|
|
53
|
-
*
|
|
54
|
-
* @extends {SlashCommandConfigurator}
|
|
55
|
-
*/
|
|
56
|
-
export class QoderSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
57
|
-
/** Unique identifier for Qoder tool */
|
|
58
|
-
toolId = 'qoder';
|
|
59
|
-
/** Indicates slash commands are available for this tool */
|
|
60
|
-
isAvailable = true;
|
|
61
|
-
/**
|
|
62
|
-
* Get relative file path for a slash command
|
|
63
|
-
*
|
|
64
|
-
* @param {SlashCommandId} id - Command identifier (proposal, apply, or archive)
|
|
65
|
-
* @returns {string} Relative path from project root to command file
|
|
66
|
-
*/
|
|
67
|
-
getRelativePath(id) {
|
|
68
|
-
return FILE_PATHS[id];
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get YAML frontmatter for a slash command
|
|
72
|
-
*
|
|
73
|
-
* Frontmatter defines how the command appears in Qoder's UI,
|
|
74
|
-
* including display name, description, and categorization.
|
|
75
|
-
*
|
|
76
|
-
* @param {SlashCommandId} id - Command identifier (proposal, apply, or archive)
|
|
77
|
-
* @returns {string} YAML frontmatter block with command metadata
|
|
78
|
-
*/
|
|
79
|
-
getFrontmatter(id) {
|
|
80
|
-
return FRONTMATTER[id];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=qoder.js.map
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Qwen slash command configurator for LightSpec integration.
|
|
3
|
-
* This class handles the generation of Qwen-specific slash command files
|
|
4
|
-
* in the .qwen/commands directory structure.
|
|
5
|
-
*
|
|
6
|
-
* @implements {SlashCommandConfigurator}
|
|
7
|
-
*/
|
|
8
|
-
import { TomlSlashCommandConfigurator } from './toml-base.js';
|
|
9
|
-
import { SlashCommandId } from '../../templates/index.js';
|
|
10
|
-
/**
|
|
11
|
-
* QwenSlashCommandConfigurator class provides integration with Qwen Code
|
|
12
|
-
* by creating the necessary slash command files in the .qwen/commands directory.
|
|
13
|
-
*
|
|
14
|
-
* The slash commands include:
|
|
15
|
-
* - /lightspec-proposal: Create an LightSpec change proposal
|
|
16
|
-
* - /lightspec-apply: Apply an approved LightSpec change
|
|
17
|
-
* - /lightspec-archive: Archive a deployed LightSpec change
|
|
18
|
-
*/
|
|
19
|
-
export declare class QwenSlashCommandConfigurator extends TomlSlashCommandConfigurator {
|
|
20
|
-
/** Unique identifier for the Qwen tool */
|
|
21
|
-
readonly toolId = "qwen";
|
|
22
|
-
/** Availability status for the Qwen tool */
|
|
23
|
-
readonly isAvailable = true;
|
|
24
|
-
/**
|
|
25
|
-
* Returns the relative file path for a given slash command ID.
|
|
26
|
-
* @param {SlashCommandId} id - The slash command identifier
|
|
27
|
-
* @returns {string} The relative path to the command file
|
|
28
|
-
*/
|
|
29
|
-
protected getRelativePath(id: SlashCommandId): string;
|
|
30
|
-
protected getDescription(id: SlashCommandId): string;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=qwen.d.ts.map
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Qwen slash command configurator for LightSpec integration.
|
|
3
|
-
* This class handles the generation of Qwen-specific slash command files
|
|
4
|
-
* in the .qwen/commands directory structure.
|
|
5
|
-
*
|
|
6
|
-
* @implements {SlashCommandConfigurator}
|
|
7
|
-
*/
|
|
8
|
-
import { TomlSlashCommandConfigurator } from './toml-base.js';
|
|
9
|
-
/**
|
|
10
|
-
* Mapping of slash command IDs to their corresponding file paths in .qwen/commands directory.
|
|
11
|
-
* @type {Record<SlashCommandId, string>}
|
|
12
|
-
*/
|
|
13
|
-
const FILE_PATHS = {
|
|
14
|
-
proposal: '.qwen/commands/lightspec-proposal.toml',
|
|
15
|
-
apply: '.qwen/commands/lightspec-apply.toml',
|
|
16
|
-
archive: '.qwen/commands/lightspec-archive.toml',
|
|
17
|
-
'context-check': '.qwen/prompts/lightspec-context-check.md'
|
|
18
|
-
};
|
|
19
|
-
const DESCRIPTIONS = {
|
|
20
|
-
proposal: 'Scaffold a new LightSpec change and validate strictly.',
|
|
21
|
-
apply: 'Implement an approved LightSpec change and keep tasks in sync.',
|
|
22
|
-
archive: 'Archive a deployed LightSpec change and update specs.',
|
|
23
|
-
'context-check': 'Validate project context in agent instruction files and help populate missing information.'
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* QwenSlashCommandConfigurator class provides integration with Qwen Code
|
|
27
|
-
* by creating the necessary slash command files in the .qwen/commands directory.
|
|
28
|
-
*
|
|
29
|
-
* The slash commands include:
|
|
30
|
-
* - /lightspec-proposal: Create an LightSpec change proposal
|
|
31
|
-
* - /lightspec-apply: Apply an approved LightSpec change
|
|
32
|
-
* - /lightspec-archive: Archive a deployed LightSpec change
|
|
33
|
-
*/
|
|
34
|
-
export class QwenSlashCommandConfigurator extends TomlSlashCommandConfigurator {
|
|
35
|
-
/** Unique identifier for the Qwen tool */
|
|
36
|
-
toolId = 'qwen';
|
|
37
|
-
/** Availability status for the Qwen tool */
|
|
38
|
-
isAvailable = true;
|
|
39
|
-
/**
|
|
40
|
-
* Returns the relative file path for a given slash command ID.
|
|
41
|
-
* @param {SlashCommandId} id - The slash command identifier
|
|
42
|
-
* @returns {string} The relative path to the command file
|
|
43
|
-
*/
|
|
44
|
-
getRelativePath(id) {
|
|
45
|
-
return FILE_PATHS[id];
|
|
46
|
-
}
|
|
47
|
-
getDescription(id) {
|
|
48
|
-
return DESCRIPTIONS[id];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=qwen.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator, SkillInstallLocation } from './base.js';
|
|
2
|
-
export declare class SlashCommandRegistry {
|
|
3
|
-
private static configurators;
|
|
4
|
-
static register(configurator: SlashCommandConfigurator): void;
|
|
5
|
-
static get(toolId: string): SlashCommandConfigurator | undefined;
|
|
6
|
-
static getAll(): SlashCommandConfigurator[];
|
|
7
|
-
static setInstallLocation(location: SkillInstallLocation): void;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { ClaudeSlashCommandConfigurator } from './claude.js';
|
|
2
|
-
import { CodeBuddySlashCommandConfigurator } from './codebuddy.js';
|
|
3
|
-
import { QoderSlashCommandConfigurator } from './qoder.js';
|
|
4
|
-
import { CursorSlashCommandConfigurator } from './cursor.js';
|
|
5
|
-
import { WindsurfSlashCommandConfigurator } from './windsurf.js';
|
|
6
|
-
import { KiloCodeSlashCommandConfigurator } from './kilocode.js';
|
|
7
|
-
import { OpenCodeSlashCommandConfigurator } from './opencode.js';
|
|
8
|
-
import { CodexSlashCommandConfigurator } from './codex.js';
|
|
9
|
-
import { GitHubCopilotSlashCommandConfigurator } from './github-copilot.js';
|
|
10
|
-
import { AmazonQSlashCommandConfigurator } from './amazon-q.js';
|
|
11
|
-
import { FactorySlashCommandConfigurator } from './factory.js';
|
|
12
|
-
import { GeminiSlashCommandConfigurator } from './gemini.js';
|
|
13
|
-
import { AuggieSlashCommandConfigurator } from './auggie.js';
|
|
14
|
-
import { ClineSlashCommandConfigurator } from './cline.js';
|
|
15
|
-
import { CrushSlashCommandConfigurator } from './crush.js';
|
|
16
|
-
import { CostrictSlashCommandConfigurator } from './costrict.js';
|
|
17
|
-
import { QwenSlashCommandConfigurator } from './qwen.js';
|
|
18
|
-
import { RooCodeSlashCommandConfigurator } from './roocode.js';
|
|
19
|
-
import { AntigravitySlashCommandConfigurator } from './antigravity.js';
|
|
20
|
-
import { IflowSlashCommandConfigurator } from './iflow.js';
|
|
21
|
-
import { ContinueSlashCommandConfigurator } from './continue.js';
|
|
22
|
-
import { MistralVibeSlashCommandConfigurator } from './mistral-vibe.js';
|
|
23
|
-
export class SlashCommandRegistry {
|
|
24
|
-
static configurators = new Map();
|
|
25
|
-
static {
|
|
26
|
-
const claude = new ClaudeSlashCommandConfigurator();
|
|
27
|
-
const codeBuddy = new CodeBuddySlashCommandConfigurator();
|
|
28
|
-
const qoder = new QoderSlashCommandConfigurator();
|
|
29
|
-
const cursor = new CursorSlashCommandConfigurator();
|
|
30
|
-
const windsurf = new WindsurfSlashCommandConfigurator();
|
|
31
|
-
const kilocode = new KiloCodeSlashCommandConfigurator();
|
|
32
|
-
const opencode = new OpenCodeSlashCommandConfigurator();
|
|
33
|
-
const codex = new CodexSlashCommandConfigurator();
|
|
34
|
-
const githubCopilot = new GitHubCopilotSlashCommandConfigurator();
|
|
35
|
-
const amazonQ = new AmazonQSlashCommandConfigurator();
|
|
36
|
-
const factory = new FactorySlashCommandConfigurator();
|
|
37
|
-
const gemini = new GeminiSlashCommandConfigurator();
|
|
38
|
-
const auggie = new AuggieSlashCommandConfigurator();
|
|
39
|
-
const cline = new ClineSlashCommandConfigurator();
|
|
40
|
-
const crush = new CrushSlashCommandConfigurator();
|
|
41
|
-
const costrict = new CostrictSlashCommandConfigurator();
|
|
42
|
-
const qwen = new QwenSlashCommandConfigurator();
|
|
43
|
-
const roocode = new RooCodeSlashCommandConfigurator();
|
|
44
|
-
const antigravity = new AntigravitySlashCommandConfigurator();
|
|
45
|
-
const iflow = new IflowSlashCommandConfigurator();
|
|
46
|
-
const continueTool = new ContinueSlashCommandConfigurator();
|
|
47
|
-
const mistralVibe = new MistralVibeSlashCommandConfigurator();
|
|
48
|
-
this.configurators.set(claude.toolId, claude);
|
|
49
|
-
this.configurators.set(codeBuddy.toolId, codeBuddy);
|
|
50
|
-
this.configurators.set(qoder.toolId, qoder);
|
|
51
|
-
this.configurators.set(cursor.toolId, cursor);
|
|
52
|
-
this.configurators.set(windsurf.toolId, windsurf);
|
|
53
|
-
this.configurators.set(kilocode.toolId, kilocode);
|
|
54
|
-
this.configurators.set(opencode.toolId, opencode);
|
|
55
|
-
this.configurators.set(codex.toolId, codex);
|
|
56
|
-
this.configurators.set(githubCopilot.toolId, githubCopilot);
|
|
57
|
-
this.configurators.set(amazonQ.toolId, amazonQ);
|
|
58
|
-
this.configurators.set(factory.toolId, factory);
|
|
59
|
-
this.configurators.set(gemini.toolId, gemini);
|
|
60
|
-
this.configurators.set(auggie.toolId, auggie);
|
|
61
|
-
this.configurators.set(cline.toolId, cline);
|
|
62
|
-
this.configurators.set(crush.toolId, crush);
|
|
63
|
-
this.configurators.set(costrict.toolId, costrict);
|
|
64
|
-
this.configurators.set(qwen.toolId, qwen);
|
|
65
|
-
this.configurators.set(roocode.toolId, roocode);
|
|
66
|
-
this.configurators.set(antigravity.toolId, antigravity);
|
|
67
|
-
this.configurators.set(iflow.toolId, iflow);
|
|
68
|
-
this.configurators.set(continueTool.toolId, continueTool);
|
|
69
|
-
this.configurators.set(mistralVibe.toolId, mistralVibe);
|
|
70
|
-
}
|
|
71
|
-
static register(configurator) {
|
|
72
|
-
this.configurators.set(configurator.toolId, configurator);
|
|
73
|
-
}
|
|
74
|
-
static get(toolId) {
|
|
75
|
-
return this.configurators.get(toolId);
|
|
76
|
-
}
|
|
77
|
-
static getAll() {
|
|
78
|
-
return Array.from(this.configurators.values());
|
|
79
|
-
}
|
|
80
|
-
static setInstallLocation(location) {
|
|
81
|
-
for (const configurator of this.configurators.values()) {
|
|
82
|
-
configurator.setInstallLocation(location);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
import { SlashCommandId } from '../../templates/index.js';
|
|
3
|
-
export declare class RooCodeSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
4
|
-
readonly toolId = "roocode";
|
|
5
|
-
readonly isAvailable = true;
|
|
6
|
-
protected getRelativePath(id: SlashCommandId): string;
|
|
7
|
-
protected getFrontmatter(id: SlashCommandId): string | undefined;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=roocode.d.ts.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
const NEW_FILE_PATHS = {
|
|
3
|
-
proposal: '.roo/commands/lightspec-proposal.md',
|
|
4
|
-
apply: '.roo/commands/lightspec-apply.md',
|
|
5
|
-
archive: '.roo/commands/lightspec-archive.md',
|
|
6
|
-
'context-check': '.roocode/commands/lightspec-context-check.md'
|
|
7
|
-
};
|
|
8
|
-
export class RooCodeSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
9
|
-
toolId = 'roocode';
|
|
10
|
-
isAvailable = true;
|
|
11
|
-
getRelativePath(id) {
|
|
12
|
-
return NEW_FILE_PATHS[id];
|
|
13
|
-
}
|
|
14
|
-
getFrontmatter(id) {
|
|
15
|
-
const descriptions = {
|
|
16
|
-
proposal: 'Scaffold a new LightSpec change and validate strictly.',
|
|
17
|
-
apply: 'Implement an approved LightSpec change and keep tasks in sync.',
|
|
18
|
-
archive: 'Archive a deployed LightSpec change and update specs.',
|
|
19
|
-
'context-check': 'Validate project context in agent instruction files and help populate missing information.'
|
|
20
|
-
};
|
|
21
|
-
const description = descriptions[id];
|
|
22
|
-
return `# LightSpec: ${id.charAt(0).toUpperCase() + id.slice(1)}\n\n${description}`;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=roocode.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
import { SlashCommandId } from '../../templates/index.js';
|
|
3
|
-
export declare class WindsurfSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
4
|
-
readonly toolId = "windsurf";
|
|
5
|
-
readonly isAvailable = true;
|
|
6
|
-
protected getRelativePath(id: SlashCommandId): string;
|
|
7
|
-
protected getFrontmatter(id: SlashCommandId): string | undefined;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=windsurf.d.ts.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { SlashCommandConfigurator } from './base.js';
|
|
2
|
-
const FILE_PATHS = {
|
|
3
|
-
proposal: '.windsurf/workflows/lightspec-proposal.md',
|
|
4
|
-
apply: '.windsurf/workflows/lightspec-apply.md',
|
|
5
|
-
archive: '.windsurf/workflows/lightspec-archive.md',
|
|
6
|
-
'context-check': '.windsurf/workflows/lightspec-context-check.md'
|
|
7
|
-
};
|
|
8
|
-
export class WindsurfSlashCommandConfigurator extends SlashCommandConfigurator {
|
|
9
|
-
toolId = 'windsurf';
|
|
10
|
-
isAvailable = true;
|
|
11
|
-
getRelativePath(id) {
|
|
12
|
-
return FILE_PATHS[id];
|
|
13
|
-
}
|
|
14
|
-
getFrontmatter(id) {
|
|
15
|
-
const descriptions = {
|
|
16
|
-
proposal: 'Scaffold a new LightSpec change and validate strictly.',
|
|
17
|
-
apply: 'Implement an approved LightSpec change and keep tasks in sync.',
|
|
18
|
-
archive: 'Archive a deployed LightSpec change and update specs.',
|
|
19
|
-
'context-check': 'Validate project context in agent instruction files and help populate missing information.'
|
|
20
|
-
};
|
|
21
|
-
const description = descriptions[id];
|
|
22
|
-
return `---\ndescription: ${description}\nauto_execution_mode: 3\n---`;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=windsurf.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export type SlashCommandId = 'proposal' | 'apply' | 'archive' | 'context-check';
|
|
2
|
-
export declare const slashCommandBodies: Record<SlashCommandId, string>;
|
|
3
|
-
export declare const slashCommandFrontmatter: Record<SlashCommandId, string>;
|
|
4
|
-
export declare function getSlashCommandBody(id: SlashCommandId): string;
|
|
5
|
-
export declare function getSlashCommandFrontmatter(id: SlashCommandId): string;
|
|
6
|
-
//# sourceMappingURL=slash-command-templates.d.ts.map
|