@devness/useai-cli 0.5.33 → 0.5.35
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 +1 -1
- package/dist/index.js +170 -6
- package/package.json +1 -1
package/LICENSE
CHANGED
package/dist/index.js
CHANGED
|
@@ -30,7 +30,7 @@ var SYSTEMD_SERVICE_PATH = join(homedir(), ".config", "systemd", "user", "useai-
|
|
|
30
30
|
var WINDOWS_STARTUP_SCRIPT_PATH = join(process.env["APPDATA"] ?? join(homedir(), "AppData", "Roaming"), "Microsoft", "Windows", "Start Menu", "Programs", "Startup", "useai-daemon.vbs");
|
|
31
31
|
|
|
32
32
|
// ../shared/dist/constants/version.js
|
|
33
|
-
var VERSION = "0.5.
|
|
33
|
+
var VERSION = "0.5.35";
|
|
34
34
|
|
|
35
35
|
// ../shared/dist/constants/defaults.js
|
|
36
36
|
var DEFAULT_CONFIG = {
|
|
@@ -4473,6 +4473,23 @@ var taskTypeSchema = external_exports.enum([
|
|
|
4473
4473
|
"reviewing",
|
|
4474
4474
|
"documenting",
|
|
4475
4475
|
"learning",
|
|
4476
|
+
"deployment",
|
|
4477
|
+
"devops",
|
|
4478
|
+
"research",
|
|
4479
|
+
"migration",
|
|
4480
|
+
"design",
|
|
4481
|
+
"data",
|
|
4482
|
+
"security",
|
|
4483
|
+
"configuration",
|
|
4484
|
+
// aliases models commonly try
|
|
4485
|
+
"code_review",
|
|
4486
|
+
"code-review",
|
|
4487
|
+
"investigation",
|
|
4488
|
+
"infrastructure",
|
|
4489
|
+
"analysis",
|
|
4490
|
+
"ops",
|
|
4491
|
+
"setup",
|
|
4492
|
+
"refactoring",
|
|
4476
4493
|
"other"
|
|
4477
4494
|
]);
|
|
4478
4495
|
var milestoneCategorySchema = external_exports.enum([
|
|
@@ -4483,9 +4500,38 @@ var milestoneCategorySchema = external_exports.enum([
|
|
|
4483
4500
|
"docs",
|
|
4484
4501
|
"setup",
|
|
4485
4502
|
"deployment",
|
|
4503
|
+
// aliases models commonly try
|
|
4504
|
+
"fix",
|
|
4505
|
+
"bug_fix",
|
|
4506
|
+
"testing",
|
|
4507
|
+
"documentation",
|
|
4508
|
+
"config",
|
|
4509
|
+
"configuration",
|
|
4510
|
+
"analysis",
|
|
4511
|
+
"research",
|
|
4512
|
+
"investigation",
|
|
4513
|
+
"performance",
|
|
4514
|
+
"cleanup",
|
|
4515
|
+
"chore",
|
|
4516
|
+
"security",
|
|
4517
|
+
"migration",
|
|
4518
|
+
"design",
|
|
4519
|
+
"devops",
|
|
4486
4520
|
"other"
|
|
4487
4521
|
]);
|
|
4488
|
-
var complexitySchema = external_exports.enum([
|
|
4522
|
+
var complexitySchema = external_exports.enum([
|
|
4523
|
+
"simple",
|
|
4524
|
+
"medium",
|
|
4525
|
+
"complex",
|
|
4526
|
+
// aliases models commonly try
|
|
4527
|
+
"low",
|
|
4528
|
+
"high",
|
|
4529
|
+
"trivial",
|
|
4530
|
+
"easy",
|
|
4531
|
+
"moderate",
|
|
4532
|
+
"hard",
|
|
4533
|
+
"difficult"
|
|
4534
|
+
]);
|
|
4489
4535
|
var milestoneInputSchema = external_exports.object({
|
|
4490
4536
|
title: external_exports.string().min(1).max(500),
|
|
4491
4537
|
category: milestoneCategorySchema,
|
|
@@ -5332,6 +5378,14 @@ function installToml(configPath) {
|
|
|
5332
5378
|
config["mcp_servers"] = servers;
|
|
5333
5379
|
writeTomlFile(configPath, config);
|
|
5334
5380
|
}
|
|
5381
|
+
function installTomlHttp(configPath) {
|
|
5382
|
+
const config = readTomlFile(configPath);
|
|
5383
|
+
const servers = config["mcp_servers"] ?? {};
|
|
5384
|
+
delete servers["useai"];
|
|
5385
|
+
servers["UseAI"] = { url: MCP_HTTP_URL };
|
|
5386
|
+
config["mcp_servers"] = servers;
|
|
5387
|
+
writeTomlFile(configPath, config);
|
|
5388
|
+
}
|
|
5335
5389
|
function removeToml(configPath) {
|
|
5336
5390
|
const config = readTomlFile(configPath);
|
|
5337
5391
|
const servers = config["mcp_servers"];
|
|
@@ -5377,6 +5431,19 @@ function installYaml(configPath) {
|
|
|
5377
5431
|
config["extensions"] = extensions;
|
|
5378
5432
|
writeYamlFile(configPath, config);
|
|
5379
5433
|
}
|
|
5434
|
+
function installYamlHttp(configPath) {
|
|
5435
|
+
const config = readYamlFile(configPath);
|
|
5436
|
+
const extensions = config["extensions"] ?? {};
|
|
5437
|
+
delete extensions["useai"];
|
|
5438
|
+
extensions["UseAI"] = {
|
|
5439
|
+
name: "UseAI",
|
|
5440
|
+
type: "http",
|
|
5441
|
+
url: MCP_HTTP_URL,
|
|
5442
|
+
enabled: true
|
|
5443
|
+
};
|
|
5444
|
+
config["extensions"] = extensions;
|
|
5445
|
+
writeYamlFile(configPath, config);
|
|
5446
|
+
}
|
|
5380
5447
|
function removeYaml(configPath) {
|
|
5381
5448
|
const config = readYamlFile(configPath);
|
|
5382
5449
|
const extensions = config["extensions"];
|
|
@@ -5389,6 +5456,39 @@ function removeYaml(configPath) {
|
|
|
5389
5456
|
writeYamlFile(configPath, config);
|
|
5390
5457
|
}
|
|
5391
5458
|
}
|
|
5459
|
+
function isConfiguredCrush(configPath) {
|
|
5460
|
+
const config = readJsonFile(configPath);
|
|
5461
|
+
const servers = config["mcp"];
|
|
5462
|
+
return !!servers?.["UseAI"] || !!servers?.["useai"];
|
|
5463
|
+
}
|
|
5464
|
+
function installCrush(configPath) {
|
|
5465
|
+
const config = readJsonFile(configPath);
|
|
5466
|
+
const servers = config["mcp"] ?? {};
|
|
5467
|
+
delete servers["useai"];
|
|
5468
|
+
servers["UseAI"] = { type: "stdio", command: MCP_ENTRY.command, args: MCP_ENTRY.args };
|
|
5469
|
+
config["mcp"] = servers;
|
|
5470
|
+
writeJsonFile(configPath, config);
|
|
5471
|
+
}
|
|
5472
|
+
function removeCrush(configPath) {
|
|
5473
|
+
const config = readJsonFile(configPath);
|
|
5474
|
+
const servers = config["mcp"];
|
|
5475
|
+
if (servers) {
|
|
5476
|
+
delete servers["UseAI"];
|
|
5477
|
+
delete servers["useai"];
|
|
5478
|
+
if (Object.keys(servers).length === 0) {
|
|
5479
|
+
delete config["mcp"];
|
|
5480
|
+
}
|
|
5481
|
+
writeJsonFile(configPath, config);
|
|
5482
|
+
}
|
|
5483
|
+
}
|
|
5484
|
+
function installCrushHttp(configPath) {
|
|
5485
|
+
const config = readJsonFile(configPath);
|
|
5486
|
+
const servers = config["mcp"] ?? {};
|
|
5487
|
+
delete servers["useai"];
|
|
5488
|
+
servers["UseAI"] = { type: "http", url: MCP_HTTP_URL };
|
|
5489
|
+
config["mcp"] = servers;
|
|
5490
|
+
writeJsonFile(configPath, config);
|
|
5491
|
+
}
|
|
5392
5492
|
var INSTRUCTIONS_START = "<!-- useai:start -->";
|
|
5393
5493
|
var INSTRUCTIONS_END = "<!-- useai:end -->";
|
|
5394
5494
|
var USEAI_INSTRUCTIONS = [
|
|
@@ -5459,7 +5559,8 @@ var formatHandlers = {
|
|
|
5459
5559
|
vscode: { isConfigured: isConfiguredVscode, install: installVscode, remove: removeVscode },
|
|
5460
5560
|
zed: { isConfigured: isConfiguredZed, install: installZed, remove: removeZed },
|
|
5461
5561
|
toml: { isConfigured: isConfiguredToml, install: installToml, remove: removeToml },
|
|
5462
|
-
yaml: { isConfigured: isConfiguredYaml, install: installYaml, remove: removeYaml }
|
|
5562
|
+
yaml: { isConfigured: isConfiguredYaml, install: installYaml, remove: removeYaml },
|
|
5563
|
+
crush: { isConfigured: isConfiguredCrush, install: installCrush, remove: removeCrush }
|
|
5463
5564
|
};
|
|
5464
5565
|
function createTool(def) {
|
|
5465
5566
|
const handler = formatHandlers[def.configFormat];
|
|
@@ -5481,6 +5582,12 @@ function createTool(def) {
|
|
|
5481
5582
|
installVscodeHttp(def.configPath);
|
|
5482
5583
|
} else if (def.configFormat === "standard") {
|
|
5483
5584
|
installStandardHttp(def.configPath);
|
|
5585
|
+
} else if (def.configFormat === "toml") {
|
|
5586
|
+
installTomlHttp(def.configPath);
|
|
5587
|
+
} else if (def.configFormat === "yaml") {
|
|
5588
|
+
installYamlHttp(def.configPath);
|
|
5589
|
+
} else if (def.configFormat === "crush") {
|
|
5590
|
+
installCrushHttp(def.configPath);
|
|
5484
5591
|
} else {
|
|
5485
5592
|
handler.install(def.configPath);
|
|
5486
5593
|
}
|
|
@@ -5578,6 +5685,33 @@ var AI_TOOLS = [
|
|
|
5578
5685
|
instructions: { method: "append", path: join4(home, ".gemini", "GEMINI.md") },
|
|
5579
5686
|
supportsUrl: true
|
|
5580
5687
|
}),
|
|
5688
|
+
createTool({
|
|
5689
|
+
id: "antigravity",
|
|
5690
|
+
name: "Antigravity",
|
|
5691
|
+
configFormat: "standard",
|
|
5692
|
+
configPath: join4(home, ".gemini", "antigravity", "mcp_config.json"),
|
|
5693
|
+
detect: () => existsSync8(join4(home, ".gemini", "antigravity")),
|
|
5694
|
+
instructions: { method: "append", path: join4(home, ".gemini", "GEMINI.md") },
|
|
5695
|
+
supportsUrl: true
|
|
5696
|
+
}),
|
|
5697
|
+
createTool({
|
|
5698
|
+
id: "copilot-cli",
|
|
5699
|
+
name: "Copilot CLI",
|
|
5700
|
+
configFormat: "standard",
|
|
5701
|
+
configPath: join4(home, ".copilot", "mcp-config.json"),
|
|
5702
|
+
detect: () => hasBinary("copilot") || existsSync8(join4(home, ".copilot")),
|
|
5703
|
+
manualHint: "No global instructions file \u2014 add UseAI instructions to your project-level agent rules.",
|
|
5704
|
+
supportsUrl: true
|
|
5705
|
+
}),
|
|
5706
|
+
createTool({
|
|
5707
|
+
id: "trae",
|
|
5708
|
+
name: "Trae",
|
|
5709
|
+
configFormat: "standard",
|
|
5710
|
+
configPath: join4(appSupport, "Trae", "User", "mcp.json"),
|
|
5711
|
+
detect: () => existsSync8(join4(appSupport, "Trae")),
|
|
5712
|
+
manualHint: "Open Trae Settings \u2192 Rules and paste the instructions below.",
|
|
5713
|
+
supportsUrl: true
|
|
5714
|
+
}),
|
|
5581
5715
|
createTool({
|
|
5582
5716
|
id: "zed",
|
|
5583
5717
|
name: "Zed",
|
|
@@ -5624,6 +5758,25 @@ var AI_TOOLS = [
|
|
|
5624
5758
|
instructions: { method: "create", path: join4(home, ".roo", "rules", "useai.md") },
|
|
5625
5759
|
supportsUrl: true
|
|
5626
5760
|
}),
|
|
5761
|
+
createTool({
|
|
5762
|
+
id: "kilo-code",
|
|
5763
|
+
name: "Kilo Code",
|
|
5764
|
+
configFormat: "standard",
|
|
5765
|
+
configPath: join4(
|
|
5766
|
+
appSupport,
|
|
5767
|
+
"Code",
|
|
5768
|
+
"User",
|
|
5769
|
+
"globalStorage",
|
|
5770
|
+
"kilocode.kilo-code",
|
|
5771
|
+
"settings",
|
|
5772
|
+
"mcp_settings.json"
|
|
5773
|
+
),
|
|
5774
|
+
detect: () => existsSync8(
|
|
5775
|
+
join4(appSupport, "Code", "User", "globalStorage", "kilocode.kilo-code")
|
|
5776
|
+
),
|
|
5777
|
+
manualHint: "Add the instructions below to .kilocode/rules/useai.md in your project root.",
|
|
5778
|
+
supportsUrl: true
|
|
5779
|
+
}),
|
|
5627
5780
|
createTool({
|
|
5628
5781
|
id: "amazon-q-cli",
|
|
5629
5782
|
name: "Amazon Q CLI",
|
|
@@ -5646,7 +5799,8 @@ var AI_TOOLS = [
|
|
|
5646
5799
|
configFormat: "toml",
|
|
5647
5800
|
configPath: join4(home, ".codex", "config.toml"),
|
|
5648
5801
|
detect: () => hasBinary("codex") || existsSync8(join4(home, ".codex")) || existsSync8("/Applications/Codex.app"),
|
|
5649
|
-
instructions: { method: "append", path: join4(home, ".codex", "AGENTS.md") }
|
|
5802
|
+
instructions: { method: "append", path: join4(home, ".codex", "AGENTS.md") },
|
|
5803
|
+
supportsUrl: true
|
|
5650
5804
|
}),
|
|
5651
5805
|
createTool({
|
|
5652
5806
|
id: "goose",
|
|
@@ -5654,7 +5808,8 @@ var AI_TOOLS = [
|
|
|
5654
5808
|
configFormat: "yaml",
|
|
5655
5809
|
configPath: join4(home, ".config", "goose", "config.yaml"),
|
|
5656
5810
|
detect: () => existsSync8(join4(home, ".config", "goose")),
|
|
5657
|
-
instructions: { method: "append", path: join4(home, ".config", "goose", ".goosehints") }
|
|
5811
|
+
instructions: { method: "append", path: join4(home, ".config", "goose", ".goosehints") },
|
|
5812
|
+
supportsUrl: true
|
|
5658
5813
|
}),
|
|
5659
5814
|
createTool({
|
|
5660
5815
|
id: "opencode",
|
|
@@ -5665,6 +5820,15 @@ var AI_TOOLS = [
|
|
|
5665
5820
|
instructions: { method: "append", path: join4(home, ".config", "opencode", "AGENTS.md") },
|
|
5666
5821
|
supportsUrl: true
|
|
5667
5822
|
}),
|
|
5823
|
+
createTool({
|
|
5824
|
+
id: "crush",
|
|
5825
|
+
name: "Crush",
|
|
5826
|
+
configFormat: "crush",
|
|
5827
|
+
configPath: join4(home, ".config", "crush", "crush.json"),
|
|
5828
|
+
detect: () => hasBinary("crush") || existsSync8(join4(home, ".config", "crush")),
|
|
5829
|
+
manualHint: "No global instructions file \u2014 add UseAI instructions to your project-level .crush.json.",
|
|
5830
|
+
supportsUrl: true
|
|
5831
|
+
}),
|
|
5668
5832
|
createTool({
|
|
5669
5833
|
id: "junie",
|
|
5670
5834
|
name: "Junie",
|
|
@@ -6169,7 +6333,7 @@ var serveCommand = new Command9("serve").description("Open the local UseAI dashb
|
|
|
6169
6333
|
import { Command as Command10 } from "commander";
|
|
6170
6334
|
import chalk9 from "chalk";
|
|
6171
6335
|
import { input } from "@inquirer/prompts";
|
|
6172
|
-
var API_URL = "https://api.useai.dev";
|
|
6336
|
+
var API_URL = process.env.USEAI_API_URL || "https://api.useai.dev";
|
|
6173
6337
|
async function apiCall(endpoint, body) {
|
|
6174
6338
|
const res = await fetch(`${API_URL}${endpoint}`, {
|
|
6175
6339
|
method: "POST",
|