@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 +1 -1
- package/package.json +1 -1
- package/src/slack/blocks.ts +4 -6
- package/src/tests/slack-blocks.test.ts +14 -14
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.
|
|
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
package/src/slack/blocks.ts
CHANGED
|
@@ -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
|
-
|
|
353
|
-
|
|
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(
|
|
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
|
|
620
|
-
expect(lines[1]).toMatch(
|
|
621
|
-
// Worker1 progress indented under continuation
|
|
622
|
-
expect(lines[2]).toMatch(
|
|
623
|
-
// Worker2 line with
|
|
624
|
-
expect(lines[3]).toMatch(
|
|
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(/^ {
|
|
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
|
|
658
|
-
expect(lines[lines.length - 1]).toContain("
|
|
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
|
|
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
|
-
//
|
|
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)", () => {
|