@daniel.stefan/metalink 1.3.13 → 1.3.15
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 +55 -0
- package/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/core/dist/index.d.ts +7 -7
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +7 -7
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/secrets/keyring.d.ts +1 -1
- package/packages/core/dist/secrets/keyring.d.ts.map +1 -1
- package/packages/core/dist/secrets/keyring.js +26 -9
- package/packages/core/dist/secrets/keyring.js.map +1 -1
- package/packages/core/dist/server/http.d.ts.map +1 -1
- package/packages/core/dist/server/http.js +3 -1
- package/packages/core/dist/server/http.js.map +1 -1
- package/packages/core/dist/server/manager.d.ts.map +1 -1
- package/packages/core/dist/server/manager.js +11 -3
- package/packages/core/dist/server/manager.js.map +1 -1
- package/packages/core/package.json +1 -1
- package/packages/dashboard/package.json +1 -1
- package/packages/shared/dist/version.d.ts +1 -1
- package/packages/shared/dist/version.d.ts.map +1 -1
- package/packages/shared/dist/version.js +1 -1
- package/packages/shared/dist/version.js.map +1 -1
- package/packages/shared/package.json +1 -1
package/README.md
CHANGED
|
@@ -85,6 +85,61 @@ open http://localhost:3000
|
|
|
85
85
|
| `metalink tool list <server>` | List tools for a specific server |
|
|
86
86
|
| `metalink config edit` | Edit configuration |
|
|
87
87
|
|
|
88
|
+
|
|
89
|
+
## Monitoring & Health Checks
|
|
90
|
+
|
|
91
|
+
### Programmatic Health Check
|
|
92
|
+
|
|
93
|
+
For monitoring systems and automated health checks:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
curl http://localhost:6655/api/health
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Response format:**
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"status": "healthy|degraded|unhealthy",
|
|
103
|
+
"version": "1.x.x",
|
|
104
|
+
"uptime_seconds": 12345,
|
|
105
|
+
"checks": {
|
|
106
|
+
"daemon": {"status": "healthy"},
|
|
107
|
+
"base_servers": {
|
|
108
|
+
"memory": {
|
|
109
|
+
"status": "healthy",
|
|
110
|
+
"tools_count": 9
|
|
111
|
+
},
|
|
112
|
+
"vault": {
|
|
113
|
+
"status": "unhealthy",
|
|
114
|
+
"error": "Server not running"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**HTTP Status Codes:**
|
|
122
|
+
- **200 OK** - Daemon is healthy (all servers) or degraded (some servers down)
|
|
123
|
+
- **503 Service Unavailable** - Daemon is unhealthy (all servers down or critical error)
|
|
124
|
+
|
|
125
|
+
**Exit Codes:**
|
|
126
|
+
```bash
|
|
127
|
+
# Returns exit code 0 if healthy (200 OK)
|
|
128
|
+
# Returns non-zero exit code if unhealthy (503)
|
|
129
|
+
curl -f http://localhost:6655/api/health
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Browser Access to Dashboard
|
|
133
|
+
|
|
134
|
+
For manual access to the web dashboard:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
http://localhost:6655/ # HTML dashboard
|
|
138
|
+
http://localhost:6655/health # HTML dashboard (SPA fallback)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Note:** Use `/api/health` for JSON (monitoring), `/` or `/health` for HTML (browsers).
|
|
142
|
+
|
|
88
143
|
## Configuration
|
|
89
144
|
|
|
90
145
|
MetaLink stores configuration in `~/.config/metalink/`:
|
package/package.json
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* MetaLink Core Server
|
|
3
3
|
* Provides HTTP API, server management, and plugin system
|
|
4
4
|
*/
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export { CircuitBreaker, CircuitBreakerManager, CircuitState } from
|
|
8
|
-
export type { CircuitBreakerConfig, CircuitBreakerMetrics } from
|
|
9
|
-
export * from
|
|
10
|
-
export * from
|
|
11
|
-
export declare const version = "v1.
|
|
5
|
+
export * from "./config/index.js";
|
|
6
|
+
export * from "./server/index.js";
|
|
7
|
+
export { CircuitBreaker, CircuitBreakerManager, CircuitState, } from "./server/circuit-breaker.js";
|
|
8
|
+
export type { CircuitBreakerConfig, CircuitBreakerMetrics, } from "./server/circuit-breaker.js";
|
|
9
|
+
export * from "./secrets/keyring.js";
|
|
10
|
+
export * from "./logging/index.js";
|
|
11
|
+
export declare const version = "v1.3.14";
|
|
12
12
|
export declare const name = "@metalink/core";
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,oBAAoB,CAAC;AASnC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,IAAI,mBAAmB,CAAC"}
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* Provides HTTP API, server management, and plugin system
|
|
4
4
|
*/
|
|
5
5
|
// Configuration exports
|
|
6
|
-
export * from
|
|
6
|
+
export * from "./config/index.js";
|
|
7
7
|
// Server exports
|
|
8
|
-
export * from
|
|
8
|
+
export * from "./server/index.js";
|
|
9
9
|
// Circuit breaker exports
|
|
10
|
-
export { CircuitBreaker, CircuitBreakerManager, CircuitState } from
|
|
10
|
+
export { CircuitBreaker, CircuitBreakerManager, CircuitState, } from "./server/circuit-breaker.js";
|
|
11
11
|
// Secrets exports
|
|
12
|
-
export * from
|
|
12
|
+
export * from "./secrets/keyring.js";
|
|
13
13
|
// Logging exports
|
|
14
|
-
export * from
|
|
14
|
+
export * from "./logging/index.js";
|
|
15
15
|
// Future exports
|
|
16
16
|
// export * from './plugins/index.js'; // Plugin system
|
|
17
17
|
// export * from './tools/index.js'; // Tool execution
|
|
18
18
|
// export * from './metrics/index.js'; // Metrics collection
|
|
19
19
|
// Version info - DECLARATIVE, managed by sync-version script from packages/shared/version.ts
|
|
20
20
|
// Single source of truth: packages/shared/version.ts
|
|
21
|
-
export const version =
|
|
22
|
-
export const name =
|
|
21
|
+
export const version = "v1.3.14";
|
|
22
|
+
export const name = "@metalink/core";
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAwB;AACxB,cAAc,mBAAmB,CAAC;AAElC,iBAAiB;AACjB,cAAc,mBAAmB,CAAC;AAElC,0BAA0B;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAwB;AACxB,cAAc,mBAAmB,CAAC;AAElC,iBAAiB;AACjB,cAAc,mBAAmB,CAAC;AAElC,0BAA0B;AAC1B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,6BAA6B,CAAC;AAMrC,kBAAkB;AAClB,cAAc,sBAAsB,CAAC;AAErC,kBAAkB;AAClB,cAAc,oBAAoB,CAAC;AAEnC,iBAAiB;AACjB,2DAA2D;AAC3D,4DAA4D;AAC5D,gEAAgE;AAEhE,6FAA6F;AAC7F,qDAAqD;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,gBAAgB,CAAC"}
|
|
@@ -36,7 +36,7 @@ export declare class EnvProvider implements SecretProvider {
|
|
|
36
36
|
*/
|
|
37
37
|
export declare class SecretsManager {
|
|
38
38
|
private provider;
|
|
39
|
-
constructor(type?:
|
|
39
|
+
constructor(type?: "keyring" | "env" | "vault", service?: string);
|
|
40
40
|
getSecret(key: string): Promise<string | undefined>;
|
|
41
41
|
setSecret(key: string, value: string): Promise<void>;
|
|
42
42
|
deleteSecret(key: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyring.d.ts","sourceRoot":"","sources":["../../src/secrets/keyring.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"keyring.d.ts","sourceRoot":"","sources":["../../src/secrets/keyring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,cAAc;IACxC,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE,MAAmB;IAE1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYrC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAKhC;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,cAAc;IAChD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAsB;;IAY9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOrC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAGhC;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiB;gBAErB,IAAI,GAAE,SAAS,GAAG,KAAK,GAAG,OAAe,EAAE,OAAO,CAAC,EAAE,MAAM;IAQjE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAInD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3C,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAItC;;;OAGG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvD;;OAEG;IACG,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAyBxD"}
|
|
@@ -2,15 +2,26 @@
|
|
|
2
2
|
* OS Keyring Secrets Management
|
|
3
3
|
* Secure secret storage using native OS keyrings
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
// Keytar is optional - only load when needed
|
|
6
|
+
let keytar;
|
|
7
|
+
try {
|
|
8
|
+
keytar = require("keytar");
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
// Keytar not available (e.g., in Docker without libsecret)
|
|
12
|
+
console.warn("[Secrets] keytar module not available, using env provider only");
|
|
13
|
+
}
|
|
6
14
|
/**
|
|
7
15
|
* Keyring-based secret provider (macOS, Windows, Linux)
|
|
8
16
|
*/
|
|
9
17
|
export class KeyringProvider {
|
|
10
|
-
constructor(service =
|
|
18
|
+
constructor(service = "metalink") {
|
|
11
19
|
this.service = service;
|
|
12
20
|
}
|
|
13
21
|
async get(key) {
|
|
22
|
+
if (!keytar) {
|
|
23
|
+
throw new Error("keytar not available - cannot use keyring provider");
|
|
24
|
+
}
|
|
14
25
|
try {
|
|
15
26
|
const credential = await keytar.getPassword(this.service, key);
|
|
16
27
|
return credential || undefined;
|
|
@@ -21,6 +32,9 @@ export class KeyringProvider {
|
|
|
21
32
|
}
|
|
22
33
|
}
|
|
23
34
|
async set(key, value) {
|
|
35
|
+
if (!keytar) {
|
|
36
|
+
throw new Error("keytar not available - cannot use keyring provider");
|
|
37
|
+
}
|
|
24
38
|
try {
|
|
25
39
|
await keytar.setPassword(this.service, key, value);
|
|
26
40
|
}
|
|
@@ -29,6 +43,9 @@ export class KeyringProvider {
|
|
|
29
43
|
}
|
|
30
44
|
}
|
|
31
45
|
async delete(key) {
|
|
46
|
+
if (!keytar) {
|
|
47
|
+
throw new Error("keytar not available - cannot use keyring provider");
|
|
48
|
+
}
|
|
32
49
|
try {
|
|
33
50
|
return await keytar.deletePassword(this.service, key);
|
|
34
51
|
}
|
|
@@ -49,12 +66,12 @@ export class KeyringProvider {
|
|
|
49
66
|
export class EnvProvider {
|
|
50
67
|
constructor() {
|
|
51
68
|
this.secrets = new Map();
|
|
52
|
-
this.prefix =
|
|
69
|
+
this.prefix = "METALINK_SECRET_";
|
|
53
70
|
// Load existing env vars
|
|
54
71
|
for (const [key, value] of Object.entries(process.env)) {
|
|
55
72
|
if (key.startsWith(this.prefix)) {
|
|
56
73
|
const secretKey = key.slice(this.prefix.length);
|
|
57
|
-
this.secrets.set(secretKey, value ||
|
|
74
|
+
this.secrets.set(secretKey, value || "");
|
|
58
75
|
}
|
|
59
76
|
}
|
|
60
77
|
}
|
|
@@ -79,8 +96,8 @@ export class EnvProvider {
|
|
|
79
96
|
* Secrets Manager with provider selection
|
|
80
97
|
*/
|
|
81
98
|
export class SecretsManager {
|
|
82
|
-
constructor(type =
|
|
83
|
-
if (type ===
|
|
99
|
+
constructor(type = "env", service) {
|
|
100
|
+
if (type === "keyring") {
|
|
84
101
|
this.provider = new KeyringProvider(service);
|
|
85
102
|
}
|
|
86
103
|
else {
|
|
@@ -119,13 +136,13 @@ export class SecretsManager {
|
|
|
119
136
|
* Interpolate all environment variables in config
|
|
120
137
|
*/
|
|
121
138
|
async interpolateConfig(obj) {
|
|
122
|
-
if (typeof obj ===
|
|
139
|
+
if (typeof obj === "string") {
|
|
123
140
|
// First do env var interpolation, then secrets
|
|
124
|
-
let result = obj.replace(/\$\{([^}:]+)\}/g, (_, key) => process.env[key] ||
|
|
141
|
+
let result = obj.replace(/\$\{([^}:]+)\}/g, (_, key) => process.env[key] || "");
|
|
125
142
|
result = await this.interpolateSecrets(result);
|
|
126
143
|
return result;
|
|
127
144
|
}
|
|
128
|
-
if (typeof obj ===
|
|
145
|
+
if (typeof obj === "object" && obj !== null) {
|
|
129
146
|
if (Array.isArray(obj)) {
|
|
130
147
|
return Promise.all(obj.map((item) => this.interpolateConfig(item)));
|
|
131
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyring.js","sourceRoot":"","sources":["../../src/secrets/keyring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"keyring.js","sourceRoot":"","sources":["../../src/secrets/keyring.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAEL,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAsI7C,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAA4B;IAGhD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,iBAAiB,CAAoB;IAG7C,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,sBAAsB,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAG5C,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAO;IAI9C,OAAO,CAAC,wBAAwB,CAGlB;IACd,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAO;IAIjD,OAAO,CAAC,oBAAoB,CAGd;IACd,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAS;IACxD,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAO;IAGtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;gBAEpC,YAAY,EAAE,YAAY;IAgDtC;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA4EtB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+JvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -456,8 +456,10 @@ export class HttpServer {
|
|
|
456
456
|
api.post("/safety/reset", this.resetSafetyRules.bind(this));
|
|
457
457
|
api.post("/safety/import", this.importSafetyRules.bind(this));
|
|
458
458
|
this.app.use("/api/v1", api);
|
|
459
|
-
// Also register /api/metrics
|
|
459
|
+
// Also register /api/metrics and /api/health endpoints (without /v1 prefix)
|
|
460
|
+
// for backward compatibility and programmatic health checks
|
|
460
461
|
this.app.get("/api/metrics", this.getMetrics.bind(this));
|
|
462
|
+
this.app.get("/api/health", this.healthCheck.bind(this));
|
|
461
463
|
// MCP endpoint (JSON-RPC over HTTP) - Primary endpoint per MCP 2025-06-18 spec
|
|
462
464
|
// GET /mcp for streaming/SSE connections (Claude Code HTTP transport)
|
|
463
465
|
this.app.get("/mcp", this.handleMcpRequest.bind(this));
|