@wings006/agent-link 0.1.2 → 0.1.4

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/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: (service.txt?.skills || "")
42
- .split(",")
43
- .filter(Boolean),
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
- // 添加中继发现的 Agent
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();
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
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":"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"}
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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"}
@@ -5,6 +5,7 @@ export declare class AgentLinkMcpServer {
5
5
  private pendingTasks;
6
6
  constructor(agentName: string, daemonApiPort: number);
7
7
  private daemonFetch;
8
+ private checkMuted;
8
9
  private registerTools;
9
10
  private connectToEventStream;
10
11
  private handleSSEEvent;