clavix 3.1.0 → 3.2.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.
|
@@ -103,6 +103,10 @@ export default class Init extends Command {
|
|
|
103
103
|
name: 'Kilocode (.kilocode/workflows/)',
|
|
104
104
|
value: 'kilocode',
|
|
105
105
|
},
|
|
106
|
+
{
|
|
107
|
+
name: 'LLXPRT (.llxprt/commands/clavix/)',
|
|
108
|
+
value: 'llxprt',
|
|
109
|
+
},
|
|
106
110
|
{
|
|
107
111
|
name: 'Roocode (.roo/commands/)',
|
|
108
112
|
value: 'roocode',
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent.js';
|
|
3
|
+
/**
|
|
4
|
+
* LLXPRT adapter
|
|
5
|
+
* Commands stored as TOML files under .llxprt/commands/clavix by default
|
|
6
|
+
*/
|
|
7
|
+
export declare class LlxprtAdapter extends BaseAdapter {
|
|
8
|
+
private readonly options;
|
|
9
|
+
readonly name = "llxprt";
|
|
10
|
+
readonly displayName = "LLXPRT";
|
|
11
|
+
readonly fileExtension = ".toml";
|
|
12
|
+
readonly features: {
|
|
13
|
+
supportsSubdirectories: boolean;
|
|
14
|
+
supportsFrontmatter: boolean;
|
|
15
|
+
argumentPlaceholder: string;
|
|
16
|
+
};
|
|
17
|
+
constructor(options?: {
|
|
18
|
+
useNamespace?: boolean;
|
|
19
|
+
});
|
|
20
|
+
get directory(): string;
|
|
21
|
+
detectProject(): Promise<boolean>;
|
|
22
|
+
getCommandPath(): string;
|
|
23
|
+
getTargetFilename(name: string): string;
|
|
24
|
+
protected formatCommand(template: CommandTemplate): string;
|
|
25
|
+
private getHomeDir;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=llxprt-adapter.d.ts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as os from 'os';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
4
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
5
|
+
/**
|
|
6
|
+
* LLXPRT adapter
|
|
7
|
+
* Commands stored as TOML files under .llxprt/commands/clavix by default
|
|
8
|
+
*/
|
|
9
|
+
export class LlxprtAdapter extends BaseAdapter {
|
|
10
|
+
options;
|
|
11
|
+
name = 'llxprt';
|
|
12
|
+
displayName = 'LLXPRT';
|
|
13
|
+
fileExtension = '.toml';
|
|
14
|
+
features = {
|
|
15
|
+
supportsSubdirectories: true,
|
|
16
|
+
supportsFrontmatter: false,
|
|
17
|
+
argumentPlaceholder: '{{args}}',
|
|
18
|
+
};
|
|
19
|
+
constructor(options = {}) {
|
|
20
|
+
super();
|
|
21
|
+
this.options = options;
|
|
22
|
+
}
|
|
23
|
+
get directory() {
|
|
24
|
+
const useNamespace = this.options.useNamespace ?? true;
|
|
25
|
+
return useNamespace ? path.join('.llxprt', 'commands', 'clavix') : path.join('.llxprt', 'commands');
|
|
26
|
+
}
|
|
27
|
+
async detectProject() {
|
|
28
|
+
if (await FileSystem.exists('.llxprt')) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
const homePath = path.join(this.getHomeDir(), '.llxprt');
|
|
32
|
+
return await FileSystem.exists(homePath);
|
|
33
|
+
}
|
|
34
|
+
getCommandPath() {
|
|
35
|
+
return this.directory;
|
|
36
|
+
}
|
|
37
|
+
getTargetFilename(name) {
|
|
38
|
+
const commandPath = this.getCommandPath();
|
|
39
|
+
const namespaced = commandPath.endsWith(path.join('commands', 'clavix'));
|
|
40
|
+
const baseName = namespaced ? name : `clavix-${name}`;
|
|
41
|
+
return `${baseName}${this.fileExtension}`;
|
|
42
|
+
}
|
|
43
|
+
formatCommand(template) {
|
|
44
|
+
const description = template.description.trim().length > 0
|
|
45
|
+
? `description = ${JSON.stringify(template.description)}\n\n`
|
|
46
|
+
: '';
|
|
47
|
+
const content = template.content.replace(/\{\{ARGS\}\}/g, '{{args}}');
|
|
48
|
+
return `${description}prompt = """\n${content}\n"""\n`;
|
|
49
|
+
}
|
|
50
|
+
getHomeDir() {
|
|
51
|
+
return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=llxprt-adapter.js.map
|
|
@@ -14,6 +14,7 @@ import { GeminiAdapter } from './adapters/gemini-adapter.js';
|
|
|
14
14
|
import { QwenAdapter } from './adapters/qwen-adapter.js';
|
|
15
15
|
import { CodexAdapter } from './adapters/codex-adapter.js';
|
|
16
16
|
import { AugmentAdapter } from './adapters/augment-adapter.js';
|
|
17
|
+
import { LlxprtAdapter } from './adapters/llxprt-adapter.js';
|
|
17
18
|
/**
|
|
18
19
|
* Agent Manager - handles agent detection and registration
|
|
19
20
|
*/
|
|
@@ -29,6 +30,7 @@ export class AgentManager {
|
|
|
29
30
|
this.registerAdapter(new CrushAdapter());
|
|
30
31
|
this.registerAdapter(new WindsurfAdapter());
|
|
31
32
|
this.registerAdapter(new KilocodeAdapter());
|
|
33
|
+
this.registerAdapter(new LlxprtAdapter());
|
|
32
34
|
this.registerAdapter(new ClineAdapter());
|
|
33
35
|
this.registerAdapter(new RoocodeAdapter());
|
|
34
36
|
this.registerAdapter(new AugmentAdapter());
|
package/dist/types/agent.d.ts
CHANGED
|
@@ -37,5 +37,5 @@ export interface ManagedBlock {
|
|
|
37
37
|
content: string;
|
|
38
38
|
targetFile: string;
|
|
39
39
|
}
|
|
40
|
-
export type AgentType = 'agents-md' | 'amp' | 'augment' | 'claude-code' | 'cline' | 'codex' | 'codebuddy' | 'copilot-instructions' | 'crush' | 'cursor' | 'custom' | 'droid' | 'gemini' | 'kilocode' | 'octo-md' | 'opencode' | 'qwen' | 'roocode' | 'windsurf';
|
|
40
|
+
export type AgentType = 'agents-md' | 'amp' | 'augment' | 'claude-code' | 'cline' | 'codex' | 'codebuddy' | 'copilot-instructions' | 'crush' | 'cursor' | 'custom' | 'droid' | 'gemini' | 'kilocode' | 'llxprt' | 'octo-md' | 'opencode' | 'qwen' | 'roocode' | 'windsurf';
|
|
41
41
|
//# sourceMappingURL=agent.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clavix",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Clavix Intelligence™ for AI coding. Automatically optimizes prompts with intent detection, quality assessment, and adaptive patterns—no framework to learn. Works with Claude Code, Cursor, Windsurf, and 19+ other AI coding tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|