@serkanalgur/opencode-nexus 2.2.0 → 2.3.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/dist/index.js +46 -0
- package/dist/tui.js +100 -88
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -11930,6 +11930,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
11930
11930
|
},
|
|
11931
11931
|
additionalProperties: false
|
|
11932
11932
|
},
|
|
11933
|
+
options: { codemode: true },
|
|
11933
11934
|
execute: async (input) => {
|
|
11934
11935
|
const { detailed } = input;
|
|
11935
11936
|
const status = orchestrator.getStatus(detailed);
|
|
@@ -11947,6 +11948,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
11947
11948
|
},
|
|
11948
11949
|
additionalProperties: false
|
|
11949
11950
|
},
|
|
11951
|
+
options: { codemode: true },
|
|
11950
11952
|
execute: async (input) => {
|
|
11951
11953
|
const { filter } = input;
|
|
11952
11954
|
return { content: orchestrator.listAgents(filter) };
|
|
@@ -11960,6 +11962,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
11960
11962
|
properties: {},
|
|
11961
11963
|
additionalProperties: false
|
|
11962
11964
|
},
|
|
11965
|
+
options: { codemode: true },
|
|
11963
11966
|
execute: async () => {
|
|
11964
11967
|
return { content: orchestrator.getCostReport() };
|
|
11965
11968
|
}
|
|
@@ -11972,6 +11975,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
11972
11975
|
properties: {},
|
|
11973
11976
|
additionalProperties: false
|
|
11974
11977
|
},
|
|
11978
|
+
options: { codemode: true },
|
|
11975
11979
|
execute: async () => {
|
|
11976
11980
|
const state = orchestrator.getState();
|
|
11977
11981
|
await ctx.storage.set("orchestrator-state", JSON.parse(JSON.stringify(state)));
|
|
@@ -11986,6 +11990,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
11986
11990
|
properties: {},
|
|
11987
11991
|
additionalProperties: false
|
|
11988
11992
|
},
|
|
11993
|
+
options: { codemode: true },
|
|
11989
11994
|
execute: async () => {
|
|
11990
11995
|
const state = orchestrator.getState();
|
|
11991
11996
|
const tasks = state.tasks || [];
|
|
@@ -12004,6 +12009,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12004
12009
|
required: ["level"],
|
|
12005
12010
|
additionalProperties: false
|
|
12006
12011
|
},
|
|
12012
|
+
options: { codemode: true },
|
|
12007
12013
|
execute: async (input) => {
|
|
12008
12014
|
const { level, basePath } = input;
|
|
12009
12015
|
orchestrator.configManager.saveConfig(level, basePath || process.cwd());
|
|
@@ -12023,6 +12029,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12023
12029
|
required: ["level"],
|
|
12024
12030
|
additionalProperties: false
|
|
12025
12031
|
},
|
|
12032
|
+
options: { codemode: true },
|
|
12026
12033
|
execute: async (input) => {
|
|
12027
12034
|
const { level, basePath } = input;
|
|
12028
12035
|
const path = basePath || process.cwd();
|
|
@@ -12049,6 +12056,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12049
12056
|
required: ["name"],
|
|
12050
12057
|
additionalProperties: false
|
|
12051
12058
|
},
|
|
12059
|
+
options: { codemode: true },
|
|
12052
12060
|
execute: async (input) => {
|
|
12053
12061
|
const { name } = input;
|
|
12054
12062
|
try {
|
|
@@ -12070,6 +12078,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12070
12078
|
},
|
|
12071
12079
|
additionalProperties: false
|
|
12072
12080
|
},
|
|
12081
|
+
options: { codemode: true },
|
|
12073
12082
|
execute: async (input) => {
|
|
12074
12083
|
const { port, host } = input;
|
|
12075
12084
|
orchestrator.startDashboard(port, host);
|
|
@@ -12084,6 +12093,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12084
12093
|
properties: {},
|
|
12085
12094
|
additionalProperties: false
|
|
12086
12095
|
},
|
|
12096
|
+
options: { codemode: true },
|
|
12087
12097
|
execute: async () => {
|
|
12088
12098
|
orchestrator.stopDashboard();
|
|
12089
12099
|
return { content: "Dashboard stopped" };
|
|
@@ -12101,6 +12111,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12101
12111
|
},
|
|
12102
12112
|
additionalProperties: false
|
|
12103
12113
|
},
|
|
12114
|
+
options: { codemode: true },
|
|
12104
12115
|
execute: async (input) => {
|
|
12105
12116
|
const { model, setInput, setOutput } = input;
|
|
12106
12117
|
if (model && setInput !== undefined && setOutput !== undefined) {
|
|
@@ -12141,6 +12152,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12141
12152
|
required: ["role", "task"],
|
|
12142
12153
|
additionalProperties: false
|
|
12143
12154
|
},
|
|
12155
|
+
options: { codemode: true },
|
|
12144
12156
|
execute: async (input) => {
|
|
12145
12157
|
const { role, task, model, wait, timeout } = input;
|
|
12146
12158
|
try {
|
|
@@ -12277,6 +12289,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12277
12289
|
required: ["role", "task"],
|
|
12278
12290
|
additionalProperties: false
|
|
12279
12291
|
},
|
|
12292
|
+
options: { codemode: true },
|
|
12280
12293
|
execute: async (input) => {
|
|
12281
12294
|
const { role, task, model, timeout } = input;
|
|
12282
12295
|
try {
|
|
@@ -12340,6 +12353,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12340
12353
|
},
|
|
12341
12354
|
additionalProperties: false
|
|
12342
12355
|
},
|
|
12356
|
+
options: { codemode: true },
|
|
12343
12357
|
execute: async (input) => {
|
|
12344
12358
|
const { name, baseDir } = input;
|
|
12345
12359
|
if (!name || name === "list") {
|
|
@@ -12363,6 +12377,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12363
12377
|
properties: {},
|
|
12364
12378
|
additionalProperties: false
|
|
12365
12379
|
},
|
|
12380
|
+
options: { codemode: true },
|
|
12366
12381
|
execute: async () => {
|
|
12367
12382
|
const scores = orchestrator.performanceTracker.getScores();
|
|
12368
12383
|
if (scores.length === 0)
|
|
@@ -12383,6 +12398,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12383
12398
|
required: ["role"],
|
|
12384
12399
|
additionalProperties: false
|
|
12385
12400
|
},
|
|
12401
|
+
options: { codemode: true },
|
|
12386
12402
|
execute: async (input) => {
|
|
12387
12403
|
const { role } = input;
|
|
12388
12404
|
const best = orchestrator.performanceTracker.getBestModel(role);
|
|
@@ -12403,6 +12419,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12403
12419
|
required: ["content"],
|
|
12404
12420
|
additionalProperties: false
|
|
12405
12421
|
},
|
|
12422
|
+
options: { codemode: true },
|
|
12406
12423
|
execute: async (input) => {
|
|
12407
12424
|
const { content, filename } = input;
|
|
12408
12425
|
const issues = orchestrator.securityScanner.scanContent(content, filename || "unknown");
|
|
@@ -12420,6 +12437,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12420
12437
|
},
|
|
12421
12438
|
additionalProperties: false
|
|
12422
12439
|
},
|
|
12440
|
+
options: { codemode: true },
|
|
12423
12441
|
execute: async (input) => {
|
|
12424
12442
|
const { count } = input;
|
|
12425
12443
|
const records = count ? orchestrator.executionHistory.getRecent(count) : orchestrator.executionHistory.getAll();
|
|
@@ -12438,6 +12456,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
12438
12456
|
properties: {},
|
|
12439
12457
|
additionalProperties: false
|
|
12440
12458
|
},
|
|
12459
|
+
options: { codemode: true },
|
|
12441
12460
|
execute: async () => {
|
|
12442
12461
|
const stats = orchestrator.executionHistory.getStats();
|
|
12443
12462
|
return { content: `Total: ${stats.total} | Success: ${(stats.successRate * 100).toFixed(1)}% | Cost: $${stats.totalCost.toFixed(4)} | Avg: ${stats.avgDuration.toFixed(0)}ms
|
|
@@ -12452,6 +12471,7 @@ By role: ${JSON.stringify(stats.byRole)}` };
|
|
|
12452
12471
|
properties: {},
|
|
12453
12472
|
additionalProperties: false
|
|
12454
12473
|
},
|
|
12474
|
+
options: { codemode: true },
|
|
12455
12475
|
execute: async () => {
|
|
12456
12476
|
const roles = orchestrator.customRoles.list();
|
|
12457
12477
|
if (roles.length === 0)
|
|
@@ -12475,6 +12495,7 @@ By role: ${JSON.stringify(stats.byRole)}` };
|
|
|
12475
12495
|
},
|
|
12476
12496
|
required: ["name", "displayName", "prompt"]
|
|
12477
12497
|
},
|
|
12498
|
+
options: { codemode: true },
|
|
12478
12499
|
execute: async (input) => {
|
|
12479
12500
|
const { name, displayName, emoji, prompt, model } = input;
|
|
12480
12501
|
orchestrator.customRoles.register({ name, displayName, emoji: emoji || "\uD83E\uDD16", prompt, model });
|
|
@@ -12491,6 +12512,7 @@ By role: ${JSON.stringify(stats.byRole)}` };
|
|
|
12491
12512
|
},
|
|
12492
12513
|
required: ["tasks"]
|
|
12493
12514
|
},
|
|
12515
|
+
options: { codemode: true },
|
|
12494
12516
|
execute: async (input) => {
|
|
12495
12517
|
const { tasks } = input;
|
|
12496
12518
|
const taskList = JSON.parse(tasks);
|
|
@@ -12525,6 +12547,7 @@ Total: ~$${result.totalEstimatedCost.toFixed(4)}`);
|
|
|
12525
12547
|
name: "worktree.enable",
|
|
12526
12548
|
description: "Enable git worktree isolation for agents",
|
|
12527
12549
|
input: { type: "object", properties: { repoRoot: { type: "string", description: "Repository root (defaults to cwd)" } } },
|
|
12550
|
+
options: { codemode: true },
|
|
12528
12551
|
execute: async (input) => {
|
|
12529
12552
|
const { repoRoot } = input;
|
|
12530
12553
|
orchestrator.enableWorktrees(repoRoot || process.cwd());
|
|
@@ -12535,6 +12558,7 @@ Total: ~$${result.totalEstimatedCost.toFixed(4)}`);
|
|
|
12535
12558
|
name: "worktree.list",
|
|
12536
12559
|
description: "List active agent worktrees",
|
|
12537
12560
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
12561
|
+
options: { codemode: true },
|
|
12538
12562
|
execute: async () => {
|
|
12539
12563
|
if (!orchestrator.worktreeManager)
|
|
12540
12564
|
return { content: "Worktree isolation not enabled." };
|
|
@@ -12549,6 +12573,7 @@ Total: ~$${result.totalEstimatedCost.toFixed(4)}`);
|
|
|
12549
12573
|
name: "worktree.disable",
|
|
12550
12574
|
description: "Disable worktree isolation and clean up",
|
|
12551
12575
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
12576
|
+
options: { codemode: true },
|
|
12552
12577
|
execute: async () => {
|
|
12553
12578
|
if (orchestrator.worktreeManager) {
|
|
12554
12579
|
orchestrator.worktreeManager.cleanupAll();
|
|
@@ -12561,6 +12586,7 @@ Total: ~$${result.totalEstimatedCost.toFixed(4)}`);
|
|
|
12561
12586
|
name: "sessions",
|
|
12562
12587
|
description: "List all active Nexus agent sessions",
|
|
12563
12588
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
12589
|
+
options: { codemode: true },
|
|
12564
12590
|
execute: async () => {
|
|
12565
12591
|
const agents = orchestrator.getState().agents;
|
|
12566
12592
|
if (agents.length === 0)
|
|
@@ -12578,6 +12604,7 @@ ${lines.join(`
|
|
|
12578
12604
|
name: "background",
|
|
12579
12605
|
description: "Move running agents to background (detach from current session)",
|
|
12580
12606
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
12607
|
+
options: { codemode: true },
|
|
12581
12608
|
execute: async () => {
|
|
12582
12609
|
const agents = orchestrator.getState().agents.filter((a) => a.status === "working" || a.status === "idle");
|
|
12583
12610
|
if (agents.length === 0)
|
|
@@ -12600,6 +12627,7 @@ ${lines.join(`
|
|
|
12600
12627
|
},
|
|
12601
12628
|
required: ["sessionID"]
|
|
12602
12629
|
},
|
|
12630
|
+
options: { codemode: true },
|
|
12603
12631
|
execute: async (input) => {
|
|
12604
12632
|
const { sessionID } = input;
|
|
12605
12633
|
try {
|
|
@@ -12628,6 +12656,7 @@ ${lastMsg.content}` };
|
|
|
12628
12656
|
required: ["question"],
|
|
12629
12657
|
additionalProperties: false
|
|
12630
12658
|
},
|
|
12659
|
+
options: { codemode: true },
|
|
12631
12660
|
execute: async (input) => {
|
|
12632
12661
|
const { question, options, assumption } = input;
|
|
12633
12662
|
const optionList = options ? options.split(",").map((o) => o.trim()) : [];
|
|
@@ -12655,6 +12684,7 @@ Options: ${optionList.map((o, i) => `${i + 1}. ${o}`).join(", ")}`;
|
|
|
12655
12684
|
required: ["description"],
|
|
12656
12685
|
additionalProperties: false
|
|
12657
12686
|
},
|
|
12687
|
+
options: { codemode: true },
|
|
12658
12688
|
execute: async (input) => {
|
|
12659
12689
|
const { description, assignedTo } = input;
|
|
12660
12690
|
const item = orchestrator.todoEnforcer.add(description, assignedTo);
|
|
@@ -12669,6 +12699,7 @@ Options: ${optionList.map((o, i) => `${i + 1}. ${o}`).join(", ")}`;
|
|
|
12669
12699
|
properties: {},
|
|
12670
12700
|
additionalProperties: false
|
|
12671
12701
|
},
|
|
12702
|
+
options: { codemode: true },
|
|
12672
12703
|
execute: async () => {
|
|
12673
12704
|
return { content: orchestrator.todoEnforcer.formatAll() };
|
|
12674
12705
|
}
|
|
@@ -12684,6 +12715,7 @@ Options: ${optionList.map((o, i) => `${i + 1}. ${o}`).join(", ")}`;
|
|
|
12684
12715
|
required: ["id"],
|
|
12685
12716
|
additionalProperties: false
|
|
12686
12717
|
},
|
|
12718
|
+
options: { codemode: true },
|
|
12687
12719
|
execute: async (input) => {
|
|
12688
12720
|
const { id } = input;
|
|
12689
12721
|
const item = orchestrator.todoEnforcer.get(id);
|
|
@@ -12701,6 +12733,7 @@ Options: ${optionList.map((o, i) => `${i + 1}. ${o}`).join(", ")}`;
|
|
|
12701
12733
|
properties: {},
|
|
12702
12734
|
additionalProperties: false
|
|
12703
12735
|
},
|
|
12736
|
+
options: { codemode: true },
|
|
12704
12737
|
execute: async () => {
|
|
12705
12738
|
const stats = orchestrator.todoEnforcer.getStats();
|
|
12706
12739
|
return {
|
|
@@ -12725,6 +12758,7 @@ Options: ${optionList.map((o, i) => `${i + 1}. ${o}`).join(", ")}`;
|
|
|
12725
12758
|
required: ["description"],
|
|
12726
12759
|
additionalProperties: false
|
|
12727
12760
|
},
|
|
12761
|
+
options: { codemode: true },
|
|
12728
12762
|
execute: async (input) => {
|
|
12729
12763
|
const { description, autoContinue } = input;
|
|
12730
12764
|
const goal = goalManager.set(description, autoContinue ?? true);
|
|
@@ -12735,6 +12769,7 @@ Options: ${optionList.map((o, i) => `${i + 1}. ${o}`).join(", ")}`;
|
|
|
12735
12769
|
name: "goal.status",
|
|
12736
12770
|
description: "Show current goal status",
|
|
12737
12771
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
12772
|
+
options: { codemode: true },
|
|
12738
12773
|
execute: async () => {
|
|
12739
12774
|
const goal = goalManager.getActive();
|
|
12740
12775
|
if (!goal)
|
|
@@ -12748,6 +12783,7 @@ Tasks: ${goal.tasks.length}` };
|
|
|
12748
12783
|
name: "goal.complete",
|
|
12749
12784
|
description: "Complete current goal",
|
|
12750
12785
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
12786
|
+
options: { codemode: true },
|
|
12751
12787
|
execute: async () => {
|
|
12752
12788
|
const goal = goalManager.getActive();
|
|
12753
12789
|
if (!goal)
|
|
@@ -12760,6 +12796,7 @@ Tasks: ${goal.tasks.length}` };
|
|
|
12760
12796
|
name: "goal.list",
|
|
12761
12797
|
description: "List all goals",
|
|
12762
12798
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
12799
|
+
options: { codemode: true },
|
|
12763
12800
|
execute: async () => {
|
|
12764
12801
|
const goals = goalManager.getAll();
|
|
12765
12802
|
if (goals.length === 0)
|
|
@@ -12777,6 +12814,7 @@ Tasks: ${goal.tasks.length}` };
|
|
|
12777
12814
|
properties: {},
|
|
12778
12815
|
additionalProperties: false
|
|
12779
12816
|
},
|
|
12817
|
+
options: { codemode: true },
|
|
12780
12818
|
execute: async () => {
|
|
12781
12819
|
const active = goalManager.getActive();
|
|
12782
12820
|
if (!active)
|
|
@@ -12803,6 +12841,7 @@ Tasks: ${goal.tasks.length}` };
|
|
|
12803
12841
|
properties: {},
|
|
12804
12842
|
additionalProperties: false
|
|
12805
12843
|
},
|
|
12844
|
+
options: { codemode: true },
|
|
12806
12845
|
execute: async () => {
|
|
12807
12846
|
const active = goalManager.getActive();
|
|
12808
12847
|
if (!active)
|
|
@@ -12827,6 +12866,7 @@ Tasks: ${goal.tasks.length}` };
|
|
|
12827
12866
|
properties: {},
|
|
12828
12867
|
additionalProperties: false
|
|
12829
12868
|
},
|
|
12869
|
+
options: { codemode: true },
|
|
12830
12870
|
execute: async () => {
|
|
12831
12871
|
const goals = goalManager.getAll();
|
|
12832
12872
|
if (goals.length === 0)
|
|
@@ -12854,6 +12894,7 @@ ${lines.join(`
|
|
|
12854
12894
|
required: ["name", "leadRole"],
|
|
12855
12895
|
additionalProperties: false
|
|
12856
12896
|
},
|
|
12897
|
+
options: { codemode: true },
|
|
12857
12898
|
execute: async (input) => {
|
|
12858
12899
|
const { name, leadRole } = input;
|
|
12859
12900
|
const team = teamManager.create(name, leadRole);
|
|
@@ -12877,6 +12918,7 @@ Add members with nexus.team.addMember(teamId="${team.id}", role="...", model="..
|
|
|
12877
12918
|
required: ["teamId", "role", "model"],
|
|
12878
12919
|
additionalProperties: false
|
|
12879
12920
|
},
|
|
12921
|
+
options: { codemode: true },
|
|
12880
12922
|
execute: async (input) => {
|
|
12881
12923
|
const { teamId, role, model } = input;
|
|
12882
12924
|
const member = teamManager.addMember(teamId, role, model);
|
|
@@ -12903,6 +12945,7 @@ Total members: ${team?.members.length || 0}` };
|
|
|
12903
12945
|
},
|
|
12904
12946
|
additionalProperties: false
|
|
12905
12947
|
},
|
|
12948
|
+
options: { codemode: true },
|
|
12906
12949
|
execute: async (input) => {
|
|
12907
12950
|
const { teamId } = input;
|
|
12908
12951
|
if (teamId) {
|
|
@@ -12940,6 +12983,7 @@ ${lines.join(`
|
|
|
12940
12983
|
required: ["teamId"],
|
|
12941
12984
|
additionalProperties: false
|
|
12942
12985
|
},
|
|
12986
|
+
options: { codemode: true },
|
|
12943
12987
|
execute: async (input) => {
|
|
12944
12988
|
const { teamId } = input;
|
|
12945
12989
|
const team = teamManager.get(teamId);
|
|
@@ -12970,6 +13014,7 @@ ${team.members.map((m) => ` - ${m.role}: ${m.model}`).join(`
|
|
|
12970
13014
|
required: ["pattern", "language", "directory"],
|
|
12971
13015
|
additionalProperties: false
|
|
12972
13016
|
},
|
|
13017
|
+
options: { codemode: true },
|
|
12973
13018
|
execute: async (input) => {
|
|
12974
13019
|
const { pattern, language, directory } = input;
|
|
12975
13020
|
const results = astGrep.search(pattern, language, directory);
|
|
@@ -12985,6 +13030,7 @@ ${lines.join(`
|
|
|
12985
13030
|
name: "astgrep.status",
|
|
12986
13031
|
description: "Check if ast-grep is installed",
|
|
12987
13032
|
input: { type: "object", properties: {}, additionalProperties: false },
|
|
13033
|
+
options: { codemode: true },
|
|
12988
13034
|
execute: async () => {
|
|
12989
13035
|
const available = astGrep.isAvailable();
|
|
12990
13036
|
return { content: available ? "✅ ast-grep is installed" : "❌ ast-grep is not installed. Install with: cargo install ast-grep" };
|
package/dist/tui.js
CHANGED
|
@@ -34857,104 +34857,116 @@ var tui_default = define({
|
|
|
34857
34857
|
pollChildSessions();
|
|
34858
34858
|
} catch {}
|
|
34859
34859
|
const agents = sidebarState.agents;
|
|
34860
|
-
if (!agents || agents.length === 0)
|
|
34860
|
+
if (!agents || agents.length === 0)
|
|
34861
34861
|
return null;
|
|
34862
|
-
|
|
34863
|
-
|
|
34864
|
-
|
|
34865
|
-
|
|
34866
|
-
|
|
34867
|
-
|
|
34868
|
-
|
|
34869
|
-
|
|
34870
|
-
|
|
34871
|
-
|
|
34872
|
-
|
|
34873
|
-
|
|
34874
|
-
|
|
34875
|
-
|
|
34876
|
-
|
|
34877
|
-
|
|
34878
|
-
|
|
34879
|
-
|
|
34880
|
-
|
|
34881
|
-
|
|
34882
|
-
|
|
34883
|
-
|
|
34884
|
-
|
|
34885
|
-
|
|
34886
|
-
|
|
34887
|
-
|
|
34862
|
+
try {
|
|
34863
|
+
const activeAgents = agents.filter((a) => a.status === "working" || a.status === "idle");
|
|
34864
|
+
const completedAgents = agents.filter((a) => a.status === "completed");
|
|
34865
|
+
const failedAgents = agents.filter((a) => a.status === "failed");
|
|
34866
|
+
return /* @__PURE__ */ jsxDEV("div", {
|
|
34867
|
+
style: {
|
|
34868
|
+
padding: "8px",
|
|
34869
|
+
borderTop: "1px solid #333",
|
|
34870
|
+
marginTop: "8px"
|
|
34871
|
+
},
|
|
34872
|
+
children: [
|
|
34873
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
34874
|
+
style: {
|
|
34875
|
+
fontSize: "11px",
|
|
34876
|
+
color: "#888",
|
|
34877
|
+
marginBottom: "4px",
|
|
34878
|
+
display: "flex",
|
|
34879
|
+
justifyContent: "space-between",
|
|
34880
|
+
alignItems: "center"
|
|
34881
|
+
},
|
|
34882
|
+
children: [
|
|
34883
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
34884
|
+
children: "\uD83E\uDD16 Nexus Agents"
|
|
34885
|
+
}, undefined, false, undefined, this),
|
|
34886
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
34887
|
+
style: { color: "#666" },
|
|
34888
|
+
children: [
|
|
34889
|
+
activeAgents.length,
|
|
34890
|
+
" active"
|
|
34891
|
+
]
|
|
34892
|
+
}, undefined, true, undefined, this)
|
|
34893
|
+
]
|
|
34894
|
+
}, undefined, true, undefined, this),
|
|
34895
|
+
activeAgents.map((agent) => /* @__PURE__ */ jsxDEV("div", {
|
|
34896
|
+
style: {
|
|
34897
|
+
fontSize: "10px",
|
|
34898
|
+
padding: "2px 0",
|
|
34899
|
+
color: agent.status === "working" ? "#4ade80" : "#94a3b8"
|
|
34900
|
+
},
|
|
34901
|
+
children: [
|
|
34902
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
34903
|
+
children: agent.status === "working" ? "\uD83D\uDD04" : "⏸️"
|
|
34904
|
+
}, undefined, false, undefined, this),
|
|
34905
|
+
" ",
|
|
34906
|
+
agent.name,
|
|
34907
|
+
agent.model && /* @__PURE__ */ jsxDEV("span", {
|
|
34908
|
+
style: { color: "#64748b" },
|
|
34909
|
+
children: [
|
|
34910
|
+
" — ",
|
|
34911
|
+
agent.model.split("/").pop()
|
|
34912
|
+
]
|
|
34913
|
+
}, undefined, true, undefined, this)
|
|
34914
|
+
]
|
|
34915
|
+
}, agent.id, true, undefined, this)),
|
|
34916
|
+
completedAgents.length > 0 && /* @__PURE__ */ jsxDEV("div", {
|
|
34917
|
+
style: {
|
|
34918
|
+
marginTop: "4px",
|
|
34919
|
+
paddingTop: "4px",
|
|
34920
|
+
borderTop: "1px solid #222"
|
|
34921
|
+
},
|
|
34922
|
+
children: /* @__PURE__ */ jsxDEV("div", {
|
|
34923
|
+
style: { fontSize: "10px", color: "#666", marginBottom: "2px" },
|
|
34888
34924
|
children: [
|
|
34889
|
-
|
|
34890
|
-
|
|
34925
|
+
"✅ ",
|
|
34926
|
+
completedAgents.length,
|
|
34927
|
+
" completed"
|
|
34891
34928
|
]
|
|
34892
34929
|
}, undefined, true, undefined, this)
|
|
34893
|
-
|
|
34894
|
-
|
|
34895
|
-
|
|
34896
|
-
|
|
34897
|
-
|
|
34898
|
-
padding: "2px 0",
|
|
34899
|
-
color: agent.status === "working" ? "#4ade80" : "#94a3b8"
|
|
34900
|
-
},
|
|
34901
|
-
children: [
|
|
34902
|
-
/* @__PURE__ */ jsxDEV("span", {
|
|
34903
|
-
children: agent.status === "working" ? "\uD83D\uDD04" : "⏸️"
|
|
34904
|
-
}, undefined, false, undefined, this),
|
|
34905
|
-
" ",
|
|
34906
|
-
agent.name,
|
|
34907
|
-
agent.model && /* @__PURE__ */ jsxDEV("span", {
|
|
34908
|
-
style: { color: "#64748b" },
|
|
34930
|
+
}, undefined, false, undefined, this),
|
|
34931
|
+
failedAgents.length > 0 && /* @__PURE__ */ jsxDEV("div", {
|
|
34932
|
+
style: { marginTop: "2px" },
|
|
34933
|
+
children: /* @__PURE__ */ jsxDEV("div", {
|
|
34934
|
+
style: { fontSize: "10px", color: "#ef4444", marginBottom: "2px" },
|
|
34909
34935
|
children: [
|
|
34910
|
-
"
|
|
34911
|
-
|
|
34936
|
+
"❌ ",
|
|
34937
|
+
failedAgents.length,
|
|
34938
|
+
" failed"
|
|
34912
34939
|
]
|
|
34913
34940
|
}, undefined, true, undefined, this)
|
|
34914
|
-
|
|
34915
|
-
|
|
34916
|
-
|
|
34917
|
-
|
|
34918
|
-
|
|
34919
|
-
|
|
34920
|
-
|
|
34921
|
-
},
|
|
34922
|
-
children: /* @__PURE__ */ jsxDEV("div", {
|
|
34923
|
-
style: { fontSize: "10px", color: "#666", marginBottom: "2px" },
|
|
34924
|
-
children: [
|
|
34925
|
-
"✅ ",
|
|
34926
|
-
completedAgents.length,
|
|
34927
|
-
" completed"
|
|
34928
|
-
]
|
|
34929
|
-
}, undefined, true, undefined, this)
|
|
34930
|
-
}, undefined, false, undefined, this),
|
|
34931
|
-
failedAgents.length > 0 && /* @__PURE__ */ jsxDEV("div", {
|
|
34932
|
-
style: { marginTop: "2px" },
|
|
34933
|
-
children: /* @__PURE__ */ jsxDEV("div", {
|
|
34934
|
-
style: { fontSize: "10px", color: "#ef4444", marginBottom: "2px" },
|
|
34941
|
+
}, undefined, false, undefined, this),
|
|
34942
|
+
sidebarState.totalCost > 0 && /* @__PURE__ */ jsxDEV("div", {
|
|
34943
|
+
style: {
|
|
34944
|
+
marginTop: "4px",
|
|
34945
|
+
fontSize: "10px",
|
|
34946
|
+
color: "#666"
|
|
34947
|
+
},
|
|
34935
34948
|
children: [
|
|
34936
|
-
"
|
|
34937
|
-
|
|
34938
|
-
"
|
|
34949
|
+
"\uD83D\uDCB0 $",
|
|
34950
|
+
sidebarState.totalCost.toFixed(4),
|
|
34951
|
+
" / $",
|
|
34952
|
+
sidebarState.budgetRemaining.toFixed(2),
|
|
34953
|
+
" remaining"
|
|
34939
34954
|
]
|
|
34940
34955
|
}, undefined, true, undefined, this)
|
|
34941
|
-
|
|
34942
|
-
|
|
34943
|
-
|
|
34944
|
-
|
|
34945
|
-
|
|
34946
|
-
|
|
34947
|
-
|
|
34948
|
-
|
|
34949
|
-
|
|
34950
|
-
|
|
34951
|
-
|
|
34952
|
-
|
|
34953
|
-
|
|
34954
|
-
|
|
34955
|
-
}, undefined, true, undefined, this)
|
|
34956
|
-
]
|
|
34957
|
-
}, undefined, true, undefined, this);
|
|
34956
|
+
]
|
|
34957
|
+
}, undefined, true, undefined, this);
|
|
34958
|
+
} catch (err) {
|
|
34959
|
+
console.error("[nexus] sidebar render error:", err);
|
|
34960
|
+
try {
|
|
34961
|
+
context.ui.toast.show({
|
|
34962
|
+
title: "Nexus Sidebar Error",
|
|
34963
|
+
message: err instanceof Error ? err.message : String(err),
|
|
34964
|
+
variant: "error",
|
|
34965
|
+
duration: 5000
|
|
34966
|
+
});
|
|
34967
|
+
} catch {}
|
|
34968
|
+
return null;
|
|
34969
|
+
}
|
|
34958
34970
|
}
|
|
34959
34971
|
});
|
|
34960
34972
|
return () => {
|