@wings006/agent-link 0.1.3 → 0.1.5
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 +76 -2
- package/dist/a2a-server.d.ts +2 -0
- package/dist/a2a-server.js +73 -4
- package/dist/a2a-server.js.map +1 -1
- package/dist/config.d.ts +8 -0
- package/dist/config.js +45 -3
- package/dist/config.js.map +1 -1
- package/dist/daemon-api.js +328 -7
- package/dist/daemon-api.js.map +1 -1
- package/dist/daemon.js +61 -10
- package/dist/daemon.js.map +1 -1
- package/dist/discovery.d.ts +10 -1
- package/dist/discovery.js +63 -19
- package/dist/discovery.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/local-discovery.d.ts +19 -0
- package/dist/local-discovery.js +133 -0
- package/dist/local-discovery.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.js +501 -8
- package/dist/mcp-server.js.map +1 -1
- package/dist/relay-client.d.ts +2 -1
- package/dist/relay-client.js +14 -10
- package/dist/relay-client.js.map +1 -1
- package/dist/relay-server.js +13 -0
- package/dist/relay-server.js.map +1 -1
- package/dist/task-store.d.ts +115 -0
- package/dist/task-store.js +260 -0
- package/dist/task-store.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/package.json +1 -1
package/dist/discovery.d.ts
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
|
-
import type { AgentInfo } from "./types.js";
|
|
1
|
+
import type { AgentInfo, AgentPresence } from "./types.js";
|
|
2
2
|
export declare class Discovery {
|
|
3
3
|
private bonjour;
|
|
4
|
+
private localAgents;
|
|
4
5
|
private lanAgents;
|
|
5
6
|
private relayAgents;
|
|
6
7
|
private localName;
|
|
8
|
+
private localPresence;
|
|
9
|
+
private publishedPort;
|
|
10
|
+
private publishedSkills;
|
|
7
11
|
private onAgentFound?;
|
|
8
12
|
private onAgentLost?;
|
|
9
13
|
constructor(localName: string);
|
|
10
14
|
publish(port: number, skills: string[]): void;
|
|
15
|
+
getPresence(): AgentPresence;
|
|
16
|
+
setPresence(status: AgentPresence): void;
|
|
11
17
|
browse(onFound?: (agent: AgentInfo) => void, onLost?: (name: string) => void): void;
|
|
18
|
+
addLocalAgent(agent: AgentInfo): void;
|
|
19
|
+
removeLocalAgent(name: string): void;
|
|
12
20
|
addRelayAgent(agent: AgentInfo): void;
|
|
13
21
|
removeRelayAgent(name: string): void;
|
|
14
22
|
getAgents(): AgentInfo[];
|
|
15
23
|
getAgent(name: string): AgentInfo | undefined;
|
|
16
24
|
isRelayAgent(name: string): boolean;
|
|
25
|
+
getOnlineAgents(): AgentInfo[];
|
|
17
26
|
destroy(): void;
|
|
18
27
|
}
|
package/dist/discovery.js
CHANGED
|
@@ -2,9 +2,13 @@ import { Bonjour } from "bonjour-service";
|
|
|
2
2
|
const SERVICE_TYPE = "agent-link";
|
|
3
3
|
export class Discovery {
|
|
4
4
|
bonjour;
|
|
5
|
+
localAgents = new Map();
|
|
5
6
|
lanAgents = new Map();
|
|
6
7
|
relayAgents = new Map();
|
|
7
8
|
localName;
|
|
9
|
+
localPresence = "online";
|
|
10
|
+
publishedPort = 0;
|
|
11
|
+
publishedSkills = [];
|
|
8
12
|
onAgentFound;
|
|
9
13
|
onAgentLost;
|
|
10
14
|
constructor(localName) {
|
|
@@ -13,6 +17,8 @@ export class Discovery {
|
|
|
13
17
|
}
|
|
14
18
|
// 广播自己
|
|
15
19
|
publish(port, skills) {
|
|
20
|
+
this.publishedPort = port;
|
|
21
|
+
this.publishedSkills = skills;
|
|
16
22
|
this.bonjour.publish({
|
|
17
23
|
name: this.localName,
|
|
18
24
|
type: SERVICE_TYPE,
|
|
@@ -20,9 +26,36 @@ export class Discovery {
|
|
|
20
26
|
txt: {
|
|
21
27
|
version: "1.0",
|
|
22
28
|
skills: skills.join(","),
|
|
29
|
+
status: this.localPresence,
|
|
23
30
|
},
|
|
24
31
|
});
|
|
25
32
|
}
|
|
33
|
+
// 获取/设置本地在线状态
|
|
34
|
+
getPresence() {
|
|
35
|
+
return this.localPresence;
|
|
36
|
+
}
|
|
37
|
+
setPresence(status) {
|
|
38
|
+
this.localPresence = status;
|
|
39
|
+
// 重新发布 mDNS(更新 TXT 记录)
|
|
40
|
+
if (this.publishedPort > 0) {
|
|
41
|
+
try {
|
|
42
|
+
this.bonjour.unpublishAll();
|
|
43
|
+
this.bonjour.publish({
|
|
44
|
+
name: this.localName,
|
|
45
|
+
type: SERVICE_TYPE,
|
|
46
|
+
port: this.publishedPort,
|
|
47
|
+
txt: {
|
|
48
|
+
version: "1.0",
|
|
49
|
+
skills: this.publishedSkills.join(","),
|
|
50
|
+
status,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// 忽略重新发布错误
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
26
59
|
// 发现其他 Agent
|
|
27
60
|
browse(onFound, onLost) {
|
|
28
61
|
this.onAgentFound = onFound;
|
|
@@ -34,15 +67,14 @@ export class Discovery {
|
|
|
34
67
|
// 优先使用 IP 地址,避免 mDNS hostname 冲突导致无法解析
|
|
35
68
|
const addresses = (service.addresses || []).filter((a) => !a.includes(":"));
|
|
36
69
|
const host = addresses[0] || service.host;
|
|
70
|
+
const txt = (service.txt || {});
|
|
37
71
|
const agent = {
|
|
38
72
|
name: service.name,
|
|
39
73
|
host,
|
|
40
74
|
port: service.port,
|
|
41
|
-
skills: (
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
version: service.txt?.version || "1.0",
|
|
45
|
-
status: "online",
|
|
75
|
+
skills: (txt.skills || "").split(",").filter(Boolean),
|
|
76
|
+
version: txt.version || "1.0",
|
|
77
|
+
status: txt.status || "online",
|
|
46
78
|
};
|
|
47
79
|
this.lanAgents.set(agent.name, agent);
|
|
48
80
|
this.onAgentFound?.(agent);
|
|
@@ -55,16 +87,24 @@ export class Discovery {
|
|
|
55
87
|
}
|
|
56
88
|
});
|
|
57
89
|
}
|
|
58
|
-
//
|
|
90
|
+
// 添加或更新本机发现的 Agent
|
|
91
|
+
addLocalAgent(agent) {
|
|
92
|
+
this.localAgents.set(agent.name, agent);
|
|
93
|
+
}
|
|
94
|
+
removeLocalAgent(name) {
|
|
95
|
+
if (!this.localAgents.has(name))
|
|
96
|
+
return;
|
|
97
|
+
this.localAgents.delete(name);
|
|
98
|
+
if (!this.lanAgents.has(name) && !this.relayAgents.has(name)) {
|
|
99
|
+
this.onAgentLost?.(name);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// 添加或更新中继发现的 Agent
|
|
59
103
|
addRelayAgent(agent) {
|
|
60
|
-
//
|
|
61
|
-
if (this.lanAgents.has(agent.name))
|
|
104
|
+
// 局域网或本机已有的不覆盖
|
|
105
|
+
if (this.localAgents.has(agent.name) || this.lanAgents.has(agent.name))
|
|
62
106
|
return;
|
|
63
|
-
const isNew = !this.relayAgents.has(agent.name);
|
|
64
107
|
this.relayAgents.set(agent.name, agent);
|
|
65
|
-
if (isNew) {
|
|
66
|
-
this.onAgentFound?.(agent);
|
|
67
|
-
}
|
|
68
108
|
}
|
|
69
109
|
// 移除中继 Agent
|
|
70
110
|
removeRelayAgent(name) {
|
|
@@ -76,26 +116,30 @@ export class Discovery {
|
|
|
76
116
|
this.onAgentLost?.(name);
|
|
77
117
|
}
|
|
78
118
|
}
|
|
79
|
-
// 获取所有 Agent
|
|
119
|
+
// 获取所有 Agent(local > LAN > relay)
|
|
80
120
|
getAgents() {
|
|
81
121
|
const merged = new Map();
|
|
82
|
-
// 先放中继的
|
|
83
122
|
for (const [name, agent] of this.relayAgents) {
|
|
84
123
|
merged.set(name, agent);
|
|
85
124
|
}
|
|
86
|
-
// 局域网的覆盖中继的(优先直连)
|
|
87
125
|
for (const [name, agent] of this.lanAgents) {
|
|
88
126
|
merged.set(name, agent);
|
|
89
127
|
}
|
|
128
|
+
for (const [name, agent] of this.localAgents) {
|
|
129
|
+
merged.set(name, agent);
|
|
130
|
+
}
|
|
90
131
|
return [...merged.values()];
|
|
91
132
|
}
|
|
92
133
|
getAgent(name) {
|
|
93
|
-
|
|
94
|
-
return this.lanAgents.get(name) || this.relayAgents.get(name);
|
|
134
|
+
return this.localAgents.get(name) || this.lanAgents.get(name) || this.relayAgents.get(name);
|
|
95
135
|
}
|
|
96
|
-
// 判断是否是中继 Agent
|
|
136
|
+
// 判断是否是中继 Agent(非本机、非局域网)
|
|
97
137
|
isRelayAgent(name) {
|
|
98
|
-
return !this.lanAgents.has(name) && this.relayAgents.has(name);
|
|
138
|
+
return !this.localAgents.has(name) && !this.lanAgents.has(name) && this.relayAgents.has(name);
|
|
139
|
+
}
|
|
140
|
+
// 获取在线 Agent(过滤 offline)
|
|
141
|
+
getOnlineAgents() {
|
|
142
|
+
return this.getAgents().filter((a) => a.status !== "offline");
|
|
99
143
|
}
|
|
100
144
|
destroy() {
|
|
101
145
|
this.bonjour.destroy();
|
package/dist/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,iBAAiB,CAAC;AAGxD,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC,MAAM,OAAO,SAAS;IACZ,OAAO,CAAU;IACjB,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IACzC,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC3C,SAAS,CAAS;IAClB,YAAY,CAA8B;IAC1C,WAAW,CAA0B;IAE7C,YAAY,SAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO;IACP,OAAO,CAAC,IAAY,EAAE,MAAgB;QACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,IAAI,EAAE,YAAY;YAClB,IAAI;YACJ,GAAG,EAAE;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -32,8 +32,12 @@ function daemonNeedsRestart(health) {
|
|
|
32
32
|
return true;
|
|
33
33
|
if ((config.relayUrl || "") !== (health.relayUrl || ""))
|
|
34
34
|
return true;
|
|
35
|
+
if (!!config.noLocal !== !!health.noLocal)
|
|
36
|
+
return true;
|
|
35
37
|
if (!!config.noMdns !== !!health.noMdns)
|
|
36
38
|
return true;
|
|
39
|
+
if (!!config.noRelay !== !!health.noRelay)
|
|
40
|
+
return true;
|
|
37
41
|
return false;
|
|
38
42
|
}
|
|
39
43
|
async function startDaemon() {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAavD,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiB,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,qBAAqB;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;YACrC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,kCAAkC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,IAAI,QAAQ;gBAAE,OAAO;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAG5C,CAAC;gBACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU;QACV,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CACX,uCAAuC,OAAO,GAAG,CAClD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,mCAAmC,CACpC,CAAC;YACF,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,sCAAsC,OAAO,GAAG,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AgentInfo, AgentPresence } from "./types.js";
|
|
2
|
+
export declare class LocalDiscovery {
|
|
3
|
+
private localName;
|
|
4
|
+
private filePath;
|
|
5
|
+
private agents;
|
|
6
|
+
private pollTimer;
|
|
7
|
+
private onAgentFound?;
|
|
8
|
+
private onAgentLost?;
|
|
9
|
+
constructor(localName: string);
|
|
10
|
+
register(port: number, apiPort: number, skills: string[], status?: AgentPresence): void;
|
|
11
|
+
updateStatus(status: AgentPresence): void;
|
|
12
|
+
unregister(): void;
|
|
13
|
+
browse(onFound?: (agent: AgentInfo) => void, onLost?: (name: string) => void): void;
|
|
14
|
+
private scan;
|
|
15
|
+
private isProcessAlive;
|
|
16
|
+
getAgents(): AgentInfo[];
|
|
17
|
+
getAgent(name: string): AgentInfo | undefined;
|
|
18
|
+
destroy(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { mkdirSync, writeFileSync, unlinkSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
const AGENTS_DIR = path.join(homedir(), ".agent-link", "agents");
|
|
5
|
+
export class LocalDiscovery {
|
|
6
|
+
localName;
|
|
7
|
+
filePath;
|
|
8
|
+
agents = new Map();
|
|
9
|
+
pollTimer = null;
|
|
10
|
+
onAgentFound;
|
|
11
|
+
onAgentLost;
|
|
12
|
+
constructor(localName) {
|
|
13
|
+
this.localName = localName;
|
|
14
|
+
mkdirSync(AGENTS_DIR, { recursive: true });
|
|
15
|
+
this.filePath = path.join(AGENTS_DIR, `${localName}.json`);
|
|
16
|
+
}
|
|
17
|
+
register(port, apiPort, skills, status = "online") {
|
|
18
|
+
const data = {
|
|
19
|
+
name: this.localName,
|
|
20
|
+
port,
|
|
21
|
+
apiPort,
|
|
22
|
+
pid: process.pid,
|
|
23
|
+
skills,
|
|
24
|
+
version: "1.0",
|
|
25
|
+
status,
|
|
26
|
+
};
|
|
27
|
+
writeFileSync(this.filePath, JSON.stringify(data, null, 2));
|
|
28
|
+
}
|
|
29
|
+
updateStatus(status) {
|
|
30
|
+
try {
|
|
31
|
+
const content = readFileSync(this.filePath, "utf-8");
|
|
32
|
+
const data = JSON.parse(content);
|
|
33
|
+
data.status = status;
|
|
34
|
+
writeFileSync(this.filePath, JSON.stringify(data, null, 2));
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// 文件不存在或读取失败
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
unregister() {
|
|
41
|
+
try {
|
|
42
|
+
unlinkSync(this.filePath);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// 忽略
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
browse(onFound, onLost) {
|
|
49
|
+
this.onAgentFound = onFound;
|
|
50
|
+
this.onAgentLost = onLost;
|
|
51
|
+
// 立即扫描一次
|
|
52
|
+
this.scan();
|
|
53
|
+
// 每 2 秒扫描
|
|
54
|
+
this.pollTimer = setInterval(() => this.scan(), 2000);
|
|
55
|
+
}
|
|
56
|
+
scan() {
|
|
57
|
+
const currentNames = new Set();
|
|
58
|
+
try {
|
|
59
|
+
const files = readdirSync(AGENTS_DIR).filter((f) => f.endsWith(".json"));
|
|
60
|
+
for (const file of files) {
|
|
61
|
+
try {
|
|
62
|
+
const content = readFileSync(path.join(AGENTS_DIR, file), "utf-8");
|
|
63
|
+
const data = JSON.parse(content);
|
|
64
|
+
// 跳过自己
|
|
65
|
+
if (data.name === this.localName)
|
|
66
|
+
continue;
|
|
67
|
+
// 检查进程是否存活
|
|
68
|
+
if (!this.isProcessAlive(data.pid)) {
|
|
69
|
+
// 清理死进程的文件
|
|
70
|
+
try {
|
|
71
|
+
unlinkSync(path.join(AGENTS_DIR, file));
|
|
72
|
+
}
|
|
73
|
+
catch { }
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
currentNames.add(data.name);
|
|
77
|
+
const agent = {
|
|
78
|
+
name: data.name,
|
|
79
|
+
host: "127.0.0.1",
|
|
80
|
+
port: data.port,
|
|
81
|
+
skills: data.skills,
|
|
82
|
+
version: data.version,
|
|
83
|
+
status: data.status,
|
|
84
|
+
};
|
|
85
|
+
const existing = this.agents.get(data.name);
|
|
86
|
+
if (!existing) {
|
|
87
|
+
this.agents.set(data.name, agent);
|
|
88
|
+
this.onAgentFound?.(agent);
|
|
89
|
+
}
|
|
90
|
+
else if (existing.status !== agent.status || existing.port !== agent.port) {
|
|
91
|
+
this.agents.set(data.name, agent);
|
|
92
|
+
this.onAgentFound?.(agent);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// 忽略无法解析的文件
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// 目录不存在
|
|
102
|
+
}
|
|
103
|
+
// 检查离线的
|
|
104
|
+
for (const name of this.agents.keys()) {
|
|
105
|
+
if (!currentNames.has(name)) {
|
|
106
|
+
this.agents.delete(name);
|
|
107
|
+
this.onAgentLost?.(name);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
isProcessAlive(pid) {
|
|
112
|
+
try {
|
|
113
|
+
process.kill(pid, 0);
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
getAgents() {
|
|
121
|
+
return [...this.agents.values()];
|
|
122
|
+
}
|
|
123
|
+
getAgent(name) {
|
|
124
|
+
return this.agents.get(name);
|
|
125
|
+
}
|
|
126
|
+
destroy() {
|
|
127
|
+
if (this.pollTimer) {
|
|
128
|
+
clearInterval(this.pollTimer);
|
|
129
|
+
}
|
|
130
|
+
this.unregister();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=local-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-discovery.js","sourceRoot":"","sources":["../src/local-discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-server.d.ts
CHANGED
|
@@ -3,8 +3,11 @@ export declare class AgentLinkMcpServer {
|
|
|
3
3
|
private daemonUrl;
|
|
4
4
|
private agentName;
|
|
5
5
|
private pendingTasks;
|
|
6
|
+
private hasShownPollTip;
|
|
6
7
|
constructor(agentName: string, daemonApiPort: number);
|
|
7
8
|
private daemonFetch;
|
|
9
|
+
private registerPrompts;
|
|
10
|
+
private checkMuted;
|
|
8
11
|
private registerTools;
|
|
9
12
|
private connectToEventStream;
|
|
10
13
|
private handleSSEEvent;
|