adhdev 0.9.75 → 0.9.76-rc.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.
- package/dist/cli/index.js +12 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/vendor/mcp-server/index.js +22 -6
- package/vendor/mcp-server/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adhdev",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.76-rc.2",
|
|
4
4
|
"description": "ADHDev — Agent Dashboard Hub for Dev. Remote-control AI coding agents from anywhere.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"node": ">=18"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@adhdev/daemon-core": "
|
|
50
|
+
"@adhdev/daemon-core": "0.9.76-rc.2",
|
|
51
51
|
"@adhdev/ghostty-vt-node": "*",
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
53
53
|
"@xterm/addon-serialize": "^0.14.0",
|
|
@@ -1379,7 +1379,14 @@ async function meshStatus(ctx) {
|
|
|
1379
1379
|
workspace: node.workspace
|
|
1380
1380
|
};
|
|
1381
1381
|
try {
|
|
1382
|
-
if (isLocalTransport(transport)) {
|
|
1382
|
+
if (!isLocalTransport(transport) && node.daemonId) {
|
|
1383
|
+
const result = await transport.gitStatus(node.daemonId, node.workspace, false);
|
|
1384
|
+
const status = result?.status ?? result;
|
|
1385
|
+
entry.health = status?.isGitRepo ? status?.isDirty ? "dirty" : "online" : "degraded";
|
|
1386
|
+
entry.branch = status?.branch;
|
|
1387
|
+
entry.isDirty = status?.isDirty;
|
|
1388
|
+
entry.uncommittedChanges = status?.uncommittedChanges ?? 0;
|
|
1389
|
+
} else if (isLocalTransport(transport)) {
|
|
1383
1390
|
const statusResult = await transport.command("git_status", { workspace: node.workspace });
|
|
1384
1391
|
const status = statusResult?.status ?? statusResult;
|
|
1385
1392
|
entry.health = status?.isGitRepo ? status?.isDirty ? "dirty" : "online" : "degraded";
|
|
@@ -1388,7 +1395,7 @@ async function meshStatus(ctx) {
|
|
|
1388
1395
|
entry.uncommittedChanges = status?.uncommittedChanges ?? 0;
|
|
1389
1396
|
} else {
|
|
1390
1397
|
entry.health = "unknown";
|
|
1391
|
-
entry.note = "
|
|
1398
|
+
entry.note = "No daemonId available for cloud status probe";
|
|
1392
1399
|
}
|
|
1393
1400
|
} catch (e) {
|
|
1394
1401
|
entry.health = "degraded";
|
|
@@ -1422,7 +1429,7 @@ async function meshListNodes(ctx) {
|
|
|
1422
1429
|
}
|
|
1423
1430
|
async function meshSendTask(ctx, args) {
|
|
1424
1431
|
const node = findNode(ctx.mesh, args.node_id);
|
|
1425
|
-
if (node.policy
|
|
1432
|
+
if (node.policy?.readOnly) {
|
|
1426
1433
|
return JSON.stringify({ error: `Node '${args.node_id}' is read-only` });
|
|
1427
1434
|
}
|
|
1428
1435
|
if (isLocalTransport(ctx.transport)) {
|
|
@@ -1465,7 +1472,15 @@ async function meshLaunchSession(ctx, args) {
|
|
|
1465
1472
|
}
|
|
1466
1473
|
async function meshGitStatus(ctx, args) {
|
|
1467
1474
|
const node = findNode(ctx.mesh, args.node_id);
|
|
1468
|
-
if (isLocalTransport(ctx.transport)) {
|
|
1475
|
+
if (!isLocalTransport(ctx.transport) && node.daemonId) {
|
|
1476
|
+
const result = await ctx.transport.gitStatus(node.daemonId, node.workspace, true);
|
|
1477
|
+
return JSON.stringify({
|
|
1478
|
+
nodeId: args.node_id,
|
|
1479
|
+
workspace: node.workspace,
|
|
1480
|
+
status: result?.status ?? result,
|
|
1481
|
+
diff: result?.diff ?? null
|
|
1482
|
+
}, null, 2);
|
|
1483
|
+
} else if (isLocalTransport(ctx.transport)) {
|
|
1469
1484
|
const statusResult = await ctx.transport.command("git_status", {
|
|
1470
1485
|
workspace: node.workspace
|
|
1471
1486
|
});
|
|
@@ -1479,12 +1494,12 @@ async function meshGitStatus(ctx, args) {
|
|
|
1479
1494
|
diff: diffResult?.diffSummary ?? diffResult
|
|
1480
1495
|
}, null, 2);
|
|
1481
1496
|
} else {
|
|
1482
|
-
return JSON.stringify({ error: "
|
|
1497
|
+
return JSON.stringify({ error: "No daemonId available for cloud git_status probe" });
|
|
1483
1498
|
}
|
|
1484
1499
|
}
|
|
1485
1500
|
async function meshCheckpoint(ctx, args) {
|
|
1486
1501
|
const node = findNode(ctx.mesh, args.node_id);
|
|
1487
|
-
if (node.policy
|
|
1502
|
+
if (node.policy?.readOnly) {
|
|
1488
1503
|
return JSON.stringify({ error: `Node '${args.node_id}' is read-only \u2014 cannot checkpoint` });
|
|
1489
1504
|
}
|
|
1490
1505
|
if (isLocalTransport(ctx.transport)) {
|
|
@@ -1573,6 +1588,7 @@ async function startMcpServer(opts) {
|
|
|
1573
1588
|
id: n.id,
|
|
1574
1589
|
workspace: n.workspace,
|
|
1575
1590
|
repoRoot: n.repo_root,
|
|
1591
|
+
daemonId: n.daemon_id,
|
|
1576
1592
|
userOverrides: {},
|
|
1577
1593
|
policy: {},
|
|
1578
1594
|
isLocalWorktree: false
|