ruvnet/ruflo · warning · Error

"@agntcy/slim-bindings" is installed but does not export cre

Error message

"@agntcy/slim-bindings" is installed but does not export createSlimTransport()

What it means

Thrown by the AGNTCY transport-switch command when the optional @agntcy/slim-bindings is installed and an endpoint is configured, but the imported module lacks createSlimTransport(). The error is caught, printed as 'Failed to activate SLIM transport: ...', and the command falls back to local in-process transport, returning success:true with data { transport:'local', error }. The code comment notes this branch is currently unreachable in practice because the package is unpublished.

Source

Thrown at v3/@claude-flow/cli/src/commands/agntcy/transport.ts:73

    }

    const status = await detectAgntcyRuntime();

    if (!status.configured) {
      output.printInfo(AGNTCY_NOT_CONFIGURED_MESSAGE);
      output.printInfo('Active transport remains: local (in-process hooks routing).');
      return {
        success: true,
        data: { transport: 'local', requested, configured: false, reason: status.reason },
      };
    }

    // Reachable only once the optional package is actually installed AND
    // an endpoint is configured — not possible today (package unpublished).
    try {
      const mod = (await import(AGNTCY_PACKAGE_NAME)) as AgntcySlimRuntimeModule;
      if (typeof mod.createSlimTransport !== 'function') {
        throw new Error(`"${AGNTCY_PACKAGE_NAME}" is installed but does not export createSlimTransport()`);
      }
      await mod.createSlimTransport({ endpoint: status.endpoint as string });
      output.printSuccess(`Active transport switched to: slim (${status.endpoint})`);
      return { success: true, data: { transport: 'slim', endpoint: status.endpoint, configured: true } };
    } catch (error) {
      const message = error instanceof Error ? error.message : String(error);
      output.printError(`Failed to activate SLIM transport: ${message}`);
      output.printInfo('Falling back to local transport.');
      return { success: true, data: { transport: 'local', requested, configured: false, error: message } };
    }
  },
};

export const transportCommand: Command = {
  name: 'transport',
  description: 'Manage the active swarm/hive-mind coordination transport (ADR-380 §2)',
  subcommands: [useCommand],
  examples: [

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Uninstall @agntcy/slim-bindings — the command then cleanly reports local transport with configured:false instead of an error path
  2. Pin a version that actually exports createSlimTransport() and verify via a probe import before switching transport
  3. Treat data.transport === 'local' after this command as expected behavior until the real runtime ships

Example fix

// before
npm install @agntcy/slim-bindings  # stub lacking createSlimTransport
ruflo transport activate slim
// after
npm uninstall @agntcy/slim-bindings
ruflo transport activate slim  # -> transport:'local', configured:false, clean fallback
Defensive patterns

Strategy: fallback

Validate before calling

let slimAvailable = false;
try {
  const mod = (await import('@agntcy/slim-bindings')) as { createSlimTransport?: unknown };
  slimAvailable = typeof mod.createSlimTransport === 'function';
} catch { slimAvailable = false; }
if (!slimAvailable) useLocalTransport();

Type guard

function exportsCreateSlimTransport(m: unknown): m is { createSlimTransport: (o: { endpoint: string }) => Promise<unknown> } {
  return typeof (m as { createSlimTransport?: unknown })?.createSlimTransport === 'function';
}

Try / catch

const res = await activateTransport('slim');
if (res.data?.transport === 'local') {
  // expected until the real SLIM runtime ships; hooks keep routing in-process
}

Prevention

When it happens

Trigger: Invoking the transport activation command in an environment where a resolvable @agntcy/slim-bindings module exists (stub, squat, or renamed API) and AGNTCY endpoint config is present — the module loads but exports no createSlimTransport function.

Common situations: Private-registry placeholder packages; future real versions with a changed export surface; CI images that accidentally include a leftover package. Impact is limited: transport stays local.

Related errors


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/e78956a284a26725. Report an issue: GitHub.