@claude-flow/plugin-agent-federation 1.0.0-alpha.9 → 1.0.1

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 (96) hide show
  1. package/README.md +4 -0
  2. package/dist/a2a/agent-card.d.ts +130 -0
  3. package/dist/a2a/agent-card.d.ts.map +1 -0
  4. package/dist/a2a/agent-card.js +239 -0
  5. package/dist/a2a/agent-card.js.map +1 -0
  6. package/dist/a2a/consume.d.ts +34 -0
  7. package/dist/a2a/consume.d.ts.map +1 -0
  8. package/dist/a2a/consume.js +69 -0
  9. package/dist/a2a/consume.js.map +1 -0
  10. package/dist/a2a/planner-descriptor.d.ts +40 -0
  11. package/dist/a2a/planner-descriptor.d.ts.map +1 -0
  12. package/dist/a2a/planner-descriptor.js +100 -0
  13. package/dist/a2a/planner-descriptor.js.map +1 -0
  14. package/dist/a2a/well-known.d.ts +46 -0
  15. package/dist/a2a/well-known.d.ts.map +1 -0
  16. package/dist/a2a/well-known.js +84 -0
  17. package/dist/a2a/well-known.js.map +1 -0
  18. package/dist/application/claim-checker.d.ts +27 -0
  19. package/dist/application/claim-checker.d.ts.map +1 -0
  20. package/dist/application/claim-checker.js +46 -0
  21. package/dist/application/claim-checker.js.map +1 -0
  22. package/dist/application/federation-breaker-service.d.ts +11 -1
  23. package/dist/application/federation-breaker-service.d.ts.map +1 -1
  24. package/dist/application/federation-breaker-service.js +12 -10
  25. package/dist/application/federation-breaker-service.js.map +1 -1
  26. package/dist/application/federation-coordinator.d.ts +48 -3
  27. package/dist/application/federation-coordinator.d.ts.map +1 -1
  28. package/dist/application/federation-coordinator.js +112 -23
  29. package/dist/application/federation-coordinator.js.map +1 -1
  30. package/dist/application/inbound-dispatcher.d.ts +114 -0
  31. package/dist/application/inbound-dispatcher.d.ts.map +1 -0
  32. package/dist/application/inbound-dispatcher.js +356 -0
  33. package/dist/application/inbound-dispatcher.js.map +1 -0
  34. package/dist/application/spend-reporter.d.ts +77 -0
  35. package/dist/application/spend-reporter.d.ts.map +1 -1
  36. package/dist/application/spend-reporter.js +76 -0
  37. package/dist/application/spend-reporter.js.map +1 -1
  38. package/dist/application/trust-evaluator.d.ts +32 -0
  39. package/dist/application/trust-evaluator.d.ts.map +1 -1
  40. package/dist/application/trust-evaluator.js +47 -0
  41. package/dist/application/trust-evaluator.js.map +1 -1
  42. package/dist/bin.d.ts +1 -1
  43. package/dist/bin.js +2 -2
  44. package/dist/bin.js.map +1 -1
  45. package/dist/cli-commands.d.ts.map +1 -1
  46. package/dist/cli-commands.js +125 -6
  47. package/dist/cli-commands.js.map +1 -1
  48. package/dist/domain/services/discovery-service.d.ts +18 -1
  49. package/dist/domain/services/discovery-service.d.ts.map +1 -1
  50. package/dist/domain/services/discovery-service.js +21 -0
  51. package/dist/domain/services/discovery-service.js.map +1 -1
  52. package/dist/domain/services/handshake-service.d.ts +10 -0
  53. package/dist/domain/services/handshake-service.d.ts.map +1 -1
  54. package/dist/domain/services/handshake-service.js +28 -0
  55. package/dist/domain/services/handshake-service.js.map +1 -1
  56. package/dist/domain/services/routing-service.d.ts +3 -0
  57. package/dist/domain/services/routing-service.d.ts.map +1 -1
  58. package/dist/domain/services/routing-service.js +4 -1
  59. package/dist/domain/services/routing-service.js.map +1 -1
  60. package/dist/domain/services/wg-firewall-service.d.ts +71 -0
  61. package/dist/domain/services/wg-firewall-service.d.ts.map +1 -0
  62. package/dist/domain/services/wg-firewall-service.js +194 -0
  63. package/dist/domain/services/wg-firewall-service.js.map +1 -0
  64. package/dist/domain/services/wg-mesh-service.d.ts +156 -0
  65. package/dist/domain/services/wg-mesh-service.d.ts.map +1 -0
  66. package/dist/domain/services/wg-mesh-service.js +292 -0
  67. package/dist/domain/services/wg-mesh-service.js.map +1 -0
  68. package/dist/domain/services/wg-witness-service.d.ts +98 -0
  69. package/dist/domain/services/wg-witness-service.d.ts.map +1 -0
  70. package/dist/domain/services/wg-witness-service.js +122 -0
  71. package/dist/domain/services/wg-witness-service.js.map +1 -0
  72. package/dist/domain/value-objects/wg-config.d.ts +70 -0
  73. package/dist/domain/value-objects/wg-config.d.ts.map +1 -0
  74. package/dist/domain/value-objects/wg-config.js +104 -0
  75. package/dist/domain/value-objects/wg-config.js.map +1 -0
  76. package/dist/index.d.ts +8 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +9 -1
  79. package/dist/index.js.map +1 -1
  80. package/dist/mcp-tools.d.ts +3 -1
  81. package/dist/mcp-tools.d.ts.map +1 -1
  82. package/dist/mcp-tools.js +114 -18
  83. package/dist/mcp-tools.js.map +1 -1
  84. package/dist/plugin.d.ts +2 -1
  85. package/dist/plugin.d.ts.map +1 -1
  86. package/dist/plugin.js +174 -15
  87. package/dist/plugin.js.map +1 -1
  88. package/dist/transport/midstream-aware-loader.d.ts +72 -0
  89. package/dist/transport/midstream-aware-loader.d.ts.map +1 -0
  90. package/dist/transport/midstream-aware-loader.js +269 -0
  91. package/dist/transport/midstream-aware-loader.js.map +1 -0
  92. package/dist/version.d.ts +3 -0
  93. package/dist/version.d.ts.map +1 -0
  94. package/dist/version.js +3 -0
  95. package/dist/version.js.map +1 -0
  96. package/package.json +21 -5
package/dist/plugin.js CHANGED
@@ -17,13 +17,29 @@ import { AuditService } from './domain/services/audit-service.js';
17
17
  import { PIIPipelineService } from './domain/services/pii-pipeline-service.js';
18
18
  import { TrustEvaluator } from './application/trust-evaluator.js';
19
19
  import { PolicyEngine } from './application/policy-engine.js';
20
+ import { createFederationClaimChecker, } from './application/claim-checker.js';
20
21
  import { getTrustLevelLabel } from './domain/entities/trust-level.js';
21
- import { loadQuicTransport, } from 'agentic-flow/transport/loader';
22
+ // ADR-104: real wire transport via agentic-flow loader pattern.
23
+ // ADR-120: midstream-aware loader wraps the agentic-flow loader so
24
+ // when `midstreamer` (ruvnet/midstream) ships its production QUIC
25
+ // build (Step 1 of ADR-120) and operators opt in with
26
+ // MIDSTREAMER_QUIC_NATIVE=1, the federation transport auto-upgrades.
27
+ // Until then, the wrapper transparently defers to the agentic-flow
28
+ // loader — which itself resolves to WebSocketFallbackTransport
29
+ // today, or native QUIC when AGENTIC_FLOW_QUIC_NATIVE=1.
30
+ import { loadFederationTransport, } from './transport/midstream-aware-loader.js';
31
+ import { DEFAULT_ENVELOPE_SIGNATURE_MODE, JCS_SIGNATURE_PROTOCOL, canonicalizeEnvelopeForVerify, dispatchInbound, selectEnvelopeSignatureVersion, } from './application/inbound-dispatcher.js';
22
32
  import { createMcpTools } from './mcp-tools.js';
23
33
  import { createCliCommands } from './cli-commands.js';
34
+ import { FEDERATION_PLUGIN_VERSION } from './version.js';
35
+ // A2A (Agent2Agent, Linux Foundation) Agent Card adapter — cards only.
36
+ // Opt-in via config.a2aCard; serves /.well-known/agent-card.json on a
37
+ // 127.0.0.1-default bind (ADR-166 posture preserved).
38
+ import { toAgentCard } from './a2a/agent-card.js';
39
+ import { startAgentCardServer } from './a2a/well-known.js';
24
40
  export class AgentFederationPlugin {
25
41
  name = '@claude-flow/plugin-agent-federation';
26
- version = '1.0.0-alpha.1';
42
+ version = FEDERATION_PLUGIN_VERSION;
27
43
  description = 'Cross-installation agent federation with PII protection and AI defence';
28
44
  author = 'Claude Flow Team';
29
45
  dependencies = ['@claude-flow/security', '@claude-flow/aidefence'];
@@ -34,6 +50,9 @@ export class AgentFederationPlugin {
34
50
  // in-process behavior — preserves backward compat for tests that
35
51
  // don't supply a port).
36
52
  transport = null;
53
+ // A2A Agent Card well-known endpoint (opt-in via config.a2aCard). Null
54
+ // when the HTTP surface is off — everything else works without it.
55
+ agentCardServer = null;
37
56
  async initialize(context) {
38
57
  this.context = context;
39
58
  const config = context.config;
@@ -42,6 +61,11 @@ export class AgentFederationPlugin {
42
61
  const complianceMode = config['complianceMode'] ?? 'none';
43
62
  const staticPeers = config['staticPeers'] ?? [];
44
63
  const hashSalt = config['hashSalt'] ?? `salt-${nodeId}`;
64
+ const signatureMode = config['signatureMode']
65
+ ?? DEFAULT_ENVELOPE_SIGNATURE_MODE;
66
+ if (!['legacy', 'prefer-jcs', 'require-jcs'].includes(signatureMode)) {
67
+ throw new TypeError(`Unsupported federation signature mode: ${String(signatureMode)}`);
68
+ }
45
69
  // ADR-095 G2: real Ed25519 keypair instead of empty publicKey + stub
46
70
  // signatures. Persist to .claude-flow/federation/key-<nodeId>.json so
47
71
  // the same node identity survives restarts. Audit log
@@ -82,7 +106,21 @@ export class AgentFederationPlugin {
82
106
  nodeId,
83
107
  publicKey: publicKeyHex,
84
108
  endpoint,
85
- capabilities: ['send', 'receive', 'query-redacted', 'status', 'ping', 'discovery'],
109
+ capabilities: [
110
+ 'send',
111
+ 'receive',
112
+ 'query-redacted',
113
+ 'status',
114
+ 'ping',
115
+ 'discovery',
116
+ ...(signatureMode === 'legacy' ? [] : [JCS_SIGNATURE_PROTOCOL]),
117
+ ],
118
+ supportedProtocols: [
119
+ 'websocket',
120
+ 'http',
121
+ ...(signatureMode === 'legacy' ? [] : [JCS_SIGNATURE_PROTOCOL]),
122
+ ],
123
+ version: FEDERATION_PLUGIN_VERSION,
86
124
  };
87
125
  const generateId = () => `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
88
126
  // ADR-095 G2: real signing + verification using @noble/ed25519. The
@@ -169,22 +207,45 @@ export class AgentFederationPlugin {
169
207
  context.eventBus.emit('federation:trust-change', { nodeId: nid, ...result });
170
208
  },
171
209
  });
172
- const policyEngine = new PolicyEngine({ checkClaim: () => true });
210
+ const authorizationMode = config['authorizationMode'] ?? 'legacy';
211
+ const grantedClaims = Array.isArray(config['federationClaims'])
212
+ ? config['federationClaims'].filter((claim) => typeof claim === 'string')
213
+ : [];
214
+ const claimChecker = createFederationClaimChecker({
215
+ mode: authorizationMode,
216
+ grantedClaims,
217
+ onObservation: (claim, granted) => {
218
+ context.eventBus.emit('federation:policy-observation', {
219
+ claim,
220
+ granted,
221
+ mode: authorizationMode,
222
+ });
223
+ },
224
+ });
225
+ if (claimChecker.mode === 'legacy') {
226
+ context.logger.warn('Federation authorization is in ADR-325 legacy compatibility mode; ' +
227
+ 'use observe before enabling enforce');
228
+ }
229
+ const policyEngine = new PolicyEngine({ checkClaim: claimChecker.checkClaim });
173
230
  const sessions = new Map();
174
- // ADR-104: load wire transport. WebSocket fallback by default; native
175
- // QUIC when AGENTIC_FLOW_QUIC_NATIVE=1 + binding installed. Failures
176
- // here downgrade to in-process noop (logged), preserving backward
177
- // compat for tests/environments without ws available.
231
+ // ADR-104 + ADR-120: load wire transport. WebSocket fallback by
232
+ // default; native QUIC when AGENTIC_FLOW_QUIC_NATIVE=1 (ADR-108) or
233
+ // MIDSTREAMER_QUIC_NATIVE=1 (ADR-120 Step 1, when midstream@0.3.0
234
+ // ships its real QUIC build). The midstream-aware loader picks the
235
+ // best available transport transparently. Failures downgrade to
236
+ // in-process noop (logged), preserving backward compat for
237
+ // tests/environments without ws available.
178
238
  let transport = null;
179
239
  try {
180
- transport = await loadQuicTransport({
240
+ const loaded = await loadFederationTransport({
181
241
  serverName: nodeId,
182
242
  maxIdleTimeoutMs: 30_000,
183
243
  maxConcurrentStreams: 100,
184
244
  enable0Rtt: true,
185
245
  });
246
+ transport = loaded.transport;
186
247
  this.transport = transport;
187
- context.logger.info(`Federation transport loaded: ${nodeId}`);
248
+ context.logger.info(`Federation transport loaded: ${nodeId} (source=${loaded.source}${loaded.fallbackReason ? `, note=${loaded.fallbackReason}` : ''})`);
188
249
  }
189
250
  catch (err) {
190
251
  context.logger.warn(`Federation transport unavailable (${err instanceof Error ? err.message : err}); ` +
@@ -242,11 +303,17 @@ export class AgentFederationPlugin {
242
303
  return;
243
304
  }
244
305
  const address = resolveAddress(targetNodeId);
245
- if (!address) {
306
+ const peer = discovery.getPeer(targetNodeId);
307
+ if (!address || !peer) {
246
308
  context.logger.warn(`Federation send aborted: peer ${targetNodeId} not in discovery registry`);
247
309
  throw new Error(`PEER_UNKNOWN: ${targetNodeId}`);
248
310
  }
249
- const message = {
311
+ const signatureVersion = selectEnvelopeSignatureVersion(signatureMode, peer.capabilities.supportedProtocols, envelope.messageType);
312
+ // Build the AgentMessage WITHOUT signature first, canonicalize
313
+ // the bytes, sign them, then attach the signature to metadata.
314
+ // The receiver runs the same canonicalization and verifies
315
+ // against this node's published public key.
316
+ const baseMessage = {
250
317
  id: envelope.envelopeId,
251
318
  type: envelope.messageType,
252
319
  payload: envelope,
@@ -254,11 +321,19 @@ export class AgentFederationPlugin {
254
321
  sourceNodeId: envelope.sourceNodeId,
255
322
  targetNodeId: envelope.targetNodeId,
256
323
  sessionId: envelope.sessionId,
324
+ ...(signatureVersion === 'jcs-v1' ? { signatureVersion } : {}),
257
325
  },
258
326
  };
259
- await transport.send(address, message);
260
- context.logger.debug(`Federation send → ${address} (envelope=${envelope.envelopeId}, type=${envelope.messageType})`);
327
+ const canon = canonicalizeEnvelopeForVerify(baseMessage, signatureVersion);
328
+ const signature = signBytes(canon);
329
+ const signed = {
330
+ ...baseMessage,
331
+ metadata: { ...baseMessage.metadata, signature },
332
+ };
333
+ await transport.send(address, signed);
334
+ context.logger.debug(`Federation send → ${address} (envelope=${envelope.envelopeId}, type=${envelope.messageType}, signed)`);
261
335
  },
336
+ getPeerTrustLevel: (targetNodeId) => discovery.getPeer(targetNodeId)?.trustLevel,
262
337
  getActiveSessions: () => Array.from(sessions.values()).filter(s => s.active),
263
338
  getLocalNodeId: () => nodeId,
264
339
  });
@@ -290,16 +365,100 @@ export class AgentFederationPlugin {
290
365
  (err instanceof Error ? err.message : String(err)));
291
366
  }
292
367
  }
368
+ // ADR-109: subscribe to inbound messages. transport.onMessage was
369
+ // added in agentic-flow@2.0.12-fix.3 — older builds gracefully
370
+ // degrade (optional method, no-op via the ?? guard).
371
+ if (transport && typeof transport.onMessage === 'function') {
372
+ // Real Ed25519 envelope verifier — closes the inbound trust gap
373
+ // (without this, sourceNodeId in metadata is a self-claim, not
374
+ // an authenticated assertion).
375
+ const verifyEnvelope = (canonicalBytes, signatureHex, peerPublicKeyHex) => {
376
+ if (!signatureHex || !peerPublicKeyHex)
377
+ return false;
378
+ return verifyBytes(canonicalBytes, signatureHex, peerPublicKeyHex);
379
+ };
380
+ transport.onMessage(async (address, message) => {
381
+ await dispatchInbound(address, message, {
382
+ discovery,
383
+ audit,
384
+ eventBus: context.eventBus,
385
+ logger: context.logger,
386
+ verifyEnvelope,
387
+ acceptedSignatureVersions: signatureMode === 'require-jcs' ? ['jcs-v1'] : ['legacy-v1', 'jcs-v1'],
388
+ authorizationMode,
389
+ authorizeInbound: ({ messageType, peer, messageSizeBytes, sourceNodeId }) => policyEngine.evaluateMessage(messageType, peer.trustLevel, messageSizeBytes, sourceNodeId),
390
+ });
391
+ });
392
+ context.logger.debug('Federation inbound dispatcher subscribed (with Ed25519 sig verify)');
393
+ }
394
+ else {
395
+ context.logger.warn('Federation transport does not expose onMessage(); inbound bytes will queue but not dispatch. ' +
396
+ 'Upgrade agentic-flow to >= 2.0.12-fix.3.');
397
+ }
398
+ // A2A Agent Card well-known endpoint (opt-in, graceful). Enabled with
399
+ // config.a2aCard = true + config.a2aCardPort. Serves the local node's
400
+ // manifest as a spec-compliant A2A 1.0 card at
401
+ // /.well-known/agent-card.json. Binds 127.0.0.1 unless config.a2aCardHost
402
+ // is set AND config.a2aCardAllowNonLoopback is true (ADR-166: never
403
+ // loosen binding implicitly). A bind failure logs and degrades — the
404
+ // rest of federation is unaffected.
405
+ const a2aEnabled = config['a2aCard'] === true;
406
+ const a2aPort = config['a2aCardPort'];
407
+ if (a2aEnabled && typeof a2aPort === 'number') {
408
+ try {
409
+ this.agentCardServer = await startAgentCardServer({
410
+ getCard: () => {
411
+ const manifest = discovery.getLocalManifest() ?? {
412
+ nodeId,
413
+ publicKey: publicKeyHex,
414
+ endpoint,
415
+ capabilities: {
416
+ agentTypes: coordConfig.capabilities,
417
+ maxConcurrentSessions: 10,
418
+ supportedProtocols: [
419
+ 'websocket',
420
+ 'http',
421
+ ...(signatureMode === 'legacy' ? [] : [JCS_SIGNATURE_PROTOCOL]),
422
+ ],
423
+ complianceModes: complianceMode === 'none' ? [] : [complianceMode],
424
+ },
425
+ version: this.version,
426
+ signature: '',
427
+ timestamp: new Date().toISOString(),
428
+ };
429
+ return toAgentCard(manifest);
430
+ },
431
+ port: a2aPort,
432
+ host: config['a2aCardHost'] ?? '127.0.0.1',
433
+ allowNonLoopback: config['a2aCardAllowNonLoopback'] === true,
434
+ });
435
+ context.logger.info(`A2A agent card served at ${this.agentCardServer.url}`);
436
+ }
437
+ catch (err) {
438
+ context.logger.warn(`A2A agent card endpoint unavailable (${err instanceof Error ? err.message : err}); ` +
439
+ 'federation continues without the A2A discovery surface');
440
+ this.agentCardServer = null;
441
+ }
442
+ }
293
443
  context.logger.info('Agent Federation plugin initialized');
294
444
  }
295
445
  async shutdown() {
446
+ if (this.agentCardServer) {
447
+ try {
448
+ await this.agentCardServer.close();
449
+ }
450
+ catch (err) {
451
+ this.context?.logger.warn(`A2A agent card server close error: ${err instanceof Error ? err.message : err}`);
452
+ }
453
+ this.agentCardServer = null;
454
+ }
296
455
  if (this.coordinator) {
297
456
  await this.coordinator.shutdown();
298
457
  this.coordinator = null;
299
458
  }
300
459
  if (this.transport) {
301
460
  try {
302
- await this.transport.close();
461
+ await this.transport.close?.();
303
462
  }
304
463
  catch (err) {
305
464
  this.context?.logger.warn(`Federation transport close error: ${err instanceof Error ? err.message : err}`);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Midstream-aware federation transport loader (ADR-120, Step 2).
3
+ *
4
+ * Extends the agentic-flow `loadQuicTransport` loader pattern with a
5
+ * preferred branch that probes `midstreamer` first. When `midstreamer`
6
+ * ships real QUIC (currently the WASM build is a counter-tracking
7
+ * stub per ADR-119), this loader picks it up automatically without
8
+ * any change to consumer plugins.
9
+ *
10
+ * Resolution order:
11
+ *
12
+ * 1. If `MIDSTREAMER_QUIC_NATIVE=1` AND the `midstreamer` module
13
+ * exposes a real `QuicMultistream`-derived `AgentTransport`,
14
+ * use it. (Today: probes fail closed and we fall through.)
15
+ *
16
+ * 2. Otherwise: defer to agentic-flow's existing loader, which
17
+ * itself respects `AGENTIC_FLOW_QUIC_NATIVE=1` (ADR-108) and
18
+ * falls back to WebSocket (ADR-104) otherwise.
19
+ *
20
+ * The loader is opt-in: callers must explicitly invoke
21
+ * `loadFederationTransport()` instead of `loadQuicTransport()`.
22
+ * Behavior is identical to `loadQuicTransport()` until upstream
23
+ * `midstreamer` ships its real QUIC build AND the operator sets the
24
+ * env flag — so this change is safe to land before any of that
25
+ * happens.
26
+ *
27
+ * Re-exports the `AgentTransport` / `AgentMessage` / `QuicTransportConfig`
28
+ * surface from agentic-flow so consumers only import from one place.
29
+ */
30
+ export interface AgentMessage {
31
+ id: string;
32
+ type: 'task' | 'result' | 'status' | 'coordination' | 'heartbeat' | string;
33
+ payload: unknown;
34
+ metadata?: Record<string, unknown>;
35
+ [key: string]: unknown;
36
+ }
37
+ export interface AgentTransport {
38
+ send: (address: string, message: AgentMessage) => Promise<void>;
39
+ onMessage: (handler: (address: string, message: AgentMessage) => void) => void;
40
+ listen?: (port: number, host?: string) => Promise<void>;
41
+ close?: () => Promise<void> | void;
42
+ [key: string]: unknown;
43
+ }
44
+ export interface QuicTransportConfig {
45
+ port?: number;
46
+ host?: string;
47
+ serverName?: string;
48
+ [key: string]: unknown;
49
+ }
50
+ /** Result envelope describing which backend the loader picked. */
51
+ export interface LoadedFederationTransport {
52
+ /** The live transport. Send/receive against this. */
53
+ transport: AgentTransport;
54
+ /** Which loader branch resolved. Useful for logs/metrics. */
55
+ source: 'midstreamer-native' | 'agentic-flow-loader' | 'websocket-fallback';
56
+ /** Free-form note when a probe failed (helps explain a fallback). */
57
+ fallbackReason?: string;
58
+ }
59
+ /**
60
+ * Top-level loader for federation transport. Identical signature to
61
+ * agentic-flow's `loadQuicTransport`, but with the midstreamer-first
62
+ * preference. Use this from `plugins/ruflo-federation` in place of
63
+ * the bare `loadQuicTransport`.
64
+ *
65
+ * Failure mode: if midstreamer is requested but rejects (stub, init
66
+ * error, missing package), this function falls through to the
67
+ * agentic-flow loader. If current agentic-flow does not export its
68
+ * historical loader subpath, the plugin-owned WebSocket fallback is
69
+ * used directly (ADR-104, #2618).
70
+ */
71
+ export declare function loadFederationTransport(config?: QuicTransportConfig): Promise<LoadedFederationTransport>;
72
+ //# sourceMappingURL=midstream-aware-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"midstream-aware-loader.d.ts","sourceRoot":"","sources":["../../src/transport/midstream-aware-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAUH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,KAAK,IAAI,CAAC;IAC/E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AACD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAoED,kEAAkE;AAClE,MAAM,WAAW,yBAAyB;IACxC,qDAAqD;IACrD,SAAS,EAAE,cAAc,CAAC;IAC1B,6DAA6D;IAC7D,MAAM,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;IAC5E,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiMD;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,yBAAyB,CAAC,CAoBpC"}