jinzd-ai-cli 0.4.1 → 0.4.2

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.
@@ -6,7 +6,7 @@ import { platform } from "os";
6
6
  import chalk from "chalk";
7
7
 
8
8
  // src/core/constants.ts
9
- var VERSION = "0.4.1";
9
+ var VERSION = "0.4.2";
10
10
  var APP_NAME = "ai-cli";
11
11
  var CONFIG_DIR_NAME = ".aicli";
12
12
  var CONFIG_FILE_NAME = "config.json";
@@ -6,7 +6,7 @@ import {
6
6
  SUBAGENT_DEFAULT_MAX_ROUNDS,
7
7
  SUBAGENT_MAX_ROUNDS_LIMIT,
8
8
  runTestsTool
9
- } from "./chunk-TCGVS7O5.js";
9
+ } from "./chunk-UB6BRUQ4.js";
10
10
 
11
11
  // src/tools/builtin/bash.ts
12
12
  import { execSync } from "child_process";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  EnvLoader,
4
4
  schemaToJsonSchema
5
- } from "./chunk-V74SAFQD.js";
5
+ } from "./chunk-E2HVDEWW.js";
6
6
  import {
7
7
  APP_NAME,
8
8
  CONFIG_DIR_NAME,
@@ -15,7 +15,7 @@ import {
15
15
  MCP_TOOL_PREFIX,
16
16
  PLUGINS_DIR_NAME,
17
17
  VERSION
18
- } from "./chunk-TCGVS7O5.js";
18
+ } from "./chunk-UB6BRUQ4.js";
19
19
 
20
20
  // src/config/config-manager.ts
21
21
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
@@ -8,7 +8,7 @@ import { platform } from "os";
8
8
  import chalk from "chalk";
9
9
 
10
10
  // src/core/constants.ts
11
- var VERSION = "0.4.1";
11
+ var VERSION = "0.4.2";
12
12
  var APP_NAME = "ai-cli";
13
13
  var CONFIG_DIR_NAME = ".aicli";
14
14
  var CONFIG_FILE_NAME = "config.json";
@@ -293,10 +293,18 @@ async function startHub(options, configManager, providers) {
293
293
  try {
294
294
  const raw = readFileSync(options.rolesFile, "utf-8");
295
295
  const parsed = JSON.parse(raw);
296
- roles = Array.isArray(parsed) ? parsed : parsed.roles;
297
- if (!Array.isArray(roles) || roles.length === 0) {
296
+ const rawRoles = Array.isArray(parsed) ? parsed : parsed.roles;
297
+ if (!Array.isArray(rawRoles) || rawRoles.length === 0) {
298
298
  throw new Error("roles must be a non-empty array");
299
299
  }
300
+ roles = rawRoles.map((r) => ({
301
+ id: r.id ?? r.name?.toLowerCase().replace(/\s+/g, "-") ?? "agent",
302
+ name: r.name ?? r.id ?? "Agent",
303
+ persona: r.persona ?? r.description ?? `You are ${r.name ?? "an AI assistant"}.`,
304
+ ...r.provider && { provider: r.provider },
305
+ ...r.model && { model: r.model },
306
+ ...r.color && { color: r.color }
307
+ }));
300
308
  } catch (err) {
301
309
  console.error(` \u2717 Invalid roles file: ${err.message}`);
302
310
  process.exit(1);
@@ -373,7 +381,7 @@ ${content}`);
373
381
  }
374
382
  }
375
383
  async function runTaskMode(config, providers, configManager, topic) {
376
- const { TaskOrchestrator } = await import("./task-orchestrator-KLMHHA3E.js");
384
+ const { TaskOrchestrator } = await import("./task-orchestrator-GONUQ6TN.js");
377
385
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
378
386
  let interrupted = false;
379
387
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ import {
23
23
  saveDevState,
24
24
  sessionHasMeaningfulContent,
25
25
  setupProxy
26
- } from "./chunk-OJFFHKYP.js";
26
+ } from "./chunk-LP2ZH4HH.js";
27
27
  import {
28
28
  ToolRegistry,
29
29
  askUserContext,
@@ -38,7 +38,7 @@ import {
38
38
  theme,
39
39
  truncateOutput,
40
40
  undoStack
41
- } from "./chunk-V74SAFQD.js";
41
+ } from "./chunk-E2HVDEWW.js";
42
42
  import {
43
43
  AGENTIC_BEHAVIOR_GUIDELINE,
44
44
  AUTHOR,
@@ -58,7 +58,7 @@ import {
58
58
  REPO_URL,
59
59
  SKILLS_DIR_NAME,
60
60
  VERSION
61
- } from "./chunk-TCGVS7O5.js";
61
+ } from "./chunk-UB6BRUQ4.js";
62
62
 
63
63
  // src/index.ts
64
64
  import { program } from "commander";
@@ -1914,7 +1914,7 @@ ${hint}` : "")
1914
1914
  description: "Run project tests and show structured report",
1915
1915
  usage: "/test [command|filter]",
1916
1916
  async execute(args, _ctx) {
1917
- const { executeTests } = await import("./run-tests-ZSQG5L7B.js");
1917
+ const { executeTests } = await import("./run-tests-4WOG5THP.js");
1918
1918
  const argStr = args.join(" ").trim();
1919
1919
  let testArgs = {};
1920
1920
  if (argStr) {
@@ -5524,7 +5524,7 @@ program.command("web").description("Start Web UI server with browser-based chat
5524
5524
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
5525
5525
  process.exit(1);
5526
5526
  }
5527
- const { startWebServer } = await import("./server-DYATJUO7.js");
5527
+ const { startWebServer } = await import("./server-JNWKHPBS.js");
5528
5528
  await startWebServer({ port, host: options.host });
5529
5529
  });
5530
5530
  program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | migrate <name>)").action(async (action, username) => {
@@ -5757,7 +5757,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
5757
5757
  }),
5758
5758
  config.get("customProviders")
5759
5759
  );
5760
- const { startHub } = await import("./hub-722M5G3O.js");
5760
+ const { startHub } = await import("./hub-OXZNGBAY.js");
5761
5761
  await startHub(
5762
5762
  {
5763
5763
  topic: topic ?? "",
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-TCGVS7O5.js";
5
+ } from "./chunk-UB6BRUQ4.js";
6
6
  export {
7
7
  executeTests,
8
8
  runTestsTool
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-7J5P5CQJ.js";
4
+ } from "./chunk-54EGIKT5.js";
5
5
  export {
6
6
  executeTests,
7
7
  runTestsTool
@@ -18,7 +18,7 @@ import {
18
18
  renderDiff,
19
19
  runHook,
20
20
  setupProxy
21
- } from "./chunk-OJFFHKYP.js";
21
+ } from "./chunk-LP2ZH4HH.js";
22
22
  import {
23
23
  AuthManager
24
24
  } from "./chunk-CPLT6CD3.js";
@@ -32,7 +32,7 @@ import {
32
32
  spawnAgentContext,
33
33
  truncateOutput,
34
34
  undoStack
35
- } from "./chunk-V74SAFQD.js";
35
+ } from "./chunk-E2HVDEWW.js";
36
36
  import {
37
37
  AGENTIC_BEHAVIOR_GUIDELINE,
38
38
  CONTEXT_FILE_CANDIDATES,
@@ -44,7 +44,7 @@ import {
44
44
  PLAN_MODE_SYSTEM_ADDON,
45
45
  SKILLS_DIR_NAME,
46
46
  VERSION
47
- } from "./chunk-TCGVS7O5.js";
47
+ } from "./chunk-UB6BRUQ4.js";
48
48
 
49
49
  // src/web/server.ts
50
50
  import express from "express";
@@ -1440,7 +1440,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
1440
1440
  case "test": {
1441
1441
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
1442
1442
  try {
1443
- const { executeTests } = await import("./run-tests-ZSQG5L7B.js");
1443
+ const { executeTests } = await import("./run-tests-4WOG5THP.js");
1444
1444
  const argStr = args.join(" ").trim();
1445
1445
  let testArgs = {};
1446
1446
  if (argStr) {
@@ -4,10 +4,10 @@ import {
4
4
  getDangerLevel,
5
5
  googleSearchContext,
6
6
  truncateOutput
7
- } from "./chunk-V74SAFQD.js";
7
+ } from "./chunk-E2HVDEWW.js";
8
8
  import {
9
9
  SUBAGENT_ALLOWED_TOOLS
10
- } from "./chunk-TCGVS7O5.js";
10
+ } from "./chunk-UB6BRUQ4.js";
11
11
 
12
12
  // src/hub/task-orchestrator.ts
13
13
  import { createInterface } from "readline";
@@ -198,7 +198,7 @@ var TaskOrchestrator = class {
198
198
  // ── Phase 1: Plan Generation ──────────────────────────────────────
199
199
  async generatePlan(goal, provider) {
200
200
  const roles = this.config.roles;
201
- const roleList = roles.map((r) => `- ${r.id} (${r.name}): ${r.persona.slice(0, 100)}...`).join("\n");
201
+ const roleList = roles.map((r) => `- ${r.id} (${r.name}): ${(r.persona ?? "").slice(0, 100)}...`).join("\n");
202
202
  const contextSection = this.config.context ? `
203
203
 
204
204
  ## Reference Documents
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",