@claude-flow/plugin-agent-federation 1.0.0-alpha.13 → 1.0.0-alpha.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.
Files changed (32) hide show
  1. package/dist/application/federation-breaker-service.d.ts +11 -1
  2. package/dist/application/federation-breaker-service.d.ts.map +1 -1
  3. package/dist/application/federation-breaker-service.js +12 -10
  4. package/dist/application/federation-breaker-service.js.map +1 -1
  5. package/dist/application/federation-coordinator.d.ts +32 -1
  6. package/dist/application/federation-coordinator.d.ts.map +1 -1
  7. package/dist/application/federation-coordinator.js +52 -0
  8. package/dist/application/federation-coordinator.js.map +1 -1
  9. package/dist/domain/services/discovery-service.d.ts +8 -0
  10. package/dist/domain/services/discovery-service.d.ts.map +1 -1
  11. package/dist/domain/services/discovery-service.js.map +1 -1
  12. package/dist/domain/services/wg-firewall-service.d.ts +71 -0
  13. package/dist/domain/services/wg-firewall-service.d.ts.map +1 -0
  14. package/dist/domain/services/wg-firewall-service.js +194 -0
  15. package/dist/domain/services/wg-firewall-service.js.map +1 -0
  16. package/dist/domain/services/wg-mesh-service.d.ts +156 -0
  17. package/dist/domain/services/wg-mesh-service.d.ts.map +1 -0
  18. package/dist/domain/services/wg-mesh-service.js +292 -0
  19. package/dist/domain/services/wg-mesh-service.js.map +1 -0
  20. package/dist/domain/services/wg-witness-service.d.ts +98 -0
  21. package/dist/domain/services/wg-witness-service.d.ts.map +1 -0
  22. package/dist/domain/services/wg-witness-service.js +122 -0
  23. package/dist/domain/services/wg-witness-service.js.map +1 -0
  24. package/dist/domain/value-objects/wg-config.d.ts +70 -0
  25. package/dist/domain/value-objects/wg-config.d.ts.map +1 -0
  26. package/dist/domain/value-objects/wg-config.js +104 -0
  27. package/dist/domain/value-objects/wg-config.js.map +1 -0
  28. package/dist/mcp-tools.d.ts +3 -1
  29. package/dist/mcp-tools.d.ts.map +1 -1
  30. package/dist/mcp-tools.js +91 -1
  31. package/dist/mcp-tools.js.map +1 -1
  32. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wg-mesh-service.js","sourceRoot":"","sources":["../../../src/domain/services/wg-mesh-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * ADR-111 Phase 5 — Witness attestation chain for WG mesh mutations.
3
+ *
4
+ * Every coordination change (peer added/suspended/evicted/reactivated,
5
+ * keypair rotated) appends a signed entry to an append-only log
6
+ * `.claude-flow/federation/wg-changes.log`. The signature is over a
7
+ * canonical JSON encoding of the entry's content fields, using the
8
+ * operator's federation Ed25519 key — the same identity that signs
9
+ * federation manifests, so anyone who already trusts the manifest chain
10
+ * automatically trusts the WG change chain.
11
+ *
12
+ * Append-only via O_APPEND open + entries chained by prevHash (sha256 of
13
+ * the previous entry's canonical bytes). Tampering with history requires
14
+ * forging a chain of signatures with the operator's key.
15
+ *
16
+ * The periodic ruflo witness regen (plugins/ruflo-core/scripts/witness/)
17
+ * includes wg-changes.log as one of its watched artifacts (operator wires
18
+ * this via witness-fixes.json).
19
+ *
20
+ * Pure service: emits the canonical bytes and the signature to write.
21
+ * Caller does the I/O so this stays unit-testable without fs mocks.
22
+ */
23
+ import type { WgCommand } from './wg-mesh-service.js';
24
+ export type WgWitnessEventType = 'peer-added' | 'peer-removed-suspended' | 'peer-restored' | 'peer-evicted' | 'key-rotated' | 'interface-config-applied';
25
+ /**
26
+ * Canonical fields of a witness entry. The hash + signature are computed
27
+ * over these in a stable JSON encoding (sorted keys, no whitespace).
28
+ */
29
+ export interface WgWitnessContent {
30
+ readonly version: '1';
31
+ readonly type: WgWitnessEventType;
32
+ readonly timestamp: string;
33
+ readonly nodeId: string;
34
+ /** Public key of the affected peer, if any. */
35
+ readonly peerPublicKey?: string;
36
+ /** Mesh IP affected, if any. */
37
+ readonly meshIP?: string;
38
+ /** wg command that was emitted, if any. */
39
+ readonly wgCommand?: string;
40
+ /** Human-readable rationale for the audit log. */
41
+ readonly rationale: string;
42
+ /** Hash of the previous entry in the chain (sha256 hex), or empty for the genesis entry. */
43
+ readonly prevHash: string;
44
+ }
45
+ /**
46
+ * Full witness entry as it appears on disk — content + the operator's
47
+ * Ed25519 signature over the canonical encoding of content.
48
+ */
49
+ export interface WgWitnessEntry {
50
+ readonly content: WgWitnessContent;
51
+ readonly hash: string;
52
+ readonly signature: string;
53
+ }
54
+ export interface WgWitnessSigner {
55
+ /** Returns an Ed25519 signature (base64) over the given canonical bytes. */
56
+ sign(bytes: Buffer): Promise<string>;
57
+ }
58
+ /**
59
+ * Stable JSON serialization for hashing/signing. Keys are sorted; no
60
+ * whitespace; undefined fields omitted. Same shape on every host so
61
+ * cross-host verifiers produce identical hashes.
62
+ */
63
+ export declare function canonicalizeContent(content: WgWitnessContent): Buffer;
64
+ export declare function hashContent(content: WgWitnessContent): string;
65
+ export declare class WgWitnessService {
66
+ private readonly nodeId;
67
+ private readonly signer;
68
+ private lastHash;
69
+ constructor(nodeId: string, signer: WgWitnessSigner);
70
+ /**
71
+ * Override the previous-hash pointer (used when resuming from an existing
72
+ * log on disk). Caller reads the last entry from `wg-changes.log` and
73
+ * passes its `hash` here before appending more.
74
+ */
75
+ setLastHash(hash: string): void;
76
+ /** Build + sign an entry. Caller is responsible for the actual append-write. */
77
+ build(type: WgWitnessEventType, fields: Omit<WgWitnessContent, 'version' | 'type' | 'timestamp' | 'nodeId' | 'prevHash'>): Promise<WgWitnessEntry>;
78
+ /**
79
+ * Convenience: take a WgCommand emitted by WgMeshService Phase 2/3 and
80
+ * produce a witness entry of the right type. Maps verb → eventType.
81
+ */
82
+ attestWgCommand(cmd: WgCommand, meshIP?: string): Promise<WgWitnessEntry>;
83
+ }
84
+ /**
85
+ * Verify a single entry's signature + hash. Caller verifies the chain by
86
+ * iterating entries and confirming each entry's `prevHash` equals the
87
+ * preceding entry's `hash`.
88
+ */
89
+ export declare function verifyWitnessEntry(entry: WgWitnessEntry, verify: (bytes: Buffer, signature: string) => Promise<boolean>): Promise<boolean>;
90
+ /**
91
+ * Verify a full chain — every entry valid + chain link unbroken.
92
+ */
93
+ export declare function verifyWitnessChain(entries: readonly WgWitnessEntry[], verify: (bytes: Buffer, signature: string) => Promise<boolean>): Promise<{
94
+ ok: boolean;
95
+ failedAt?: number;
96
+ reason?: string;
97
+ }>;
98
+ //# sourceMappingURL=wg-witness-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wg-witness-service.d.ts","sourceRoot":"","sources":["../../../src/domain/services/wg-witness-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,wBAAwB,GACxB,eAAe,GACf,cAAc,GACd,aAAa,GACb,0BAA0B,CAAC;AAE/B;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,gCAAgC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAOrE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAE7D;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAc;gBAElB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IAKnD;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B,gFAAgF;IAC1E,KAAK,CACT,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC,GACvF,OAAO,CAAC,cAAc,CAAC;IAgB1B;;;OAGG;IACG,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAchF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7D,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7D,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAc9D"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * ADR-111 Phase 5 — Witness attestation chain for WG mesh mutations.
3
+ *
4
+ * Every coordination change (peer added/suspended/evicted/reactivated,
5
+ * keypair rotated) appends a signed entry to an append-only log
6
+ * `.claude-flow/federation/wg-changes.log`. The signature is over a
7
+ * canonical JSON encoding of the entry's content fields, using the
8
+ * operator's federation Ed25519 key — the same identity that signs
9
+ * federation manifests, so anyone who already trusts the manifest chain
10
+ * automatically trusts the WG change chain.
11
+ *
12
+ * Append-only via O_APPEND open + entries chained by prevHash (sha256 of
13
+ * the previous entry's canonical bytes). Tampering with history requires
14
+ * forging a chain of signatures with the operator's key.
15
+ *
16
+ * The periodic ruflo witness regen (plugins/ruflo-core/scripts/witness/)
17
+ * includes wg-changes.log as one of its watched artifacts (operator wires
18
+ * this via witness-fixes.json).
19
+ *
20
+ * Pure service: emits the canonical bytes and the signature to write.
21
+ * Caller does the I/O so this stays unit-testable without fs mocks.
22
+ */
23
+ import { createHash } from 'node:crypto';
24
+ /**
25
+ * Stable JSON serialization for hashing/signing. Keys are sorted; no
26
+ * whitespace; undefined fields omitted. Same shape on every host so
27
+ * cross-host verifiers produce identical hashes.
28
+ */
29
+ export function canonicalizeContent(content) {
30
+ const keys = Object.keys(content).sort();
31
+ const ordered = {};
32
+ for (const k of keys) {
33
+ if (content[k] !== undefined)
34
+ ordered[k] = content[k];
35
+ }
36
+ return Buffer.from(JSON.stringify(ordered), 'utf-8');
37
+ }
38
+ export function hashContent(content) {
39
+ return createHash('sha256').update(canonicalizeContent(content)).digest('hex');
40
+ }
41
+ export class WgWitnessService {
42
+ nodeId;
43
+ signer;
44
+ lastHash = '';
45
+ constructor(nodeId, signer) {
46
+ this.nodeId = nodeId;
47
+ this.signer = signer;
48
+ }
49
+ /**
50
+ * Override the previous-hash pointer (used when resuming from an existing
51
+ * log on disk). Caller reads the last entry from `wg-changes.log` and
52
+ * passes its `hash` here before appending more.
53
+ */
54
+ setLastHash(hash) {
55
+ this.lastHash = hash;
56
+ }
57
+ /** Build + sign an entry. Caller is responsible for the actual append-write. */
58
+ async build(type, fields) {
59
+ const content = {
60
+ version: '1',
61
+ type,
62
+ timestamp: new Date().toISOString(),
63
+ nodeId: this.nodeId,
64
+ prevHash: this.lastHash,
65
+ ...fields,
66
+ };
67
+ const canonical = canonicalizeContent(content);
68
+ const hash = createHash('sha256').update(canonical).digest('hex');
69
+ const signature = await this.signer.sign(canonical);
70
+ this.lastHash = hash;
71
+ return { content, hash, signature };
72
+ }
73
+ /**
74
+ * Convenience: take a WgCommand emitted by WgMeshService Phase 2/3 and
75
+ * produce a witness entry of the right type. Maps verb → eventType.
76
+ */
77
+ async attestWgCommand(cmd, meshIP) {
78
+ const typeMap = {
79
+ 'add-peer': 'peer-added',
80
+ 'set-allowed-ips': 'peer-restored',
81
+ 'remove-allowed-ips': 'peer-removed-suspended',
82
+ 'remove-peer': 'peer-evicted',
83
+ };
84
+ return this.build(typeMap[cmd.verb], {
85
+ peerPublicKey: cmd.peerPublicKey,
86
+ meshIP,
87
+ wgCommand: cmd.cmd,
88
+ rationale: cmd.rationale,
89
+ });
90
+ }
91
+ }
92
+ /**
93
+ * Verify a single entry's signature + hash. Caller verifies the chain by
94
+ * iterating entries and confirming each entry's `prevHash` equals the
95
+ * preceding entry's `hash`.
96
+ */
97
+ export async function verifyWitnessEntry(entry, verify) {
98
+ const canonical = canonicalizeContent(entry.content);
99
+ const expectedHash = createHash('sha256').update(canonical).digest('hex');
100
+ if (entry.hash !== expectedHash)
101
+ return false;
102
+ return verify(canonical, entry.signature);
103
+ }
104
+ /**
105
+ * Verify a full chain — every entry valid + chain link unbroken.
106
+ */
107
+ export async function verifyWitnessChain(entries, verify) {
108
+ let prevHash = '';
109
+ for (let i = 0; i < entries.length; i++) {
110
+ const e = entries[i];
111
+ if (e.content.prevHash !== prevHash) {
112
+ return { ok: false, failedAt: i, reason: 'broken-chain-link' };
113
+ }
114
+ const validEntry = await verifyWitnessEntry(e, verify);
115
+ if (!validEntry) {
116
+ return { ok: false, failedAt: i, reason: 'invalid-signature-or-hash' };
117
+ }
118
+ prevHash = e.hash;
119
+ }
120
+ return { ok: true };
121
+ }
122
+ //# sourceMappingURL=wg-witness-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wg-witness-service.js","sourceRoot":"","sources":["../../../src/domain/services/wg-witness-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * ADR-111 Phase 1 — WireGuard configuration value objects.
3
+ *
4
+ * Pure types + deterministic helpers. No I/O, no shell calls. Used by
5
+ * WgMeshService (Phase 2) and surfaced in FederationManifest (Phase 1) so
6
+ * peers can publish their WG identity inside the same Ed25519-signed
7
+ * manifest that already carries their federation identity.
8
+ */
9
+ /**
10
+ * The WG section of a FederationManifest. Optional — present only when
11
+ * the local node has opted in via `config.wgMesh: true`.
12
+ *
13
+ * - publicKey is the X25519 public key in base64 (32-byte raw → 44 chars
14
+ * including '=' padding), exactly the format `wg-quick`/`wg setconf`
15
+ * accept. Never include the private key in the manifest.
16
+ * - endpoint is `host:port` reachable on UDP. May be a hostname (resolved
17
+ * by the consumer) or an IPv4/v6 literal. The port is WireGuard's, not
18
+ * federation's WS port — usually 51820.
19
+ * - meshIP is the assigned /32 inside the federation mesh subnet
20
+ * (10.50.0.0/16 by default). Stored as `a.b.c.d/32`.
21
+ */
22
+ export interface WgManifestSection {
23
+ readonly publicKey: string;
24
+ readonly endpoint: string;
25
+ readonly meshIP: string;
26
+ }
27
+ /**
28
+ * A locally-generated WG keypair. Kept entirely off the wire — `publicKey`
29
+ * is what gets published in the manifest; `privateKey` stays on disk
30
+ * (mode 0600) and in this in-memory object.
31
+ */
32
+ export interface WgLocalKey {
33
+ readonly publicKey: string;
34
+ readonly privateKey: string;
35
+ readonly createdAt: string;
36
+ }
37
+ /**
38
+ * Default federation mesh subnet. RFC1918 private space outside the
39
+ * common LAN/k8s ranges and Tailscale's 100.64.0.0/10. Documented in
40
+ * the ADR. Birthday-collision probability stays under 1% up to ~36
41
+ * peers and under 50% at ~302 peers — within the v1 ≤50-peer target.
42
+ */
43
+ export declare const DEFAULT_MESH_SUBNET = "10.50.0.0/16";
44
+ /**
45
+ * Generate an X25519 keypair in the format WireGuard accepts.
46
+ *
47
+ * WireGuard keys are 32 raw bytes encoded base64 (44 chars with '='
48
+ * padding). Node's `generateKeyPairSync('x25519')` returns PKCS8/SPKI
49
+ * DER envelopes — we extract the trailing 32 bytes which are the raw
50
+ * key material (the DER prefix is constant for X25519).
51
+ *
52
+ * No new dependencies: Node 18+ has X25519 support in core crypto.
53
+ */
54
+ export declare function generateWgKeyPair(): WgLocalKey;
55
+ /**
56
+ * Derive a deterministic mesh IP for `nodeId` inside `subnet`.
57
+ *
58
+ * Strategy: sha256(nodeId) → top bytes interpreted as host portion of the
59
+ * subnet, clamped to avoid the network address (.0) and broadcast (.255)
60
+ * of any /24 inside the subnet. This is collision-resistant in the
61
+ * birthday-paradox sense — see ADR for thresholds.
62
+ *
63
+ * `usedIPs` (when provided) gives previously-assigned IPs in the mesh.
64
+ * If the derived IP is already taken, the function probes `nodeId + '\x00'`,
65
+ * `nodeId + '\x01'`, … until a free slot is found. Bounded to 1024 probes;
66
+ * exceeding that means the subnet is functionally exhausted and the caller
67
+ * should jump to a larger range (see ADR `10.50.0.0/12` recommendation).
68
+ */
69
+ export declare function deriveMeshIP(nodeId: string, subnet?: string, usedIPs?: ReadonlySet<string>): string;
70
+ //# sourceMappingURL=wg-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wg-config.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/wg-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CAgB9C;AAuBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAA4B,EACpC,OAAO,GAAE,WAAW,CAAC,MAAM,CAAa,GACvC,MAAM,CAsBR"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * ADR-111 Phase 1 — WireGuard configuration value objects.
3
+ *
4
+ * Pure types + deterministic helpers. No I/O, no shell calls. Used by
5
+ * WgMeshService (Phase 2) and surfaced in FederationManifest (Phase 1) so
6
+ * peers can publish their WG identity inside the same Ed25519-signed
7
+ * manifest that already carries their federation identity.
8
+ */
9
+ import { createHash, generateKeyPairSync } from 'node:crypto';
10
+ /**
11
+ * Default federation mesh subnet. RFC1918 private space outside the
12
+ * common LAN/k8s ranges and Tailscale's 100.64.0.0/10. Documented in
13
+ * the ADR. Birthday-collision probability stays under 1% up to ~36
14
+ * peers and under 50% at ~302 peers — within the v1 ≤50-peer target.
15
+ */
16
+ export const DEFAULT_MESH_SUBNET = '10.50.0.0/16';
17
+ /**
18
+ * Generate an X25519 keypair in the format WireGuard accepts.
19
+ *
20
+ * WireGuard keys are 32 raw bytes encoded base64 (44 chars with '='
21
+ * padding). Node's `generateKeyPairSync('x25519')` returns PKCS8/SPKI
22
+ * DER envelopes — we extract the trailing 32 bytes which are the raw
23
+ * key material (the DER prefix is constant for X25519).
24
+ *
25
+ * No new dependencies: Node 18+ has X25519 support in core crypto.
26
+ */
27
+ export function generateWgKeyPair() {
28
+ const { publicKey, privateKey } = generateKeyPairSync('x25519');
29
+ const privDer = privateKey.export({ format: 'der', type: 'pkcs8' });
30
+ const pubDer = publicKey.export({ format: 'der', type: 'spki' });
31
+ // The PKCS8 prefix for X25519 is 16 bytes, leaving 32 raw bytes.
32
+ // The SPKI prefix for X25519 is 12 bytes, leaving 32 raw bytes.
33
+ const privRaw = privDer.subarray(privDer.length - 32);
34
+ const pubRaw = pubDer.subarray(pubDer.length - 32);
35
+ if (privRaw.length !== 32 || pubRaw.length !== 32) {
36
+ throw new Error(`generateWgKeyPair: unexpected DER layout (priv=${privRaw.length}B pub=${pubRaw.length}B)`);
37
+ }
38
+ return {
39
+ publicKey: pubRaw.toString('base64'),
40
+ privateKey: privRaw.toString('base64'),
41
+ createdAt: new Date().toISOString(),
42
+ };
43
+ }
44
+ /**
45
+ * Parse a `a.b.c.d/M` CIDR into a numeric base + mask-prefix-length.
46
+ * Limited to IPv4 — v1 of ADR-111 is IPv4-only inside the mesh.
47
+ */
48
+ function parseCidr(cidr) {
49
+ const m = cidr.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\/(\d{1,2})$/);
50
+ if (!m)
51
+ throw new Error(`invalid CIDR: ${cidr}`);
52
+ const [, a, b, c, d, p] = m;
53
+ const octets = [a, b, c, d].map(Number);
54
+ const prefix = Number(p);
55
+ if (octets.some(o => o < 0 || o > 255) || prefix < 0 || prefix > 32) {
56
+ throw new Error(`out-of-range CIDR: ${cidr}`);
57
+ }
58
+ const base = ((octets[0] << 24) | (octets[1] << 16) | (octets[2] << 8) | octets[3]) >>> 0;
59
+ return { base, prefix };
60
+ }
61
+ function ipToString(n) {
62
+ return `${(n >>> 24) & 0xff}.${(n >>> 16) & 0xff}.${(n >>> 8) & 0xff}.${n & 0xff}`;
63
+ }
64
+ /**
65
+ * Derive a deterministic mesh IP for `nodeId` inside `subnet`.
66
+ *
67
+ * Strategy: sha256(nodeId) → top bytes interpreted as host portion of the
68
+ * subnet, clamped to avoid the network address (.0) and broadcast (.255)
69
+ * of any /24 inside the subnet. This is collision-resistant in the
70
+ * birthday-paradox sense — see ADR for thresholds.
71
+ *
72
+ * `usedIPs` (when provided) gives previously-assigned IPs in the mesh.
73
+ * If the derived IP is already taken, the function probes `nodeId + '\x00'`,
74
+ * `nodeId + '\x01'`, … until a free slot is found. Bounded to 1024 probes;
75
+ * exceeding that means the subnet is functionally exhausted and the caller
76
+ * should jump to a larger range (see ADR `10.50.0.0/12` recommendation).
77
+ */
78
+ export function deriveMeshIP(nodeId, subnet = DEFAULT_MESH_SUBNET, usedIPs = new Set()) {
79
+ const { base, prefix } = parseCidr(subnet);
80
+ if (prefix > 30)
81
+ throw new Error(`subnet ${subnet} too small for mesh IPs`);
82
+ const hostBits = 32 - prefix;
83
+ const hostMask = hostBits >= 32 ? 0xffffffff : ((1 << hostBits) - 1) >>> 0;
84
+ const networkBase = (base & ~hostMask) >>> 0;
85
+ for (let probe = 0; probe < 1024; probe++) {
86
+ const input = probe === 0 ? nodeId : `${nodeId}\x00${probe}`;
87
+ const hash = createHash('sha256').update(input).digest();
88
+ // Use the first 4 bytes as the host portion.
89
+ const hashHost = ((hash[0] << 24) | (hash[1] << 16) | (hash[2] << 8) | hash[3]) >>> 0;
90
+ let candidate = (networkBase | (hashHost & hostMask)) >>> 0;
91
+ const lastOctet = candidate & 0xff;
92
+ // Avoid .0 (network) and .255 (broadcast) of each /24 slice. Cheap
93
+ // clamp: bump to .1 if landing on .0, or .254 if landing on .255.
94
+ if (lastOctet === 0)
95
+ candidate = (candidate | 1) >>> 0;
96
+ else if (lastOctet === 255)
97
+ candidate = (candidate & ~1) >>> 0;
98
+ const ip = `${ipToString(candidate)}/32`;
99
+ if (!usedIPs.has(ip))
100
+ return ip;
101
+ }
102
+ throw new Error(`deriveMeshIP: subnet ${subnet} exhausted after 1024 probes for ${nodeId}; jump to a wider range`);
103
+ }
104
+ //# sourceMappingURL=wg-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wg-config.js","sourceRoot":"","sources":["../../../src/domain/value-objects/wg-config.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import type { MCPToolDefinition } from '@claude-flow/shared/src/plugin-interface.js';
2
2
  import type { PluginContext } from '@claude-flow/shared/src/plugin-interface.js';
3
3
  import type { FederationCoordinator } from './application/federation-coordinator.js';
4
+ import type { WgMeshService } from './domain/services/wg-mesh-service.js';
4
5
  type CoordinatorGetter = () => FederationCoordinator | null;
5
6
  type ContextGetter = () => PluginContext | null;
6
- export declare function createMcpTools(getCoordinator: CoordinatorGetter, getContext: ContextGetter): MCPToolDefinition[];
7
+ type WgMeshGetter = () => WgMeshService | null;
8
+ export declare function createMcpTools(getCoordinator: CoordinatorGetter, getContext: ContextGetter, getWgMesh?: WgMeshGetter): MCPToolDefinition[];
7
9
  export {};
8
10
  //# sourceMappingURL=mcp-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAGrF,KAAK,iBAAiB,GAAG,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC5D,KAAK,aAAa,GAAG,MAAM,aAAa,GAAG,IAAI,CAAC;AAMhD,wBAAgB,cAAc,CAC5B,cAAc,EAAE,iBAAiB,EACjC,UAAU,EAAE,aAAa,GACxB,iBAAiB,EAAE,CAoWrB"}
1
+ {"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAErF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAG1E,KAAK,iBAAiB,GAAG,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC5D,KAAK,aAAa,GAAG,MAAM,aAAa,GAAG,IAAI,CAAC;AAChD,KAAK,YAAY,GAAG,MAAM,aAAa,GAAG,IAAI,CAAC;AAM/C,wBAAgB,cAAc,CAC5B,cAAc,EAAE,iBAAiB,EACjC,UAAU,EAAE,aAAa,EACzB,SAAS,GAAE,YAAyB,GACnC,iBAAiB,EAAE,CA+brB"}
package/dist/mcp-tools.js CHANGED
@@ -1,13 +1,20 @@
1
+ import { generateWgKeyPair } from './domain/value-objects/wg-config.js';
1
2
  function textResult(text, isError = false) {
2
3
  return { content: [{ type: 'text', text }], isError };
3
4
  }
4
- export function createMcpTools(getCoordinator, getContext) {
5
+ export function createMcpTools(getCoordinator, getContext, getWgMesh = () => null) {
5
6
  function requireCoordinator() {
6
7
  const c = getCoordinator();
7
8
  if (!c)
8
9
  throw new Error('Federation not initialized');
9
10
  return c;
10
11
  }
12
+ function requireWgMesh() {
13
+ const w = getWgMesh();
14
+ if (!w)
15
+ throw new Error('WG mesh layer not initialized (set config.wgMesh = true and inject WgMeshService)');
16
+ return w;
17
+ }
11
18
  return [
12
19
  {
13
20
  name: 'federation_init',
@@ -338,6 +345,89 @@ export function createMcpTools(getCoordinator, getContext) {
338
345
  }, null, 2));
339
346
  },
340
347
  },
348
+ {
349
+ name: 'federation_wg_status',
350
+ description: 'ADR-111 Phase 6: WG mesh state — per-peer trust level, mesh IP, suspended/evicted flags, and the AllowedIPs slice each peer currently has. Use to inspect what the breaker has propagated to the L3 layer.',
351
+ pluginName: '@claude-flow/plugin-agent-federation',
352
+ version: '1.0.0-alpha.1',
353
+ inputSchema: {
354
+ type: 'object',
355
+ properties: {
356
+ nodeId: { type: 'string', description: 'Optional: filter to a single peer' },
357
+ },
358
+ },
359
+ handler: async (params) => {
360
+ const wg = requireWgMesh();
361
+ const coordinator = requireCoordinator();
362
+ const peers = coordinator.listPeers();
363
+ const summary = wg.summarize(peers);
364
+ const filter = params['nodeId'];
365
+ const filtered = filter ? summary.filter(s => s.nodeId === filter) : summary;
366
+ return textResult(JSON.stringify({
367
+ interfaceName: wg.getInterfaceName(),
368
+ meshSubnet: wg.getMeshSubnet(),
369
+ peers: filtered,
370
+ }, null, 2));
371
+ },
372
+ },
373
+ {
374
+ name: 'federation_wg_attest',
375
+ description: 'ADR-111 Phase 6 (witness chain): emit an operator-signed attestation entry for a coordination change. Returns the canonical bytes the operator signs + the witness entry; operator appends it to .claude-flow/federation/wg-changes.log. Idempotent — re-attesting the same change just appends another entry.',
376
+ pluginName: '@claude-flow/plugin-agent-federation',
377
+ version: '1.0.0-alpha.1',
378
+ inputSchema: {
379
+ type: 'object',
380
+ properties: {
381
+ eventType: { type: 'string', description: 'peer-added | peer-removed-suspended | peer-restored | peer-evicted | key-rotated | interface-config-applied' },
382
+ peerPublicKey: { type: 'string', description: 'Optional: peer pubkey (omit for interface-level events)' },
383
+ meshIP: { type: 'string', description: 'Optional: peer mesh IP' },
384
+ wgCommand: { type: 'string', description: 'Optional: wg command that was emitted' },
385
+ rationale: { type: 'string', description: 'Human-readable rationale for the audit log' },
386
+ },
387
+ required: ['eventType', 'rationale'],
388
+ },
389
+ handler: async () => {
390
+ // Phase 6 v1 stub — the WgWitnessService is the canonical signer. This
391
+ // MCP tool returns instructions until plugin.ts wires the service.
392
+ // Tracked alongside #1879 follow-up: integrate WgWitnessService into
393
+ // plugin lifecycle so this handler can call attestWgCommand directly.
394
+ return textResult('federation_wg_attest: wire WgWitnessService in plugin.ts (Phase 6 follow-up). Until then, use the WgWitnessService class directly from the federation package.', true);
395
+ },
396
+ },
397
+ {
398
+ name: 'federation_wg_keyrotate',
399
+ description: 'ADR-111 Phase 6: rotate the local WG keypair. Returns the new public key + recommended next steps (republish manifest, peers regenerate their wg-quick config, grace-period destruction of old key). DESTRUCTIVE — the old private key is overwritten on disk; existing tunnels are dropped until peers update.',
400
+ pluginName: '@claude-flow/plugin-agent-federation',
401
+ version: '1.0.0-alpha.1',
402
+ inputSchema: {
403
+ type: 'object',
404
+ properties: {
405
+ confirm: { type: 'boolean', description: 'Must be true. Destructive: drops existing tunnels until all peers update their config.' },
406
+ },
407
+ required: ['confirm'],
408
+ },
409
+ handler: async (params) => {
410
+ if (params['confirm'] !== true) {
411
+ return textResult('Refusing rotate: confirm must be true. This drops existing tunnels until peers fetch the new manifest.', true);
412
+ }
413
+ // Phase 6 v1: emits a fresh keypair + the upgrade checklist. plugin.ts
414
+ // is responsible for the actual disk write + manifest republish; this
415
+ // returns the new public key for the operator to coordinate.
416
+ const newKey = generateWgKeyPair();
417
+ return textResult(JSON.stringify({
418
+ publicKey: newKey.publicKey,
419
+ createdAt: newKey.createdAt,
420
+ nextSteps: [
421
+ 'Write the new private key to .claude-flow/federation/wg-key-<nodeId>.json (mode 0600)',
422
+ 'Republish federation manifest with the new wg.publicKey',
423
+ 'Peers regenerate their wg-quick config from the updated manifest',
424
+ 'Operator removes the old [Peer] block from /etc/wireguard/<iface>.conf after the grace period (default 1h)',
425
+ 'Run federation_wg_attest with eventType=key-rotated',
426
+ ],
427
+ warning: 'Private key NOT returned via MCP. The operator wires the actual disk persistence.',
428
+ }, null, 2));
429
+ },
430
+ },
341
431
  ];
342
432
  }
343
433
  //# sourceMappingURL=mcp-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAQA,SAAS,UAAU,CAAC,IAAY,EAAE,OAAO,GAAG,KAAK;IAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,cAAiC,EACjC,UAAyB;IAEzB,SAAS,kBAAkB;QACzB,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO;QACL;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,wEAAwE;YACrF,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;oBACjE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;oBACrF,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iBAC/F;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAI,MAAM,CAAC,QAAQ,CAAY,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjF,MAAM,WAAW,CAAC,UAAU,CAAC;oBAC3B,MAAM;oBACN,SAAS,EAAE,EAAE;oBACb,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAW;oBACtC,YAAY,EAAE;wBACZ,UAAU,EAAG,MAAM,CAAC,YAAY,CAAc,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;wBACvE,qBAAqB,EAAE,EAAE;wBACzB,kBAAkB,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;wBACzC,eAAe,EAAE,EAAE;qBACpB;oBACD,OAAO,EAAE,eAAe;oBACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,2DAA2D;YACxE,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;iBAC1E;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAW,CAAC,CAAC;gBACzE,OAAO,UAAU,CAAC,yBAAyB,OAAO,CAAC,SAAS,YAAY,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAChG,CAAC;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,oEAAoE;YACjF,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;gBACvC,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,wOAAwO;YACrP,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;oBAC/D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mEAAmE,EAAE;oBACjH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;oBAC3D,mEAAmE;oBACnE,iEAAiE;oBACjE,gEAAgE;oBAChE,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,4DAA4D;wBACzE,UAAU,EAAE;4BACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;4BAC9E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;yBACnE;qBACF;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iFAAiF;qBAC/F;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oEAAoE;qBAClF;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uDAAuD;wBACpE,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;qBACF;iBACF;gBACD,QAAQ,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,SAAS,CAAC;aACrD;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAC1C,MAAM,CAAC,cAAc,CAAW,EAChC,MAAM,CAAC,aAAa,CAA0B,EAC9C,MAAM,CAAC,SAAS,CAAC,EACjB;oBACE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAwD;oBAC/E,OAAO,EAAE,MAAM,CAAC,SAAS,CAAuB;oBAChD,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAuB;oBAClD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAkD;iBACxE,CACF,CAAC;gBACF,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,uDAAuD;YACpE,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;oBACxE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;oBAC7D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;iBACxE;gBACD,QAAQ,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC;aACpC;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAC1C,MAAM,CAAC,cAAc,CAAW,EAChC,cAAc,EACd,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,EAAE,CACxE,CAAC;gBACF,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,iFAAiF;YAC9F,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,wDAAwD;YACrE,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;iBAC9D;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAW,CAAC;gBAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,OAAO,UAAU,CAAC,QAAQ,MAAM,YAAY,EAAE,IAAI,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,qEAAqE;YAClF,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;oBAClE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;oBAC7F,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;oBAC9E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;iBACpE;aACF;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO;oBAAE,OAAO,UAAU,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;gBAChE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4D,kBAAkB,CAAC,CAAC;gBAClH,IAAI,CAAC,KAAK;oBAAE,OAAO,UAAU,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;gBAE/D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;oBAC/B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAQ;oBACrC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAQ;oBACnC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAW,CAAC,CAAC,CAAC,CAAC,SAAS;oBACxE,KAAK,EAAG,MAAM,CAAC,OAAO,CAAY,IAAI,EAAE;iBACzC,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC;SACF;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,WAAW,EAAE,yPAAyP;YACtQ,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;iBAC7E;aACF;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAuB,CAAC;gBACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC7E,MAAM,MAAM,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC;gBAChD,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,kNAAkN;YAC/N,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;oBAC/D,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE;iBAC/G;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,SAAS,CACpC,MAAM,CAAC,QAAQ,CAAW,EAC1B,cAAc,EACd,MAAM,CAAC,eAAe,CAAuB,CAC9C,CAAC;gBACF,MAAM,GAAG,GAAG,EAAE;oBACZ,CAAC,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACpC,CAAC,CAAC,oDAAoD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3E,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC;SACF;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,uPAAuP;YACpQ,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;oBACpE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+DAA+D,EAAE;iBAChH;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,cAAc,CACzC,MAAM,CAAC,QAAQ,CAAW,EAC1B,MAAM,CAAC,eAAe,CAAuB,CAC9C,CAAC;gBACF,MAAM,GAAG,GAAG,EAAE;oBACZ,CAAC,CAAC,oBAAoB,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACxC,CAAC,CAAC,mDAAmD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1E,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC;SACF;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,6SAA6S;YAC1T,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;oBAC9E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;oBACxE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;oBAC/E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;oBACtD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sEAAsE,EAAE;oBACjH,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;iBAClF;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC;aAC1D;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACzC,MAAM,WAAW,CAAC,WAAW,CAAC;oBAC5B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAW;oBAClC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAuB;oBAC9C,UAAU,EAAE,MAAM,CAAC,YAAY,CAAW;oBAC1C,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAW;oBACtC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAY;oBACrC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAuB;iBACvC,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;SACF;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,iEAAiE;YAC9E,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qEAAqE,EAAE;oBACnH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;oBACtE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;iBAC1F;gBACD,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;aACrC;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO;oBAAE,OAAO,UAAU,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgE,oBAAoB,CAAC,CAAC;gBAC1H,IAAI,CAAC,OAAO;oBAAE,OAAO,UAAU,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;gBAEnE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CACpC,MAAM,CAAC,aAAa,CAA0B,EAC9C,MAAM,CAAC,SAAS,CAAC,EAChB,MAAM,CAAC,gBAAgB,CAAY,IAAI,CAAC,GAAG,CAAC,CAC9C,CAAC;gBACF,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;oBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;iBAC5C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/plugin-agent-federation",
3
- "version": "1.0.0-alpha.13",
3
+ "version": "1.0.0-alpha.15",
4
4
  "description": "Cross-installation agent federation with zero-trust security, PII-gated data flow, and compliance-grade audit trails.",
5
5
  "homepage": "https://github.com/ruvnet/ruflo",
6
6
  "type": "module",