@convext/cli 0.1.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/README.md +180 -0
- package/dist/api.d.ts +121 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +218 -0
- package/dist/api.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +165 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/check.d.ts +8 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +164 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +294 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/sync.d.ts +10 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +328 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +52 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/fileManager.d.ts +3 -0
- package/dist/utils/fileManager.d.ts.map +1 -0
- package/dist/utils/fileManager.js +35 -0
- package/dist/utils/fileManager.js.map +1 -0
- package/dist/utils/prompts.d.ts +9 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +78 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/scanner.d.ts +10 -0
- package/dist/utils/scanner.d.ts.map +1 -0
- package/dist/utils/scanner.js +196 -0
- package/dist/utils/scanner.js.map +1 -0
- package/package.json +42 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const config_js_1 = require("./config.js");
|
|
10
|
+
const sync_js_1 = require("./commands/sync.js");
|
|
11
|
+
const check_js_1 = require("./commands/check.js");
|
|
12
|
+
const init_js_1 = require("./commands/init.js");
|
|
13
|
+
// Show server URL first for every command
|
|
14
|
+
const apiUrl = (0, config_js_1.getApiUrl)();
|
|
15
|
+
console.log(chalk_1.default.gray(`Server: ${apiUrl}\n`));
|
|
16
|
+
const program = new commander_1.Command();
|
|
17
|
+
program
|
|
18
|
+
.name("convext")
|
|
19
|
+
.description("CLI for Convext - sync engineering rules and standards to your project")
|
|
20
|
+
.version("0.1.0")
|
|
21
|
+
.addHelpText("after", `
|
|
22
|
+
Environment Variables:
|
|
23
|
+
CONVEXT_TOKEN API token for authentication (overrides config file)
|
|
24
|
+
CONVEXT_URL API server URL (default: https://convext.app)
|
|
25
|
+
|
|
26
|
+
Examples:
|
|
27
|
+
$ convext init # Initialize project
|
|
28
|
+
$ convext sync # Sync rules to dotfiles
|
|
29
|
+
$ convext config --token YOUR_TOKEN # Save API token
|
|
30
|
+
$ CONVEXT_URL=http://localhost:3000 convext init # Use local server
|
|
31
|
+
`);
|
|
32
|
+
// Sync command - pull rules and generate dotfiles
|
|
33
|
+
program
|
|
34
|
+
.command("sync")
|
|
35
|
+
.description("Sync engineering rules and generate IDE dotfiles")
|
|
36
|
+
.option("-p, --project <id>", "Project ID to sync context for", parseInt)
|
|
37
|
+
.option("-l, --languages <langs>", "Comma-separated languages to filter (e.g., 'ruby,typescript')")
|
|
38
|
+
.option("-f, --format <format>", "Output format: all, claude, cursor, copilot", "all")
|
|
39
|
+
.option("-n, --dry-run", "Show what would be written without making changes")
|
|
40
|
+
.option("-v, --verbose", "Show detailed debug output")
|
|
41
|
+
.action(async (options) => {
|
|
42
|
+
await (0, sync_js_1.syncCommand)({
|
|
43
|
+
projectId: options.project,
|
|
44
|
+
languages: options.languages,
|
|
45
|
+
format: options.format,
|
|
46
|
+
dryRun: options.dryRun,
|
|
47
|
+
verbose: options.verbose,
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
// Check command - validate compliance
|
|
51
|
+
program
|
|
52
|
+
.command("check")
|
|
53
|
+
.description("Check compliance with Convext rules")
|
|
54
|
+
.option("-p, --project <id>", "Project ID to check against", parseInt)
|
|
55
|
+
.option("-l, --languages <langs>", "Comma-separated languages to check")
|
|
56
|
+
.option("-s, --strict", "Fail if any file is missing or out of sync")
|
|
57
|
+
.action(async (options) => {
|
|
58
|
+
await (0, check_js_1.checkCommand)({
|
|
59
|
+
projectId: options.project,
|
|
60
|
+
languages: options.languages,
|
|
61
|
+
strict: options.strict,
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
// Init command - register project and create config
|
|
65
|
+
program
|
|
66
|
+
.command("init")
|
|
67
|
+
.description("Initialize a new project with Convext")
|
|
68
|
+
.option("-n, --name <name>", "Project name (defaults to directory or package name)")
|
|
69
|
+
.option("-d, --description <desc>", "Project description")
|
|
70
|
+
.option("-r, --repo-url <url>", "Repository URL")
|
|
71
|
+
.option("-o, --organization <slug>", "Organization slug to assign the project to")
|
|
72
|
+
.action(async (options) => {
|
|
73
|
+
await (0, init_js_1.initCommand)({
|
|
74
|
+
name: options.name,
|
|
75
|
+
description: options.description,
|
|
76
|
+
repoUrl: options.repoUrl,
|
|
77
|
+
organization: options.organization,
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
// Config command - manage configuration
|
|
81
|
+
program
|
|
82
|
+
.command("config")
|
|
83
|
+
.description("Manage Convext configuration")
|
|
84
|
+
.option("-t, --token <token>", "Set API token")
|
|
85
|
+
.option("-u, --url <url>", "Set API URL")
|
|
86
|
+
.option("--show", "Show current configuration")
|
|
87
|
+
.action((options) => {
|
|
88
|
+
if (options.show) {
|
|
89
|
+
const config = (0, config_js_1.loadConfig)();
|
|
90
|
+
console.log(chalk_1.default.bold("Convext Configuration:"));
|
|
91
|
+
console.log(` API URL: ${chalk_1.default.cyan(config.apiUrl)}`);
|
|
92
|
+
console.log(` Token: ${config.apiToken ? chalk_1.default.green("[set]") : chalk_1.default.yellow("[not set]")}`);
|
|
93
|
+
const envToken = process.env.CONVEXT_TOKEN;
|
|
94
|
+
const envUrl = process.env.CONVEXT_URL;
|
|
95
|
+
if (envToken || envUrl) {
|
|
96
|
+
console.log("\n" + chalk_1.default.bold("Environment Overrides:"));
|
|
97
|
+
if (envToken)
|
|
98
|
+
console.log(` CONVEXT_TOKEN: ${chalk_1.default.green("[set]")}`);
|
|
99
|
+
if (envUrl)
|
|
100
|
+
console.log(` CONVEXT_URL: ${chalk_1.default.cyan(envUrl)}`);
|
|
101
|
+
}
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (options.token) {
|
|
105
|
+
(0, config_js_1.saveConfig)({ apiToken: options.token });
|
|
106
|
+
console.log(chalk_1.default.green("✓ API token saved"));
|
|
107
|
+
}
|
|
108
|
+
if (options.url) {
|
|
109
|
+
(0, config_js_1.saveConfig)({ apiUrl: options.url });
|
|
110
|
+
console.log(chalk_1.default.green(`✓ API URL set to ${options.url}`));
|
|
111
|
+
}
|
|
112
|
+
if (!options.token && !options.url) {
|
|
113
|
+
console.log("Usage: convext config --token YOUR_TOKEN");
|
|
114
|
+
console.log(" convext config --url https://your-server.com");
|
|
115
|
+
console.log(" convext config --show");
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// Auth status command
|
|
119
|
+
program
|
|
120
|
+
.command("whoami")
|
|
121
|
+
.description("Check authentication status and show current user")
|
|
122
|
+
.action(async () => {
|
|
123
|
+
const token = (0, config_js_1.getApiToken)();
|
|
124
|
+
if (!token) {
|
|
125
|
+
console.log(chalk_1.default.yellow("Not authenticated"));
|
|
126
|
+
console.log("\nTo authenticate:");
|
|
127
|
+
console.log(` 1. Get an API token from Convext web interface`);
|
|
128
|
+
console.log(` 2. Run: ${chalk_1.default.cyan("convext config --token YOUR_TOKEN")}`);
|
|
129
|
+
console.log(` Or set: ${chalk_1.default.cyan("export CONVEXT_TOKEN=YOUR_TOKEN")}`);
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
// Verify token and get user info
|
|
133
|
+
try {
|
|
134
|
+
const response = await fetch(`${(0, config_js_1.getApiUrl)()}/api/me`, {
|
|
135
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
136
|
+
});
|
|
137
|
+
if (!response.ok) {
|
|
138
|
+
console.log(chalk_1.default.red("✗ Authentication failed"));
|
|
139
|
+
console.log(chalk_1.default.gray(" Token may be invalid or expired"));
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
const data = await response.json();
|
|
143
|
+
const user = data.user;
|
|
144
|
+
console.log(chalk_1.default.green("✓ Authenticated"));
|
|
145
|
+
console.log(` Name: ${chalk_1.default.cyan(user.name)}`);
|
|
146
|
+
console.log(` Email: ${chalk_1.default.cyan(user.email)}`);
|
|
147
|
+
if (user.organizations.length > 0) {
|
|
148
|
+
console.log(` Orgs: ${chalk_1.default.cyan(user.organizations.map(o => o.name).join(", "))}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
console.log(chalk_1.default.red("✗ Could not verify token"));
|
|
153
|
+
if (error instanceof Error) {
|
|
154
|
+
console.log(chalk_1.default.gray(` Error: ${error.message}`));
|
|
155
|
+
}
|
|
156
|
+
process.exit(1);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
// Show help if no command provided (and exit 0)
|
|
160
|
+
if (process.argv.length <= 2) {
|
|
161
|
+
program.help();
|
|
162
|
+
}
|
|
163
|
+
// Parse and run
|
|
164
|
+
program.parse();
|
|
165
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAqHD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EvE"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkCommand = checkCommand;
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
const api_js_1 = require("../api.js");
|
|
12
|
+
const EXPECTED_FILES = [
|
|
13
|
+
{ name: "CLAUDE.md", format: "claude" },
|
|
14
|
+
{ name: ".cursorrules", format: "cursor" },
|
|
15
|
+
{ name: ".github/copilot-instructions.md", format: "copilot" },
|
|
16
|
+
];
|
|
17
|
+
function extractRulesFromFile(content) {
|
|
18
|
+
// Extract rule titles from generated dotfiles
|
|
19
|
+
const rulePatterns = [
|
|
20
|
+
/####\s*\[(?:CRITICAL|ERROR|WARNING)\]\s*(.+)/gi,
|
|
21
|
+
/###\s*(.+)/gi,
|
|
22
|
+
/\*\*(.+?)\*\*:/g,
|
|
23
|
+
];
|
|
24
|
+
const rules = [];
|
|
25
|
+
for (const pattern of rulePatterns) {
|
|
26
|
+
let match;
|
|
27
|
+
while ((match = pattern.exec(content)) !== null) {
|
|
28
|
+
rules.push(match[1].trim().toLowerCase());
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return rules;
|
|
32
|
+
}
|
|
33
|
+
function checkFileCompliance(filePath, rules, _standards) {
|
|
34
|
+
const result = {
|
|
35
|
+
file: filePath,
|
|
36
|
+
exists: (0, node_fs_1.existsSync)(filePath),
|
|
37
|
+
synced: false,
|
|
38
|
+
issues: [],
|
|
39
|
+
};
|
|
40
|
+
if (!result.exists) {
|
|
41
|
+
result.issues.push("File does not exist - run 'convext sync' to create it");
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
const content = (0, node_fs_1.readFileSync)(filePath, "utf-8");
|
|
45
|
+
// Check if file was generated by Code Charter
|
|
46
|
+
if (!content.includes("Convext") && !content.includes("convext")) {
|
|
47
|
+
result.issues.push("File was not generated by Code Charter");
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
// Check for sync timestamp
|
|
51
|
+
const timestampMatch = content.match(/Last synced:\s*(\d{4}-\d{2}-\d{2})/);
|
|
52
|
+
if (timestampMatch) {
|
|
53
|
+
const syncDate = new Date(timestampMatch[1]);
|
|
54
|
+
const daysSinceSync = Math.floor((Date.now() - syncDate.getTime()) / (1000 * 60 * 60 * 24));
|
|
55
|
+
if (daysSinceSync > 7) {
|
|
56
|
+
result.issues.push(`File was synced ${daysSinceSync} days ago - consider running 'convext sync'`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Check if critical rules are present
|
|
60
|
+
const fileRules = extractRulesFromFile(content);
|
|
61
|
+
const criticalRules = rules.filter((r) => r.severity === "critical");
|
|
62
|
+
for (const rule of criticalRules) {
|
|
63
|
+
const ruleTitle = rule.title.toLowerCase();
|
|
64
|
+
const found = fileRules.some((fr) => fr.includes(ruleTitle) || ruleTitle.includes(fr));
|
|
65
|
+
if (!found) {
|
|
66
|
+
result.issues.push(`Missing critical rule: ${rule.title}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
result.synced = result.issues.length === 0;
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
function detectProjectLanguages() {
|
|
73
|
+
const cwd = process.cwd();
|
|
74
|
+
const languages = [];
|
|
75
|
+
// Common project file indicators
|
|
76
|
+
const indicators = {
|
|
77
|
+
"package.json": "javascript",
|
|
78
|
+
"tsconfig.json": "typescript",
|
|
79
|
+
Gemfile: "ruby",
|
|
80
|
+
"requirements.txt": "python",
|
|
81
|
+
"pyproject.toml": "python",
|
|
82
|
+
"go.mod": "go",
|
|
83
|
+
"Cargo.toml": "rust",
|
|
84
|
+
"pom.xml": "java",
|
|
85
|
+
"build.gradle": "java",
|
|
86
|
+
"composer.json": "php",
|
|
87
|
+
};
|
|
88
|
+
for (const [file, lang] of Object.entries(indicators)) {
|
|
89
|
+
if ((0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, file))) {
|
|
90
|
+
languages.push(lang);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return [...new Set(languages)];
|
|
94
|
+
}
|
|
95
|
+
async function checkCommand(options) {
|
|
96
|
+
const spinner = (0, ora_1.default)("Checking compliance with Code Charter...").start();
|
|
97
|
+
try {
|
|
98
|
+
// Auto-detect languages if not specified
|
|
99
|
+
const languages = options.languages || detectProjectLanguages().join(",");
|
|
100
|
+
if (languages) {
|
|
101
|
+
spinner.text = `Checking compliance for: ${languages}`;
|
|
102
|
+
}
|
|
103
|
+
// Fetch current rules and standards
|
|
104
|
+
const [rulesResult, standardsResult] = await Promise.all([
|
|
105
|
+
(0, api_js_1.getRules)(),
|
|
106
|
+
(0, api_js_1.getStandards)(languages || undefined),
|
|
107
|
+
]);
|
|
108
|
+
const rules = rulesResult.rules;
|
|
109
|
+
const standards = standardsResult.standards;
|
|
110
|
+
spinner.succeed(`Loaded ${rules.length} rules and ${standards.length} standards`);
|
|
111
|
+
// Check each expected file
|
|
112
|
+
const cwd = process.cwd();
|
|
113
|
+
const results = [];
|
|
114
|
+
console.log("\n" + chalk_1.default.bold("Compliance Check:"));
|
|
115
|
+
for (const { name } of EXPECTED_FILES) {
|
|
116
|
+
const filePath = (0, node_path_1.join)(cwd, name);
|
|
117
|
+
const result = checkFileCompliance(filePath, rules, standards);
|
|
118
|
+
results.push(result);
|
|
119
|
+
// Display result
|
|
120
|
+
if (result.synced) {
|
|
121
|
+
console.log(` ${chalk_1.default.green("✓")} ${name} - ${chalk_1.default.green("compliant")}`);
|
|
122
|
+
}
|
|
123
|
+
else if (!result.exists) {
|
|
124
|
+
console.log(` ${chalk_1.default.red("✗")} ${name} - ${chalk_1.default.red("missing")}`);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
console.log(` ${chalk_1.default.yellow("⚠")} ${name} - ${chalk_1.default.yellow("issues found")}`);
|
|
128
|
+
for (const issue of result.issues) {
|
|
129
|
+
console.log(` ${chalk_1.default.gray("→")} ${issue}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Summary
|
|
134
|
+
const compliant = results.filter((r) => r.synced).length;
|
|
135
|
+
const missing = results.filter((r) => !r.exists).length;
|
|
136
|
+
const withIssues = results.filter((r) => r.exists && !r.synced).length;
|
|
137
|
+
console.log("\n" + chalk_1.default.bold("Summary:"));
|
|
138
|
+
console.log(` Compliant: ${chalk_1.default.green(compliant)}`);
|
|
139
|
+
console.log(` Missing: ${chalk_1.default.red(missing)}`);
|
|
140
|
+
console.log(` Issues: ${chalk_1.default.yellow(withIssues)}`);
|
|
141
|
+
// Exit code for CI
|
|
142
|
+
const hasFailures = options.strict
|
|
143
|
+
? compliant < results.length
|
|
144
|
+
: missing > 0 || results.some((r) => r.issues.some((i) => i.includes("critical")));
|
|
145
|
+
if (hasFailures) {
|
|
146
|
+
console.log("\n" + chalk_1.default.red("✗ Compliance check failed"));
|
|
147
|
+
if (missing > 0) {
|
|
148
|
+
console.log(chalk_1.default.gray(" Run 'convext sync' to generate missing files"));
|
|
149
|
+
}
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
console.log("\n" + chalk_1.default.green("✓ All compliance checks passed"));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
spinner.fail("Check failed");
|
|
158
|
+
if (error instanceof Error) {
|
|
159
|
+
console.error(chalk_1.default.red(`Error: ${error.message}`));
|
|
160
|
+
}
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface InitOptions {
|
|
2
|
+
name?: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
repoUrl?: string;
|
|
5
|
+
interactive?: boolean;
|
|
6
|
+
organization?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function initCommand(options: InitOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAoGD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgKrE"}
|