@ claude- flow/ 分享
@ claude- flow/ 分享 共享类型、 Zod 配置计划和验证器、 事件总线和复原辅助器 @claude-flow 软件包正在扩展.
支持的环境 : 节点.js 20+ → 无害环境管理 → Linux, macOS, Windows (纯 JavaScript)
快速启动
npm install @claude-flow/shared
import { validateAgentConfig } from '@claude-flow/shared';
const ok = validateAgentConfig({ id: 'coder-1', name: 'Coder', type: 'coder' });
console.log(ok.success, ok.data.maxConcurrentTasks, ok.data.priority);
const bad = validateAgentConfig({ id: 'coder-1', name: 'Coder', type: 'coder', priority: 500 });
console.log(bad.success, bad.errors.map((e) => `${e.path}: ${e.code}`).join(', '));
预期产出:
true 5 50
false priority: too_big
下一个 : @claude-flow/hooks 在这些种类上建立了它的生命周期钩.
Claude Flow V3的共享公用事业、类型和核心基础设施----所有其他@claude-flow包所使用的基础模块.
特征
- 核心类型 - 代理、任务、记忆、MCP和Swarm类型定义
- 核心接口 - 代理、任务、记忆、事件和协调员接口
- 配置 - Schema 验证、加载和默认值
- 事件系统 - 活动总线、协调员和搬运工
- 钩子系统 - 执行前/执行后可延展性钩子
- MCP 基础设施 - 服务器、运输、连接池和工具登记册
- 卫生监测 - 健康检查和监测公用事业
安装
npm install @claude-flow/shared
快速启动
import {
AgentState,
TaskDefinition,
MemoryEntry,
EventBus,
ConfigLoader
} from '@claude-flow/shared';
// Use shared types
const agent: AgentState = {
id: { id: 'agent-1', swarmId: 'swarm-1', type: 'coder' },
name: 'Code Agent',
type: 'coder',
status: 'idle'
};
// Use configuration
const config = await ConfigLoader.load('./config.json');
// Use event system
const eventBus = new EventBus();
eventBus.on('task.completed', (event) => {
console.log(`Task ${event.taskId} completed`);
});
软件包导出
// Main entry (recommended - includes all modules)
import { ... } from '@claude-flow/shared';
// Submodule exports (for tree-shaking or specific imports)
import { ... } from '@claude-flow/shared/types'; // Type definitions
import { ... } from '@claude-flow/shared/core'; // Config, interfaces, orchestrator
import { ... } from '@claude-flow/shared/events'; // Event sourcing (ADR-007)
import { ... } from '@claude-flow/shared/hooks'; // Hooks system
import { ... } from '@claude-flow/shared/mcp'; // MCP server infrastructure
import { ... } from '@claude-flow/shared/security'; // Security utilities
import { ... } from '@claude-flow/shared/resilience'; // Retry, circuit breaker, rate limiter
API 参考
类型
import type {
// Agent types
AgentId,
AgentState,
AgentType,
AgentStatus,
AgentCapabilities,
AgentMetrics,
// Task types
TaskId,
TaskDefinition,
TaskType,
TaskStatus,
TaskPriority,
// Memory types
MemoryEntry,
MemoryType,
SearchResult,
// Swarm types
SwarmId,
SwarmStatus,
SwarmEvent,
CoordinatorConfig,
// MCP types
MCPTool,
MCPRequest,
MCPResponse
} from '@claude-flow/shared/types';
核心接口
import type {
IAgent,
ITask,
IMemory,
ICoordinator,
IEventHandler
} from '@claude-flow/shared/core';
// Agent interface
interface IAgent {
getId(): AgentId;
getState(): AgentState;
execute(task: TaskDefinition): Promise<TaskResult>;
handleMessage(message: Message): Promise<void>;
}
// Memory interface
interface IMemory {
store(entry: MemoryEntry): Promise<string>;
retrieve(id: string): Promise<MemoryEntry | null>;
search(query: SearchQuery): Promise<SearchResult[]>;
delete(id: string): Promise<boolean>;
}
// Coordinator interface
interface ICoordinator {
initialize(): Promise<void>;
shutdown(): Promise<void>;
registerAgent(agent: IAgent): Promise<string>;
submitTask(task: TaskDefinition): Promise<string>;
}
配置
import {
ConfigLoader,
ConfigValidator,
defaultConfig,
ConfigSchema
} from '@claude-flow/shared/core';
// Load configuration
const config = await ConfigLoader.load('./config.json');
const config2 = await ConfigLoader.loadFromEnv();
// Validate configuration
const errors = ConfigValidator.validate(config);
if (errors.length > 0) {
console.error('Invalid config:', errors);
}
// Default configuration
const defaults = defaultConfig();
事件系统
import { EventBus, EventCoordinator } from '@claude-flow/shared/events';
const eventBus = new EventBus();
// Subscribe to events
eventBus.on('agent.joined', (event) => {
console.log(`Agent ${event.agentId} joined`);
});
eventBus.on('task.*', (event) => {
console.log(`Task event: ${event.type}`);
});
// Emit events
eventBus.emit({
type: 'task.completed',
taskId: 'task-1',
result: { success: true }
});
// Event coordinator for complex workflows
const coordinator = new EventCoordinator();
coordinator.orchestrate([
{ event: 'step1.done', handler: () => startStep2() },
{ event: 'step2.done', handler: () => startStep3() }
]);
钩子系统
import { HooksManager, Hook } from '@claude-flow/shared/hooks';
const hooks = new HooksManager();
// Register pre-execution hook
hooks.register('pre:task', async (context) => {
console.log(`Starting task: ${context.taskId}`);
return { ...context, startTime: Date.now() };
});
// Register post-execution hook
hooks.register('post:task', async (context, result) => {
const duration = Date.now() - context.startTime;
console.log(`Task completed in ${duration}ms`);
});
// Execute with hooks
const result = await hooks.execute('task', context, async (ctx) => {
return await runTask(ctx);
});
MCP 基础设施
import {
createMCPServer,
createToolRegistry,
createConnectionPool,
createSessionManager,
defineTool,
quickStart,
} from '@claude-flow/shared/mcp';
// Quick start - simplest way to create an MCP server
const server = await quickStart({
transport: 'stdio',
name: 'My MCP Server',
});
// Tool registry
const registry = createToolRegistry();
registry.register(defineTool({
name: 'swarm_init',
description: 'Initialize a swarm',
inputSchema: { type: 'object', properties: { topology: { type: 'string' } } },
handler: async (params) => ({ result: 'initialized' }),
}));
// Connection pool
const pool = createConnectionPool({
maxConnections: 10,
acquireTimeoutMs: 30000,
});
// Session manager
const sessions = createSessionManager({ timeoutMs: 3600000 });
const session = await sessions.create({ clientInfo: { name: 'client' } });
卫生监测
import { HealthMonitor, HealthCheck } from '@claude-flow/shared/core';
const monitor = new HealthMonitor();
// Register health checks
monitor.register('database', async () => {
const connected = await db.ping();
return { healthy: connected, latency: pingTime };
});
monitor.register('memory', async () => {
const usage = process.memoryUsage();
return { healthy: usage.heapUsed < MAX_HEAP, usage };
});
// Run health checks
const report = await monitor.check();
// { overall: 'healthy', checks: { database: {...}, memory: {...} } }
类型脚本
所有类型均全部出口并记录在案:
// Re-export all types
export * from './types/agent.types';
export * from './types/task.types';
export * from './types/memory.types';
export * from './types/swarm.types';
export * from './types/mcp.types';
依赖关系
sql.js- SQLite WASM 用于跨平台持久性
用户
此软件包是所有其它 @ claude- flow 模块的依赖 :
- @claude-flow/cli (英语) - CLI模块
- @ claude- flow/ 安全 - 安全和验证
- @ claude- flow/ 记忆 - AgentDB & HNSW 索引
- @ claude- flow/ 神经 - SONA学习和RL算法
- @ claude- flow/ 性能 - 基准和优化
- @ claude- flow/ swarm (英语) - 15名代理人的协调
- @ claude- flow/ 合并 - 代理流量@ alpha 桥
- @ claude- flow/ 测试 - TDD框架和固定装置
- @ claude- flow/ 部署 - 发行管理
- @ claude- flow/ 嵌入 - 嵌入服务
- @ claude- flow/ hooks - 虎克系统
许可证
麻省理工学院