@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.
Files changed (3) hide show
  1. package/LICENSE +1 -1
  2. package/dist/index.js +170 -6
  3. package/package.json +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 useai.dev
3
+ Copyright (c) 2025-present UseAI Contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
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";
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(["simple", "medium", "complex"]);
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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devness/useai-cli",
3
- "version": "0.5.33",
3
+ "version": "0.5.35",
4
4
  "description": "CLI tool for useai.dev — stats, sync, publish your AI development workflow",
5
5
  "author": "nabeelkausari",
6
6
  "license": "MIT",