@kendoo.agentdesk/agentdesk 0.8.2 → 0.8.4

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 CHANGED
@@ -79,7 +79,7 @@ agentdesk update Update to the latest version
79
79
  |------|-------------|
80
80
  | `--description`, `-d` | Task description or requirements |
81
81
  | `--cwd` | Working directory (defaults to current) |
82
- | `--legacy` | Use single-process mode (cheaper, less independent reasoning) |
82
+ | `--lite` | Lite mode — faster and cheaper, agents share one conversation |
83
83
 
84
84
  ## Configuration
85
85
 
@@ -126,12 +126,12 @@ Each agent runs as its own independent Claude session — not one model role-pla
126
126
  6. The session streams live to [agentdesk.live](https://agentdesk.live) where you can watch and send messages to the team
127
127
  7. Token usage is tracked and displayed per session
128
128
 
129
- ### Session Modes
129
+ ### Agent Modes
130
130
 
131
131
  | Mode | Command | Description |
132
132
  |------|---------|-------------|
133
- | Sub-agents (default) | `agentdesk team -d "..."` | Each agent is an independent Claude session. Better reasoning, ~4-5x tokens. |
134
- | Legacy | `agentdesk team -d "..." --legacy` | Single Claude process, all agents as personas. Cheaper, less independent. |
133
+ | Full (default) | `agentdesk team -d "..."` | Each agent thinks independently in its own Claude session. Better output. |
134
+ | Lite | `agentdesk team -d "..." --lite` | All agents share one conversation. Faster and cheaper. |
135
135
 
136
136
  ## Daemon (Remote Sessions)
137
137
 
@@ -141,7 +141,7 @@ The daemon lets you trigger team sessions from the web dashboard instead of the
141
141
  agentdesk daemon
142
142
  ```
143
143
 
144
- Once running, a "Start Session" button appears on [agentdesk.live](https://agentdesk.live). Select a project, optionally provide a prompt, and the daemon spawns a Claude session on your machine. Output streams back to the dashboard in real-time.
144
+ Once running, a "Run Team" button appears on [agentdesk.live](https://agentdesk.live). Select a project, describe the task, and the daemon spawns a Claude session on your machine. Output streams back to the dashboard in real-time.
145
145
 
146
146
  ### Security
147
147
 
@@ -154,7 +154,7 @@ Once running, a "Start Session" button appears on [agentdesk.live](https://agent
154
154
  ### How it works
155
155
 
156
156
  1. The daemon connects to the server via WebSocket
157
- 2. You click "Start Session" in the dashboard
157
+ 2. You click "Run Team" in the dashboard
158
158
  3. The server relays the request to your daemon
159
159
  4. The daemon spawns `claude` in the project directory
160
160
  5. Output streams through the server to the dashboard
package/bin/agentdesk.mjs CHANGED
@@ -65,7 +65,7 @@ if (!command || command === "help" || command === "--help") {
65
65
  Options:
66
66
  --description, -d Task description or requirements
67
67
  --cwd Working directory (defaults to current)
68
- --legacy Use single-process mode (cheaper, less independent)
68
+ --lite Lite mode — faster and cheaper, agents share one conversation
69
69
 
70
70
  How it works:
71
71
  With a tracker (Linear, Jira, GitHub Issues):
@@ -105,7 +105,7 @@ else if (command === "team") {
105
105
  let description = "";
106
106
  let cwd = process.cwd();
107
107
  let taskId = null;
108
- let legacy = false;
108
+ let lite = false;
109
109
  const remaining = args.slice(1);
110
110
 
111
111
  for (let i = 0; i < remaining.length; i++) {
@@ -113,8 +113,8 @@ else if (command === "team") {
113
113
  description = remaining[++i];
114
114
  } else if (remaining[i] === "--cwd" && remaining[i + 1]) {
115
115
  cwd = remaining[++i];
116
- } else if (remaining[i] === "--legacy") {
117
- legacy = true;
116
+ } else if (remaining[i] === "--lite" || remaining[i] === "--legacy") {
117
+ lite = true;
118
118
  } else if (!taskId && !remaining[i].startsWith("-")) {
119
119
  taskId = remaining[i];
120
120
  }
@@ -127,7 +127,7 @@ else if (command === "team") {
127
127
  }
128
128
 
129
129
  const { runTeam } = await import("../cli/team.mjs");
130
- const code = await runTeam(taskId, { description, cwd, legacy });
130
+ const code = await runTeam(taskId, { description, cwd, lite });
131
131
  process.exit(code);
132
132
  }
133
133
 
@@ -1,8 +1,12 @@
1
1
  // Orchestrator — manages agent sub-sessions across phases
2
2
 
3
3
  import { existsSync, readFileSync } from "fs";
4
- import { join } from "path";
4
+ import { join, dirname } from "path";
5
+ import { fileURLToPath } from "url";
5
6
  import { runAgent } from "./agent-runner.mjs";
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+ const CLI_VERSION = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8")).version;
6
10
  import { buildAgentPrompt, getAgentTools } from "./agent-prompts.mjs";
7
11
  import { detectProject, generateContext } from "./detect.mjs";
8
12
 
@@ -125,6 +129,7 @@ export async function runOrchestrator({
125
129
  project: project?.name || null,
126
130
  sessionNumber: 1,
127
131
  agents: teamSections.names,
132
+ cliVersion: CLI_VERSION,
128
133
  });
129
134
 
130
135
  // Build agent lookup
package/cli/team.mjs CHANGED
@@ -3,8 +3,12 @@
3
3
  import { spawn } from "child_process";
4
4
  import { existsSync, readFileSync } from "fs";
5
5
  import { createInterface } from "readline";
6
- import { join } from "path";
6
+ import { join, dirname } from "path";
7
7
  import { randomUUID } from "crypto";
8
+ import { fileURLToPath } from "url";
9
+
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const CLI_VERSION = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8")).version;
8
12
  import WebSocket from "ws";
9
13
  import { detectProject } from "./detect.mjs";
10
14
  import { loadConfig } from "./config.mjs";
@@ -31,7 +35,7 @@ function loadDotEnv(dir) {
31
35
  export async function runTeam(taskId, opts = {}) {
32
36
  const cwd = opts.cwd || process.cwd();
33
37
  const description = opts.description || "";
34
- const legacy = opts.legacy || false;
38
+ const lite = opts.lite || false;
35
39
 
36
40
  // Detect project and resolve API key early (needed for server config fetch)
37
41
  const project = detectProject(cwd);
@@ -121,11 +125,11 @@ export async function runTeam(taskId, opts = {}) {
121
125
  vizConnected = true;
122
126
  if (!sessionStartSent) {
123
127
  console.log("AgentDesk: connected");
124
- console.log(`Watch live: ${agentdeskServer}`);
128
+ console.log(`Dashboard: ${agentdeskServer}`);
125
129
  } else {
126
130
  console.log("AgentDesk: reconnected");
127
131
  }
128
- if (!legacy) {
132
+ if (!lite) {
129
133
  // Orchestrator sends its own session:start — just flush queue
130
134
  sessionStartSent = true;
131
135
  while (vizQueue.length > 0 && vizWs.readyState === WebSocket.OPEN) {
@@ -139,6 +143,7 @@ export async function runTeam(taskId, opts = {}) {
139
143
  project: project.name || null,
140
144
  sessionNumber: 1,
141
145
  agents: teamSections.names,
146
+ cliVersion: CLI_VERSION,
142
147
  });
143
148
  sessionStartSent = true;
144
149
  while (vizQueue.length > 0 && vizWs.readyState === WebSocket.OPEN) {
@@ -168,10 +173,10 @@ export async function runTeam(taskId, opts = {}) {
168
173
 
169
174
  connectWs();
170
175
 
171
- console.log(`Mode: ${legacy ? "legacy (single process)" : "sub-agents"}\n`);
176
+ console.log(`Agents: ${lite ? "lite (shared)" : "full (independent)"}\n`);
172
177
 
173
178
  // --- Sub-agent mode (default) ---
174
- if (!legacy) {
179
+ if (!lite) {
175
180
  const result = await runOrchestrator({
176
181
  taskId, taskLink, description, createTask, tracker, config,
177
182
  project, team, teamSections, inboxUrl, sessionUrl, cwd,
@@ -186,7 +191,7 @@ export async function runTeam(taskId, opts = {}) {
186
191
  return 0;
187
192
  }
188
193
 
189
- // --- Legacy mode (single process) ---
194
+ // --- Lite mode (shared conversation) ---
190
195
  const fullPrompt = buildPrompt({
191
196
  taskId, taskLink, description, createTask, tracker, config, project,
192
197
  teamSections, inboxUrl, sessionUrl,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kendoo.agentdesk/agentdesk",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "description": "AI team orchestrator for Claude Code — run collaborative agent sessions from your terminal",
5
5
  "type": "module",
6
6
  "bin": {