@desplega.ai/agent-swarm 1.73.0 → 1.73.1

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/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Agent Swarm API",
5
- "version": "1.72.1",
5
+ "version": "1.73.1",
6
6
  "description": "Multi-agent orchestration API for Claude Code, Codex, and Gemini CLI. Enables task distribution, agent communication, and service discovery.\n\nMCP tools are documented separately in [MCP.md](./MCP.md)."
7
7
  },
8
8
  "servers": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desplega.ai/agent-swarm",
3
- "version": "1.73.0",
3
+ "version": "1.73.1",
4
4
  "description": "Multi-agent orchestration for Claude Code, Codex, Gemini CLI, and other AI coding assistants",
5
5
  "license": "MIT",
6
6
  "author": "desplega.sh <contact@desplega.sh>",
@@ -349,12 +349,10 @@ function renderTree(root: TreeNode): string {
349
349
  const visibleChildren = root.children.slice(0, MAX_VISIBLE_CHILDREN);
350
350
  const hiddenCount = root.children.length - visibleChildren.length;
351
351
 
352
- for (let i = 0; i < visibleChildren.length; i++) {
353
- const child = visibleChildren[i] as TreeNode;
354
- const isLast = i === visibleChildren.length - 1 && hiddenCount === 0;
355
- const prefix = isLast ? "└ " : "├ ";
356
- const continuationPrefix = isLast ? " " : "│ ";
352
+ const prefix = "↳ ";
353
+ const continuationPrefix = " ";
357
354
 
355
+ for (const child of visibleChildren) {
358
356
  lines.push(`${prefix}${renderNodeLine(child)}`);
359
357
 
360
358
  for (const detail of renderChildDetail(child, continuationPrefix)) {
@@ -363,7 +361,7 @@ function renderTree(root: TreeNode): string {
363
361
  }
364
362
 
365
363
  if (hiddenCount > 0) {
366
- lines.push(`└ _and ${hiddenCount} more..._`);
364
+ lines.push(`↳ _and ${hiddenCount} more..._`);
367
365
  }
368
366
 
369
367
  return lines.join("\n");
@@ -616,14 +616,14 @@ describe("buildTreeBlocks", () => {
616
616
 
617
617
  // Root line
618
618
  expect(lines[0]).toContain("⏳ *Lead*");
619
- // Worker1 line with prefix
620
- expect(lines[1]).toMatch(/^├ ⏳ \*Worker1\*/);
621
- // Worker1 progress indented under continuation
622
- expect(lines[2]).toMatch(/^│ {3}Fetching data\.\.\.$/);
623
- // Worker2 line with prefix (last child)
624
- expect(lines[3]).toMatch(/^└ ⏳ \*Worker2\*/);
619
+ // Worker1 line with prefix
620
+ expect(lines[1]).toMatch(/^↳ ⏳ \*Worker1\*/);
621
+ // Worker1 progress indented under continuation (3 spaces, aligned under ↳ )
622
+ expect(lines[2]).toMatch(/^ {3}Fetching data\.\.\.$/);
623
+ // Worker2 line with prefix
624
+ expect(lines[3]).toMatch(/^↳ ⏳ \*Worker2\*/);
625
625
  // Worker2 progress indented
626
- expect(lines[4]).toMatch(/^ {4}Compiling\.\.\.$/);
626
+ expect(lines[4]).toMatch(/^ {3}Compiling\.\.\.$/);
627
627
  });
628
628
 
629
629
  test("max children collapse (9+ children -> 8 shown + 'and 1 more...')", () => {
@@ -654,8 +654,8 @@ describe("buildTreeBlocks", () => {
654
654
  expect(text).toContain("*Worker8*");
655
655
  expect(text).not.toContain("*Worker9*");
656
656
  expect(text).toContain("and 1 more...");
657
- // The "and N more..." line uses prefix
658
- expect(lines[lines.length - 1]).toContain(" _and 1 more..._");
657
+ // The "and N more..." line uses prefix
658
+ expect(lines[lines.length - 1]).toContain(" _and 1 more..._");
659
659
  });
660
660
 
661
661
  test("max children collapse with many hidden", () => {
@@ -837,7 +837,7 @@ describe("buildTreeBlocks", () => {
837
837
  expect(blocks.length).toBe(1);
838
838
  });
839
839
 
840
- test("tree connectors: for non-last, for last child", () => {
840
+ test("tree indent: all children use prefix", () => {
841
841
  const root: TreeNode = {
842
842
  taskId: makeTaskId("nnnn0001"),
843
843
  agentName: "Lead",
@@ -867,10 +867,10 @@ describe("buildTreeBlocks", () => {
867
867
  const blocks = buildTreeBlocks([root]);
868
868
  const lines = blocks[0].text.text.split("\n");
869
869
 
870
- // First two children use ├, last uses
871
- expect(lines[1]).toMatch(/^├ /);
872
- expect(lines[2]).toMatch(/^├ /);
873
- expect(lines[3]).toMatch(/^└ /);
870
+ // All children use (no branching distinction in proportional fonts)
871
+ expect(lines[1]).toMatch(/^↳ /);
872
+ expect(lines[2]).toMatch(/^↳ /);
873
+ expect(lines[3]).toMatch(/^↳ /);
874
874
  });
875
875
 
876
876
  test("completed root with output (no slackReplySent, no children)", () => {