agentic-flow 3.1.0 ā 3.2.0
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/.agents/skills/agentic-flow-ecosystem/SKILL.md +50 -0
- package/.claude/skills/agentic-flow-ecosystem/skill.md +58 -0
- package/.claude/skills/agentic-flow-quickstart/skill.md +6 -6
- package/.claude/skills/hooks-automation/skill.md +11 -11
- package/.claude/skills/memory-patterns/skill.md +7 -7
- package/.claude/skills/sparc-methodology/skill.md +13 -13
- package/.claude/skills/swarm-coordination/skill.md +5 -5
- package/.claude/skills/worker-benchmarks/skill.md +5 -5
- package/.claude/skills/worker-integration/skill.md +5 -5
- package/CHANGELOG.md +25 -0
- package/README.md +82 -67
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +9 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/core/agentdb-fast.d.ts +21 -11
- package/dist/core/agentdb-fast.d.ts.map +1 -1
- package/dist/core/agentdb-fast.js +39 -14
- package/dist/core/agentdb-fast.js.map +1 -1
- package/dist/integrations/agent-booster.d.ts +35 -0
- package/dist/integrations/agent-booster.d.ts.map +1 -0
- package/dist/integrations/agent-booster.js +45 -0
- package/dist/integrations/agent-booster.js.map +1 -0
- package/dist/integrations/index.d.ts +15 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +11 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/onnx-wasm-embedder.d.ts +59 -0
- package/dist/integrations/onnx-wasm-embedder.d.ts.map +1 -0
- package/dist/integrations/onnx-wasm-embedder.js +145 -0
- package/dist/integrations/onnx-wasm-embedder.js.map +1 -0
- package/dist/integrations/optional.d.ts +44 -0
- package/dist/integrations/optional.d.ts.map +1 -0
- package/dist/integrations/optional.js +107 -0
- package/dist/integrations/optional.js.map +1 -0
- package/dist/integrations/prompt-injection.d.ts +52 -0
- package/dist/integrations/prompt-injection.d.ts.map +1 -0
- package/dist/integrations/prompt-injection.js +126 -0
- package/dist/integrations/prompt-injection.js.map +1 -0
- package/dist/integrations/sublinear.d.ts +71 -0
- package/dist/integrations/sublinear.d.ts.map +1 -0
- package/dist/integrations/sublinear.js +227 -0
- package/dist/integrations/sublinear.js.map +1 -0
- package/dist/integrations/task-partition.d.ts +40 -0
- package/dist/integrations/task-partition.d.ts.map +1 -0
- package/dist/integrations/task-partition.js +173 -0
- package/dist/integrations/task-partition.js.map +1 -0
- package/dist/mcp/mcp-policy.d.ts.map +1 -1
- package/dist/mcp/mcp-policy.js +2 -0
- package/dist/mcp/mcp-policy.js.map +1 -1
- package/dist/mcp/standalone-stdio.js +12 -26
- package/dist/mcp/standalone-stdio.js.map +1 -1
- package/dist/mcp/tools/ecosystem-tools.d.ts +49 -0
- package/dist/mcp/tools/ecosystem-tools.d.ts.map +1 -0
- package/dist/mcp/tools/ecosystem-tools.js +126 -0
- package/dist/mcp/tools/ecosystem-tools.js.map +1 -0
- package/dist/routing/SemanticRouter.d.ts +25 -9
- package/dist/routing/SemanticRouter.d.ts.map +1 -1
- package/dist/routing/SemanticRouter.js +63 -12
- package/dist/routing/SemanticRouter.js.map +1 -1
- package/dist/utils/input-validator.d.ts +10 -2
- package/dist/utils/input-validator.d.ts.map +1 -1
- package/dist/utils/input-validator.js +30 -2
- package/dist/utils/input-validator.js.map +1 -1
- package/dist/utils/model-cache.d.ts.map +1 -1
- package/dist/utils/model-cache.js +6 -25
- package/dist/utils/model-cache.js.map +1 -1
- package/dist/wasm/onnx-embeddings-wasm.d.ts.map +1 -1
- package/dist/wasm/onnx-embeddings-wasm.js +21 -10
- package/dist/wasm/onnx-embeddings-wasm.js.map +1 -1
- package/docs/integrations/FASTMCP_CLI_INTEGRATION.md +1 -1
- package/package.json +12 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKpE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAqN9B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,MAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwF3E;AAmED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKpE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAqN9B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,MAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwF3E;AAmED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiJrE"}
|
|
@@ -419,6 +419,14 @@ export async function handleInitCommand(args) {
|
|
|
419
419
|
totalFiles++;
|
|
420
420
|
}
|
|
421
421
|
}
|
|
422
|
+
// Codex reads skills from <project>/.agents/skills; ship the same
|
|
423
|
+
// guidance there for Codex users (the package keeps them in .agents/skills).
|
|
424
|
+
const codexSkillsSrc = path.join(path.dirname(packageClaudeDir), '.agents', 'skills');
|
|
425
|
+
if (fs.existsSync(codexSkillsSrc)) {
|
|
426
|
+
const count = copyDirRecursive(codexSkillsSrc, path.join(cwd, '.agents', 'skills'), options.verbose);
|
|
427
|
+
totalFiles += count;
|
|
428
|
+
console.log(`ā
Copied .agents/skills/ for Codex (${count} files)`);
|
|
429
|
+
}
|
|
422
430
|
console.log(`\nš Total: ${totalFiles} files copied`);
|
|
423
431
|
}
|
|
424
432
|
else {
|
|
@@ -466,6 +474,7 @@ export async function handleInitCommand(args) {
|
|
|
466
474
|
āāā skills/ # Custom skills and workflows
|
|
467
475
|
āāā helpers/ # Helper utilities
|
|
468
476
|
CLAUDE.md # Project instructions
|
|
477
|
+
.agents/skills/ # Codex skills (same integrations guidance)
|
|
469
478
|
|
|
470
479
|
š Next steps:
|
|
471
480
|
1. Start the MCP server:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI Init Command\n * Creates .claude/ folder structure and configuration files for Claude Code integration\n * Copies all agents, commands, skills, and helpers from the package\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { fileURLToPath } from 'url';\nimport { readPackageVersion } from '../../utils/package-version.js';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport { readPackageVersion };\n\nconst PACKAGE_SPEC = `agentic-flow@${readPackageVersion()}`;\n\nconst CLAUDE_MD_TEMPLATE = `# Claude Code Configuration - Agentic Flow\n\n## šØ CRITICAL: CONCURRENT EXECUTION & FILE MANAGEMENT\n\n**ABSOLUTE RULES**:\n1. ALL operations MUST be concurrent/parallel in a single message\n2. **NEVER save working files, text/mds and tests to the root folder**\n3. ALWAYS organize files in appropriate subdirectories\n4. **USE CLAUDE CODE'S TASK TOOL** for spawning agents concurrently, not just MCP\n\n### ā” GOLDEN RULE: \"1 MESSAGE = ALL RELATED OPERATIONS\"\n\n**MANDATORY PATTERNS:**\n- **TodoWrite**: ALWAYS batch ALL todos in ONE call (5-10+ todos minimum)\n- **Task tool (Claude Code)**: ALWAYS spawn ALL agents in ONE message with full instructions\n- **File operations**: ALWAYS batch ALL reads/writes/edits in ONE message\n- **Bash commands**: ALWAYS batch ALL terminal operations in ONE message\n- **Memory operations**: ALWAYS batch ALL memory store/retrieve in ONE message\n\n### šÆ CRITICAL: Claude Code Task Tool for Agent Execution\n\n**Claude Code's Task tool is the PRIMARY way to spawn agents:**\n\\`\\`\\`javascript\n// ā
CORRECT: Use Claude Code's Task tool for parallel agent execution\n[Single Message]:\n Task(\"Research agent\", \"Analyze requirements and patterns...\", \"researcher\")\n Task(\"Coder agent\", \"Implement core features...\", \"coder\")\n Task(\"Tester agent\", \"Create comprehensive tests...\", \"tester\")\n Task(\"Reviewer agent\", \"Review code quality...\", \"reviewer\")\n Task(\"Architect agent\", \"Design system architecture...\", \"system-architect\")\n\\`\\`\\`\n\n**MCP tools are ONLY for coordination setup:**\n- \\`mcp__claude-flow__swarm_init\\` - Initialize coordination topology\n- \\`mcp__claude-flow__agent_spawn\\` - Define agent types for coordination\n- \\`mcp__claude-flow__task_orchestrate\\` - Orchestrate high-level workflows\n\n### š File Organization Rules\n\n**NEVER save to root folder. Use these directories:**\n- \\`/src\\` - Source code files\n- \\`/tests\\` - Test files\n- \\`/docs\\` - Documentation and markdown files\n- \\`/config\\` - Configuration files\n- \\`/scripts\\` - Utility scripts\n- \\`/examples\\` - Example code\n\n## š Quick Start\n\n\\`\\`\\`bash\n# Start MCP server for Claude Code integration\nnpx ${PACKAGE_SPEC} mcp start\n\n# Run an agent directly\nnpx ${PACKAGE_SPEC} --agent coder --task \"Your task here\"\n\n# List available agents\nnpx ${PACKAGE_SPEC} --list\n\\`\\`\\`\n\n## š Available Agents (54 Total)\n\n### Core Development\n\\`coder\\`, \\`reviewer\\`, \\`tester\\`, \\`planner\\`, \\`researcher\\`\n\n### Swarm Coordination\n\\`hierarchical-coordinator\\`, \\`mesh-coordinator\\`, \\`adaptive-coordinator\\`, \\`collective-intelligence-coordinator\\`, \\`swarm-memory-manager\\`\n\n### Consensus & Distributed\n\\`byzantine-coordinator\\`, \\`raft-manager\\`, \\`gossip-coordinator\\`, \\`consensus-builder\\`, \\`crdt-synchronizer\\`, \\`quorum-manager\\`, \\`security-manager\\`\n\n### Performance & Optimization\n\\`perf-analyzer\\`, \\`performance-benchmarker\\`, \\`task-orchestrator\\`, \\`memory-coordinator\\`, \\`smart-agent\\`\n\n### GitHub & Repository\n\\`github-modes\\`, \\`pr-manager\\`, \\`code-review-swarm\\`, \\`issue-tracker\\`, \\`release-manager\\`, \\`workflow-automation\\`, \\`project-board-sync\\`, \\`repo-architect\\`, \\`multi-repo-swarm\\`\n\n### SPARC Methodology\n\\`sparc-coord\\`, \\`sparc-coder\\`, \\`specification\\`, \\`pseudocode\\`, \\`architecture\\`, \\`refinement\\`\n\n### Specialized Development\n\\`backend-dev\\`, \\`mobile-dev\\`, \\`ml-developer\\`, \\`cicd-engineer\\`, \\`api-docs\\`, \\`system-architect\\`, \\`code-analyzer\\`, \\`base-template-generator\\`\n\n## šÆ Claude Code vs MCP Tools\n\n### Claude Code Handles ALL EXECUTION:\n- **Task tool**: Spawn and run agents concurrently for actual work\n- File operations (Read, Write, Edit, MultiEdit, Glob, Grep)\n- Code generation and programming\n- Bash commands and system operations\n- Implementation work\n- Project navigation and analysis\n- TodoWrite and task management\n- Git operations\n- Package management\n- Testing and debugging\n\n### MCP Tools ONLY COORDINATE:\n- Swarm initialization (topology setup)\n- Agent type definitions (coordination patterns)\n- Task orchestration (high-level planning)\n- Memory management\n- Neural features\n- Performance tracking\n- GitHub integration\n\n**KEY**: MCP coordinates the strategy, Claude Code's Task tool executes with real agents.\n\n## MCP Tool Categories\n\n### Coordination\n\\`swarm_init\\`, \\`agent_spawn\\`, \\`task_orchestrate\\`\n\n### Monitoring\n\\`swarm_status\\`, \\`agent_list\\`, \\`agent_metrics\\`, \\`task_status\\`, \\`task_results\\`\n\n### Memory & Neural\n\\`memory_usage\\`, \\`neural_status\\`, \\`neural_train\\`, \\`neural_patterns\\`\n\n### GitHub Integration\n\\`github_swarm\\`, \\`repo_analyze\\`, \\`pr_enhance\\`, \\`issue_triage\\`, \\`code_review\\`\n\n## š§ Self-Learning Hooks System\n\n### Available Hooks Commands:\n\\`\\`\\`bash\n# Before editing - get context and agent suggestions\nnpx ${PACKAGE_SPEC} hooks pre-edit <filePath>\n\n# After editing - record outcome for learning\nnpx ${PACKAGE_SPEC} hooks post-edit <filePath> --success true\n\n# Before commands - assess risk\nnpx ${PACKAGE_SPEC} hooks pre-command \"<command>\"\n\n# After commands - record outcome\nnpx ${PACKAGE_SPEC} hooks post-command \"<command>\" --success true\n\n# Route task to optimal agent using learned patterns\nnpx ${PACKAGE_SPEC} hooks route \"<task description>\"\n\n# Explain routing decision with transparency\nnpx ${PACKAGE_SPEC} hooks explain \"<task description>\"\n\n# Bootstrap intelligence from repository\nnpx ${PACKAGE_SPEC} hooks pretrain\n\n# Generate optimized agent configs from pretrain data\nnpx ${PACKAGE_SPEC} hooks build-agents\n\n# View learning metrics dashboard\nnpx ${PACKAGE_SPEC} hooks metrics\n\n# Transfer patterns from another project\nnpx ${PACKAGE_SPEC} hooks transfer <sourceProject>\n\n# RuVector intelligence (SONA, MoE, HNSW 150x faster)\nnpx ${PACKAGE_SPEC} hooks intelligence\n\\`\\`\\`\n\n### Pretraining System (4-Step Pipeline):\n1. **RETRIEVE** - Top-k memory injection with MMR diversity\n2. **JUDGE** - LLM-as-judge trajectory evaluation\n3. **DISTILL** - Extract strategy memories from trajectories\n4. **CONSOLIDATE** - Dedup, detect contradictions, prune old patterns\n\n## Performance Benefits\n\n- **84.8% SWE-Bench solve rate**\n- **32.3% token reduction**\n- **2.8-4.4x speed improvement**\n- **27+ neural models**\n\n## Advanced Features (v2.0.0)\n\n- š Automatic Topology Selection\n- ā” Parallel Execution (2.8-4.4x speed)\n- š§ Neural Training\n- š Bottleneck Analysis\n- š¤ Smart Auto-Spawning\n- š”ļø Self-Healing Workflows\n- š¾ Cross-Session Memory\n- š GitHub Integration\n\n## Code Style & Best Practices\n\n- **Modular Design**: Files under 500 lines\n- **Environment Safety**: Never hardcode secrets\n- **Test-First**: Write tests before implementation\n- **Clean Architecture**: Separate concerns\n- **Documentation**: Keep updated\n\n## Support\n\n- Documentation: https://github.com/ruvnet/agentic-flow\n- Issues: https://github.com/ruvnet/agentic-flow/issues\n\n---\n\nRemember: **Agentic Flow coordinates, Claude Code creates!**\n\n# important-instruction-reminders\nDo what has been asked; nothing more, nothing less.\nNEVER create files unless they're absolutely necessary for achieving your goal.\nALWAYS prefer editing an existing file to creating a new one.\nNEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.\nNever save working files, text/mds and tests to the root folder.\n`;\n\n/**\n * settings.json written by `init`. Hooks and the MCP server are pinned to\n * `version`. Permissions do not pre-approve npx/npm or whole MCP servers:\n * those would let any package or tool run without a prompt.\n */\nexport function buildSettingsTemplate(version: string = readPackageVersion()) {\n const spec = `agentic-flow@${version}`;\n return {\n model: \"claude-sonnet-4-20250514\",\n customInstructions: \"Follow the project's CLAUDE.md guidelines. Use concurrent execution for all operations.\",\n env: {\n AGENTIC_FLOW_INTELLIGENCE: \"true\",\n AGENTIC_FLOW_LEARNING_RATE: \"0.1\",\n AGENTIC_FLOW_EPSILON: \"0.1\",\n AGENTIC_FLOW_MEMORY_BACKEND: \"agentdb\"\n },\n permissions: {\n allowedTools: [\"Read\", \"Write\", \"Edit\", \"Bash\", \"Glob\", \"Grep\", \"Task\", \"WebFetch\", \"WebSearch\", \"TodoWrite\", \"LSP\", \"NotebookEdit\"],\n deniedTools: [],\n allow: [\n \"Bash(agentic-flow:*)\"\n ]\n },\n hooks: {\n PreToolUse: [\n {\n matcher: \"Edit|Write|MultiEdit\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks pre-edit \"$TOOL_INPUT_file_path\"` }]\n },\n {\n matcher: \"Bash\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks pre-command \"$TOOL_INPUT_command\"` }]\n }\n ],\n PostToolUse: [\n {\n matcher: \"Edit|Write|MultiEdit\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks post-edit \"$TOOL_INPUT_file_path\" --success` }]\n },\n {\n matcher: \"Bash\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks post-command \"$TOOL_INPUT_command\"` }]\n }\n ],\n PostToolUseFailure: [\n {\n matcher: \"Edit|Write|MultiEdit\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks post-edit \"$TOOL_INPUT_file_path\" --fail --error \"$ERROR_MESSAGE\"` }]\n }\n ],\n SessionStart: [\n {\n hooks: [{ type: \"command\", command: `npx ${spec} hooks intelligence stats --json 2>/dev/null || true` }]\n }\n ],\n SessionEnd: [\n {\n hooks: [{ type: \"command\", command: `npx ${spec} hooks metrics --session --json 2>/dev/null || true` }]\n }\n ],\n UserPromptSubmit: [\n {\n hooks: [\n { type: \"command\", timeout: 3000, command: `npx ${spec} hooks route \"$USER_PROMPT\" --json 2>/dev/null || true` }\n ]\n }\n ],\n Stop: [\n {\n matcher: \".*\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks metrics --session 2>/dev/null || true` }]\n }\n ]\n },\n agents: {\n source: \".claude/agents\",\n customAgents: []\n },\n skills: {\n source: \".claude/commands\",\n enabled: true\n },\n statusLine: {\n type: \"command\",\n command: \".claude/statusline.sh\"\n },\n mcpServers: {\n \"agentic-flow\": {\n command: \"npx\",\n args: [spec, \"mcp\", \"start\"]\n }\n }\n };\n}\n\ninterface InitOptions {\n force?: boolean;\n minimal?: boolean;\n verbose?: boolean;\n}\n\n/**\n * Recursively copy a directory\n */\nfunction copyDirRecursive(src: string, dest: string, verbose: boolean = false): number {\n let fileCount = 0;\n\n if (!fs.existsSync(src)) {\n return fileCount;\n }\n\n if (!fs.existsSync(dest)) {\n fs.mkdirSync(dest, { recursive: true });\n }\n\n const entries = fs.readdirSync(src, { withFileTypes: true });\n\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name);\n const destPath = path.join(dest, entry.name);\n\n if (entry.isDirectory()) {\n fileCount += copyDirRecursive(srcPath, destPath, verbose);\n } else {\n fs.copyFileSync(srcPath, destPath);\n fileCount++;\n if (verbose) {\n console.log(` š ${path.relative(dest, destPath)}`);\n }\n }\n }\n\n return fileCount;\n}\n\n/**\n * Find the package's .claude directory\n */\nfunction findPackageClaudeDir(): string | null {\n // Try multiple potential locations\n const potentialPaths = [\n // When running from dist/\n path.resolve(__dirname, '..', '..', '..', '.claude'),\n // When running from src/\n path.resolve(__dirname, '..', '..', '.claude'),\n // When installed as package\n path.resolve(__dirname, '..', '.claude'),\n // Fallback to package root\n path.resolve(process.cwd(), 'node_modules', 'agentic-flow', '.claude'),\n ];\n\n for (const p of potentialPaths) {\n if (fs.existsSync(p) && fs.statSync(p).isDirectory()) {\n return p;\n }\n }\n\n return null;\n}\n\nexport async function handleInitCommand(args: string[]): Promise<void> {\n const options: InitOptions = {\n force: args.includes('--force') || args.includes('-f'),\n minimal: args.includes('--minimal') || args.includes('-m'),\n verbose: args.includes('--verbose') || args.includes('-v')\n };\n\n if (args.includes('--help') || args.includes('-h')) {\n printInitHelp();\n return;\n }\n\n const cwd = process.cwd();\n const claudeDir = path.join(cwd, '.claude');\n const claudeMdFile = path.join(cwd, 'CLAUDE.md');\n\n console.log(`\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\nā Agentic Flow - Project Initialization ā\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n`);\n\n // Check if already initialized\n if (fs.existsSync(claudeDir) && !options.force) {\n console.log('ā ļø .claude/ directory already exists.');\n console.log(' Use --force to overwrite existing configuration.\\n');\n return;\n }\n\n try {\n // Find the package's .claude directory\n const packageClaudeDir = findPackageClaudeDir();\n\n if (packageClaudeDir && !options.minimal) {\n console.log('š¦ Copying full .claude/ structure from agentic-flow package...\\n');\n\n // Copy entire .claude directory structure\n const directories = ['agents', 'commands', 'skills', 'helpers'];\n let totalFiles = 0;\n\n for (const dir of directories) {\n const srcDir = path.join(packageClaudeDir, dir);\n const destDir = path.join(claudeDir, dir);\n\n if (fs.existsSync(srcDir)) {\n const count = copyDirRecursive(srcDir, destDir, options.verbose);\n totalFiles += count;\n console.log(`ā
Copied .claude/${dir}/ (${count} files)`);\n }\n }\n\n // Copy individual files (settings.json is generated fresh with our template).\n // mcp.json is not copied: the packaged one pointed at a developer-machine\n // path (/workspaces/flow-cloud/...), so every initialized project got a\n // flow-nexus MCP server entry that could not start.\n const individualFiles = ['statusline.sh'];\n for (const file of individualFiles) {\n const srcFile = path.join(packageClaudeDir, file);\n const destFile = path.join(claudeDir, file);\n if (fs.existsSync(srcFile)) {\n fs.copyFileSync(srcFile, destFile);\n console.log(`ā
Copied .claude/${file}`);\n totalFiles++;\n }\n }\n\n console.log(`\\nš Total: ${totalFiles} files copied`);\n } else {\n // Minimal mode: create basic structure\n console.log('š¦ Creating minimal .claude/ structure...\\n');\n\n if (!fs.existsSync(claudeDir)) {\n fs.mkdirSync(claudeDir, { recursive: true });\n }\n\n const dirs = ['agents', 'commands', 'skills', 'helpers'];\n for (const dir of dirs) {\n const dirPath = path.join(claudeDir, dir);\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true });\n console.log(`ā
Created .claude/${dir}/`);\n }\n }\n }\n\n // Always generate fresh settings.json with our template\n const settingsFile = path.join(claudeDir, 'settings.json');\n if (!fs.existsSync(settingsFile) || options.force) {\n fs.writeFileSync(settingsFile, JSON.stringify(buildSettingsTemplate(), null, 2));\n console.log('ā
Created .claude/settings.json (with hooks, agents, skills, statusline)');\n }\n\n // Create CLAUDE.md in project root (unless minimal mode)\n if (!options.minimal) {\n if (!fs.existsSync(claudeMdFile) || options.force) {\n fs.writeFileSync(claudeMdFile, CLAUDE_MD_TEMPLATE);\n console.log('ā
Created CLAUDE.md');\n } else {\n console.log('ā¹ļø CLAUDE.md already exists (skipped)');\n }\n }\n\n console.log(`\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\nā Initialization Complete! ā\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n\nš Created structure:\n .claude/\n āāā settings.json # Claude Code settings (hooks, agents, skills, statusline)\n āāā statusline.sh # Custom statusline (model, tokens, cost, swarm status)\n āāā agents/ # 80+ agent definitions (coder, tester, reviewer, etc.)\n āāā commands/ # 100+ slash commands (swarm, github, sparc, etc.)\n āāā skills/ # Custom skills and workflows\n āāā helpers/ # Helper utilities\n CLAUDE.md # Project instructions\n\nš Next steps:\n 1. Start the MCP server:\n npx ${PACKAGE_SPEC} mcp start\n\n 2. Run Claude Code:\n claude\n\n 3. Or run agents directly:\n npx ${PACKAGE_SPEC} --agent coder --task \"Your task\"\n\nš Documentation:\n https://github.com/ruvnet/agentic-flow\n`);\n\n } catch (error) {\n console.error('ā Initialization failed:', error);\n process.exit(1);\n }\n}\n\nfunction printInitHelp(): void {\n console.log(`\nAgentic Flow - Project Initialization\n\nUSAGE:\n npx ${PACKAGE_SPEC} init [OPTIONS]\n\nOPTIONS:\n --force, -f Overwrite existing configuration\n --minimal, -m Create minimal setup (empty directories only)\n --verbose, -v Show detailed file copy output\n --help, -h Show this help\n\nEXAMPLES:\n npx ${PACKAGE_SPEC} init # Initialize with full agent/command library\n npx ${PACKAGE_SPEC} init --force # Reinitialize (overwrite existing)\n npx ${PACKAGE_SPEC} init --minimal # Minimal setup (empty directories)\n npx ${PACKAGE_SPEC} init --verbose # Show all files being copied\n\nCREATED FILES:\n .claude/ Claude Code configuration directory\n .claude/settings.json Settings with hooks, agents, skills, statusline, MCP servers\n .claude/agents/ 80+ agent definitions (coder, tester, reviewer, sparc, etc.)\n .claude/commands/ 100+ slash commands (swarm, github, sparc, etc.)\n .claude/skills/ Custom skills and workflows\n .claude/helpers/ Helper utilities\n CLAUDE.md Project instructions for Claude\n`);\n}\n\n// Run if executed directly\nif (process.argv[1]?.endsWith('init.js') || process.argv[1]?.endsWith('init.ts')) {\n const args = process.argv.slice(2);\n handleInitCommand(args);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI Init Command\n * Creates .claude/ folder structure and configuration files for Claude Code integration\n * Copies all agents, commands, skills, and helpers from the package\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { fileURLToPath } from 'url';\nimport { readPackageVersion } from '../../utils/package-version.js';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport { readPackageVersion };\n\nconst PACKAGE_SPEC = `agentic-flow@${readPackageVersion()}`;\n\nconst CLAUDE_MD_TEMPLATE = `# Claude Code Configuration - Agentic Flow\n\n## šØ CRITICAL: CONCURRENT EXECUTION & FILE MANAGEMENT\n\n**ABSOLUTE RULES**:\n1. ALL operations MUST be concurrent/parallel in a single message\n2. **NEVER save working files, text/mds and tests to the root folder**\n3. ALWAYS organize files in appropriate subdirectories\n4. **USE CLAUDE CODE'S TASK TOOL** for spawning agents concurrently, not just MCP\n\n### ā” GOLDEN RULE: \"1 MESSAGE = ALL RELATED OPERATIONS\"\n\n**MANDATORY PATTERNS:**\n- **TodoWrite**: ALWAYS batch ALL todos in ONE call (5-10+ todos minimum)\n- **Task tool (Claude Code)**: ALWAYS spawn ALL agents in ONE message with full instructions\n- **File operations**: ALWAYS batch ALL reads/writes/edits in ONE message\n- **Bash commands**: ALWAYS batch ALL terminal operations in ONE message\n- **Memory operations**: ALWAYS batch ALL memory store/retrieve in ONE message\n\n### šÆ CRITICAL: Claude Code Task Tool for Agent Execution\n\n**Claude Code's Task tool is the PRIMARY way to spawn agents:**\n\\`\\`\\`javascript\n// ā
CORRECT: Use Claude Code's Task tool for parallel agent execution\n[Single Message]:\n Task(\"Research agent\", \"Analyze requirements and patterns...\", \"researcher\")\n Task(\"Coder agent\", \"Implement core features...\", \"coder\")\n Task(\"Tester agent\", \"Create comprehensive tests...\", \"tester\")\n Task(\"Reviewer agent\", \"Review code quality...\", \"reviewer\")\n Task(\"Architect agent\", \"Design system architecture...\", \"system-architect\")\n\\`\\`\\`\n\n**MCP tools are ONLY for coordination setup:**\n- \\`mcp__claude-flow__swarm_init\\` - Initialize coordination topology\n- \\`mcp__claude-flow__agent_spawn\\` - Define agent types for coordination\n- \\`mcp__claude-flow__task_orchestrate\\` - Orchestrate high-level workflows\n\n### š File Organization Rules\n\n**NEVER save to root folder. Use these directories:**\n- \\`/src\\` - Source code files\n- \\`/tests\\` - Test files\n- \\`/docs\\` - Documentation and markdown files\n- \\`/config\\` - Configuration files\n- \\`/scripts\\` - Utility scripts\n- \\`/examples\\` - Example code\n\n## š Quick Start\n\n\\`\\`\\`bash\n# Start MCP server for Claude Code integration\nnpx ${PACKAGE_SPEC} mcp start\n\n# Run an agent directly\nnpx ${PACKAGE_SPEC} --agent coder --task \"Your task here\"\n\n# List available agents\nnpx ${PACKAGE_SPEC} --list\n\\`\\`\\`\n\n## š Available Agents (54 Total)\n\n### Core Development\n\\`coder\\`, \\`reviewer\\`, \\`tester\\`, \\`planner\\`, \\`researcher\\`\n\n### Swarm Coordination\n\\`hierarchical-coordinator\\`, \\`mesh-coordinator\\`, \\`adaptive-coordinator\\`, \\`collective-intelligence-coordinator\\`, \\`swarm-memory-manager\\`\n\n### Consensus & Distributed\n\\`byzantine-coordinator\\`, \\`raft-manager\\`, \\`gossip-coordinator\\`, \\`consensus-builder\\`, \\`crdt-synchronizer\\`, \\`quorum-manager\\`, \\`security-manager\\`\n\n### Performance & Optimization\n\\`perf-analyzer\\`, \\`performance-benchmarker\\`, \\`task-orchestrator\\`, \\`memory-coordinator\\`, \\`smart-agent\\`\n\n### GitHub & Repository\n\\`github-modes\\`, \\`pr-manager\\`, \\`code-review-swarm\\`, \\`issue-tracker\\`, \\`release-manager\\`, \\`workflow-automation\\`, \\`project-board-sync\\`, \\`repo-architect\\`, \\`multi-repo-swarm\\`\n\n### SPARC Methodology\n\\`sparc-coord\\`, \\`sparc-coder\\`, \\`specification\\`, \\`pseudocode\\`, \\`architecture\\`, \\`refinement\\`\n\n### Specialized Development\n\\`backend-dev\\`, \\`mobile-dev\\`, \\`ml-developer\\`, \\`cicd-engineer\\`, \\`api-docs\\`, \\`system-architect\\`, \\`code-analyzer\\`, \\`base-template-generator\\`\n\n## šÆ Claude Code vs MCP Tools\n\n### Claude Code Handles ALL EXECUTION:\n- **Task tool**: Spawn and run agents concurrently for actual work\n- File operations (Read, Write, Edit, MultiEdit, Glob, Grep)\n- Code generation and programming\n- Bash commands and system operations\n- Implementation work\n- Project navigation and analysis\n- TodoWrite and task management\n- Git operations\n- Package management\n- Testing and debugging\n\n### MCP Tools ONLY COORDINATE:\n- Swarm initialization (topology setup)\n- Agent type definitions (coordination patterns)\n- Task orchestration (high-level planning)\n- Memory management\n- Neural features\n- Performance tracking\n- GitHub integration\n\n**KEY**: MCP coordinates the strategy, Claude Code's Task tool executes with real agents.\n\n## MCP Tool Categories\n\n### Coordination\n\\`swarm_init\\`, \\`agent_spawn\\`, \\`task_orchestrate\\`\n\n### Monitoring\n\\`swarm_status\\`, \\`agent_list\\`, \\`agent_metrics\\`, \\`task_status\\`, \\`task_results\\`\n\n### Memory & Neural\n\\`memory_usage\\`, \\`neural_status\\`, \\`neural_train\\`, \\`neural_patterns\\`\n\n### GitHub Integration\n\\`github_swarm\\`, \\`repo_analyze\\`, \\`pr_enhance\\`, \\`issue_triage\\`, \\`code_review\\`\n\n## š§ Self-Learning Hooks System\n\n### Available Hooks Commands:\n\\`\\`\\`bash\n# Before editing - get context and agent suggestions\nnpx ${PACKAGE_SPEC} hooks pre-edit <filePath>\n\n# After editing - record outcome for learning\nnpx ${PACKAGE_SPEC} hooks post-edit <filePath> --success true\n\n# Before commands - assess risk\nnpx ${PACKAGE_SPEC} hooks pre-command \"<command>\"\n\n# After commands - record outcome\nnpx ${PACKAGE_SPEC} hooks post-command \"<command>\" --success true\n\n# Route task to optimal agent using learned patterns\nnpx ${PACKAGE_SPEC} hooks route \"<task description>\"\n\n# Explain routing decision with transparency\nnpx ${PACKAGE_SPEC} hooks explain \"<task description>\"\n\n# Bootstrap intelligence from repository\nnpx ${PACKAGE_SPEC} hooks pretrain\n\n# Generate optimized agent configs from pretrain data\nnpx ${PACKAGE_SPEC} hooks build-agents\n\n# View learning metrics dashboard\nnpx ${PACKAGE_SPEC} hooks metrics\n\n# Transfer patterns from another project\nnpx ${PACKAGE_SPEC} hooks transfer <sourceProject>\n\n# RuVector intelligence (SONA, MoE, HNSW 150x faster)\nnpx ${PACKAGE_SPEC} hooks intelligence\n\\`\\`\\`\n\n### Pretraining System (4-Step Pipeline):\n1. **RETRIEVE** - Top-k memory injection with MMR diversity\n2. **JUDGE** - LLM-as-judge trajectory evaluation\n3. **DISTILL** - Extract strategy memories from trajectories\n4. **CONSOLIDATE** - Dedup, detect contradictions, prune old patterns\n\n## Performance Benefits\n\n- **84.8% SWE-Bench solve rate**\n- **32.3% token reduction**\n- **2.8-4.4x speed improvement**\n- **27+ neural models**\n\n## Advanced Features (v2.0.0)\n\n- š Automatic Topology Selection\n- ā” Parallel Execution (2.8-4.4x speed)\n- š§ Neural Training\n- š Bottleneck Analysis\n- š¤ Smart Auto-Spawning\n- š”ļø Self-Healing Workflows\n- š¾ Cross-Session Memory\n- š GitHub Integration\n\n## Code Style & Best Practices\n\n- **Modular Design**: Files under 500 lines\n- **Environment Safety**: Never hardcode secrets\n- **Test-First**: Write tests before implementation\n- **Clean Architecture**: Separate concerns\n- **Documentation**: Keep updated\n\n## Support\n\n- Documentation: https://github.com/ruvnet/agentic-flow\n- Issues: https://github.com/ruvnet/agentic-flow/issues\n\n---\n\nRemember: **Agentic Flow coordinates, Claude Code creates!**\n\n# important-instruction-reminders\nDo what has been asked; nothing more, nothing less.\nNEVER create files unless they're absolutely necessary for achieving your goal.\nALWAYS prefer editing an existing file to creating a new one.\nNEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.\nNever save working files, text/mds and tests to the root folder.\n`;\n\n/**\n * settings.json written by `init`. Hooks and the MCP server are pinned to\n * `version`. Permissions do not pre-approve npx/npm or whole MCP servers:\n * those would let any package or tool run without a prompt.\n */\nexport function buildSettingsTemplate(version: string = readPackageVersion()) {\n const spec = `agentic-flow@${version}`;\n return {\n model: \"claude-sonnet-4-20250514\",\n customInstructions: \"Follow the project's CLAUDE.md guidelines. Use concurrent execution for all operations.\",\n env: {\n AGENTIC_FLOW_INTELLIGENCE: \"true\",\n AGENTIC_FLOW_LEARNING_RATE: \"0.1\",\n AGENTIC_FLOW_EPSILON: \"0.1\",\n AGENTIC_FLOW_MEMORY_BACKEND: \"agentdb\"\n },\n permissions: {\n allowedTools: [\"Read\", \"Write\", \"Edit\", \"Bash\", \"Glob\", \"Grep\", \"Task\", \"WebFetch\", \"WebSearch\", \"TodoWrite\", \"LSP\", \"NotebookEdit\"],\n deniedTools: [],\n allow: [\n \"Bash(agentic-flow:*)\"\n ]\n },\n hooks: {\n PreToolUse: [\n {\n matcher: \"Edit|Write|MultiEdit\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks pre-edit \"$TOOL_INPUT_file_path\"` }]\n },\n {\n matcher: \"Bash\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks pre-command \"$TOOL_INPUT_command\"` }]\n }\n ],\n PostToolUse: [\n {\n matcher: \"Edit|Write|MultiEdit\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks post-edit \"$TOOL_INPUT_file_path\" --success` }]\n },\n {\n matcher: \"Bash\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks post-command \"$TOOL_INPUT_command\"` }]\n }\n ],\n PostToolUseFailure: [\n {\n matcher: \"Edit|Write|MultiEdit\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks post-edit \"$TOOL_INPUT_file_path\" --fail --error \"$ERROR_MESSAGE\"` }]\n }\n ],\n SessionStart: [\n {\n hooks: [{ type: \"command\", command: `npx ${spec} hooks intelligence stats --json 2>/dev/null || true` }]\n }\n ],\n SessionEnd: [\n {\n hooks: [{ type: \"command\", command: `npx ${spec} hooks metrics --session --json 2>/dev/null || true` }]\n }\n ],\n UserPromptSubmit: [\n {\n hooks: [\n { type: \"command\", timeout: 3000, command: `npx ${spec} hooks route \"$USER_PROMPT\" --json 2>/dev/null || true` }\n ]\n }\n ],\n Stop: [\n {\n matcher: \".*\",\n hooks: [{ type: \"command\", command: `npx ${spec} hooks metrics --session 2>/dev/null || true` }]\n }\n ]\n },\n agents: {\n source: \".claude/agents\",\n customAgents: []\n },\n skills: {\n source: \".claude/commands\",\n enabled: true\n },\n statusLine: {\n type: \"command\",\n command: \".claude/statusline.sh\"\n },\n mcpServers: {\n \"agentic-flow\": {\n command: \"npx\",\n args: [spec, \"mcp\", \"start\"]\n }\n }\n };\n}\n\ninterface InitOptions {\n force?: boolean;\n minimal?: boolean;\n verbose?: boolean;\n}\n\n/**\n * Recursively copy a directory\n */\nfunction copyDirRecursive(src: string, dest: string, verbose: boolean = false): number {\n let fileCount = 0;\n\n if (!fs.existsSync(src)) {\n return fileCount;\n }\n\n if (!fs.existsSync(dest)) {\n fs.mkdirSync(dest, { recursive: true });\n }\n\n const entries = fs.readdirSync(src, { withFileTypes: true });\n\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name);\n const destPath = path.join(dest, entry.name);\n\n if (entry.isDirectory()) {\n fileCount += copyDirRecursive(srcPath, destPath, verbose);\n } else {\n fs.copyFileSync(srcPath, destPath);\n fileCount++;\n if (verbose) {\n console.log(` š ${path.relative(dest, destPath)}`);\n }\n }\n }\n\n return fileCount;\n}\n\n/**\n * Find the package's .claude directory\n */\nfunction findPackageClaudeDir(): string | null {\n // Try multiple potential locations\n const potentialPaths = [\n // When running from dist/\n path.resolve(__dirname, '..', '..', '..', '.claude'),\n // When running from src/\n path.resolve(__dirname, '..', '..', '.claude'),\n // When installed as package\n path.resolve(__dirname, '..', '.claude'),\n // Fallback to package root\n path.resolve(process.cwd(), 'node_modules', 'agentic-flow', '.claude'),\n ];\n\n for (const p of potentialPaths) {\n if (fs.existsSync(p) && fs.statSync(p).isDirectory()) {\n return p;\n }\n }\n\n return null;\n}\n\nexport async function handleInitCommand(args: string[]): Promise<void> {\n const options: InitOptions = {\n force: args.includes('--force') || args.includes('-f'),\n minimal: args.includes('--minimal') || args.includes('-m'),\n verbose: args.includes('--verbose') || args.includes('-v')\n };\n\n if (args.includes('--help') || args.includes('-h')) {\n printInitHelp();\n return;\n }\n\n const cwd = process.cwd();\n const claudeDir = path.join(cwd, '.claude');\n const claudeMdFile = path.join(cwd, 'CLAUDE.md');\n\n console.log(`\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\nā Agentic Flow - Project Initialization ā\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n`);\n\n // Check if already initialized\n if (fs.existsSync(claudeDir) && !options.force) {\n console.log('ā ļø .claude/ directory already exists.');\n console.log(' Use --force to overwrite existing configuration.\\n');\n return;\n }\n\n try {\n // Find the package's .claude directory\n const packageClaudeDir = findPackageClaudeDir();\n\n if (packageClaudeDir && !options.minimal) {\n console.log('š¦ Copying full .claude/ structure from agentic-flow package...\\n');\n\n // Copy entire .claude directory structure\n const directories = ['agents', 'commands', 'skills', 'helpers'];\n let totalFiles = 0;\n\n for (const dir of directories) {\n const srcDir = path.join(packageClaudeDir, dir);\n const destDir = path.join(claudeDir, dir);\n\n if (fs.existsSync(srcDir)) {\n const count = copyDirRecursive(srcDir, destDir, options.verbose);\n totalFiles += count;\n console.log(`ā
Copied .claude/${dir}/ (${count} files)`);\n }\n }\n\n // Copy individual files (settings.json is generated fresh with our template).\n // mcp.json is not copied: the packaged one pointed at a developer-machine\n // path (/workspaces/flow-cloud/...), so every initialized project got a\n // flow-nexus MCP server entry that could not start.\n const individualFiles = ['statusline.sh'];\n for (const file of individualFiles) {\n const srcFile = path.join(packageClaudeDir, file);\n const destFile = path.join(claudeDir, file);\n if (fs.existsSync(srcFile)) {\n fs.copyFileSync(srcFile, destFile);\n console.log(`ā
Copied .claude/${file}`);\n totalFiles++;\n }\n }\n\n // Codex reads skills from <project>/.agents/skills; ship the same\n // guidance there for Codex users (the package keeps them in .agents/skills).\n const codexSkillsSrc = path.join(path.dirname(packageClaudeDir), '.agents', 'skills');\n if (fs.existsSync(codexSkillsSrc)) {\n const count = copyDirRecursive(codexSkillsSrc, path.join(cwd, '.agents', 'skills'), options.verbose);\n totalFiles += count;\n console.log(`ā
Copied .agents/skills/ for Codex (${count} files)`);\n }\n\n console.log(`\\nš Total: ${totalFiles} files copied`);\n } else {\n // Minimal mode: create basic structure\n console.log('š¦ Creating minimal .claude/ structure...\\n');\n\n if (!fs.existsSync(claudeDir)) {\n fs.mkdirSync(claudeDir, { recursive: true });\n }\n\n const dirs = ['agents', 'commands', 'skills', 'helpers'];\n for (const dir of dirs) {\n const dirPath = path.join(claudeDir, dir);\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true });\n console.log(`ā
Created .claude/${dir}/`);\n }\n }\n }\n\n // Always generate fresh settings.json with our template\n const settingsFile = path.join(claudeDir, 'settings.json');\n if (!fs.existsSync(settingsFile) || options.force) {\n fs.writeFileSync(settingsFile, JSON.stringify(buildSettingsTemplate(), null, 2));\n console.log('ā
Created .claude/settings.json (with hooks, agents, skills, statusline)');\n }\n\n // Create CLAUDE.md in project root (unless minimal mode)\n if (!options.minimal) {\n if (!fs.existsSync(claudeMdFile) || options.force) {\n fs.writeFileSync(claudeMdFile, CLAUDE_MD_TEMPLATE);\n console.log('ā
Created CLAUDE.md');\n } else {\n console.log('ā¹ļø CLAUDE.md already exists (skipped)');\n }\n }\n\n console.log(`\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\nā Initialization Complete! ā\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n\nš Created structure:\n .claude/\n āāā settings.json # Claude Code settings (hooks, agents, skills, statusline)\n āāā statusline.sh # Custom statusline (model, tokens, cost, swarm status)\n āāā agents/ # 80+ agent definitions (coder, tester, reviewer, etc.)\n āāā commands/ # 100+ slash commands (swarm, github, sparc, etc.)\n āāā skills/ # Custom skills and workflows\n āāā helpers/ # Helper utilities\n CLAUDE.md # Project instructions\n .agents/skills/ # Codex skills (same integrations guidance)\n\nš Next steps:\n 1. Start the MCP server:\n npx ${PACKAGE_SPEC} mcp start\n\n 2. Run Claude Code:\n claude\n\n 3. Or run agents directly:\n npx ${PACKAGE_SPEC} --agent coder --task \"Your task\"\n\nš Documentation:\n https://github.com/ruvnet/agentic-flow\n`);\n\n } catch (error) {\n console.error('ā Initialization failed:', error);\n process.exit(1);\n }\n}\n\nfunction printInitHelp(): void {\n console.log(`\nAgentic Flow - Project Initialization\n\nUSAGE:\n npx ${PACKAGE_SPEC} init [OPTIONS]\n\nOPTIONS:\n --force, -f Overwrite existing configuration\n --minimal, -m Create minimal setup (empty directories only)\n --verbose, -v Show detailed file copy output\n --help, -h Show this help\n\nEXAMPLES:\n npx ${PACKAGE_SPEC} init # Initialize with full agent/command library\n npx ${PACKAGE_SPEC} init --force # Reinitialize (overwrite existing)\n npx ${PACKAGE_SPEC} init --minimal # Minimal setup (empty directories)\n npx ${PACKAGE_SPEC} init --verbose # Show all files being copied\n\nCREATED FILES:\n .claude/ Claude Code configuration directory\n .claude/settings.json Settings with hooks, agents, skills, statusline, MCP servers\n .claude/agents/ 80+ agent definitions (coder, tester, reviewer, sparc, etc.)\n .claude/commands/ 100+ slash commands (swarm, github, sparc, etc.)\n .claude/skills/ Custom skills and workflows\n .claude/helpers/ Helper utilities\n CLAUDE.md Project instructions for Claude\n`);\n}\n\n// Run if executed directly\nif (process.argv[1]?.endsWith('init.js') || process.argv[1]?.endsWith('init.ts')) {\n const args = process.argv.slice(2);\n handleInitCommand(args);\n}\n"]}
|
|
@@ -5,6 +5,14 @@
|
|
|
5
5
|
* Eliminates 2.3s overhead from process spawning and transformers.js init
|
|
6
6
|
*/
|
|
7
7
|
import { EventEmitter } from 'events';
|
|
8
|
+
/**
|
|
9
|
+
* How AgentDBFast embeds text:
|
|
10
|
+
* - 'auto' (default): all-MiniLM-L6-v2 via ruvector-onnx-embeddings-wasm when the
|
|
11
|
+
* package and model are available and vectorDimensions is 384, else hash
|
|
12
|
+
* - 'onnx-wasm': same, but emit a 'warning' event when it is unavailable
|
|
13
|
+
* - 'hash': deterministic hash vectors (no semantics; fast, offline)
|
|
14
|
+
*/
|
|
15
|
+
export type FastEmbeddingMode = 'auto' | 'onnx-wasm' | 'hash';
|
|
8
16
|
export interface Episode {
|
|
9
17
|
id?: string;
|
|
10
18
|
sessionId: string;
|
|
@@ -48,12 +56,15 @@ export declare class AgentDBFast extends EventEmitter {
|
|
|
48
56
|
private config;
|
|
49
57
|
private initialized;
|
|
50
58
|
private embeddingCache;
|
|
59
|
+
private embeddingSource;
|
|
60
|
+
private semanticEmbedder;
|
|
51
61
|
constructor(config?: {
|
|
52
62
|
path?: string;
|
|
53
63
|
vectorDimensions?: number;
|
|
54
64
|
enableHNSW?: boolean;
|
|
55
65
|
hnswM?: number;
|
|
56
66
|
hnswEfConstruction?: number;
|
|
67
|
+
embeddings?: FastEmbeddingMode;
|
|
57
68
|
});
|
|
58
69
|
/**
|
|
59
70
|
* Initialize database connection (lazy)
|
|
@@ -88,22 +99,20 @@ export declare class AgentDBFast extends EventEmitter {
|
|
|
88
99
|
* Close database connection
|
|
89
100
|
*/
|
|
90
101
|
close(): Promise<void>;
|
|
102
|
+
/** Which embedder produced vectors so far: 'onnx-wasm', 'hash', or null before the first. */
|
|
103
|
+
getEmbeddingSource(): 'onnx-wasm' | 'hash' | null;
|
|
104
|
+
private getSemanticEmbedder;
|
|
91
105
|
/**
|
|
92
|
-
* Generate embedding for text (with caching)
|
|
106
|
+
* Generate embedding for text (with caching).
|
|
93
107
|
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* - SentenceTransformers
|
|
108
|
+
* Real all-MiniLM-L6-v2 vectors when ruvector-onnx-embeddings-wasm is
|
|
109
|
+
* available (see FastEmbeddingMode), deterministic hash vectors otherwise.
|
|
110
|
+
* The source is fixed by the first embedding so one store never mixes both.
|
|
98
111
|
*/
|
|
99
112
|
private getEmbedding;
|
|
100
113
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* Production alternatives:
|
|
104
|
-
* 1. OpenAI: https://platform.openai.com/docs/guides/embeddings
|
|
105
|
-
* 2. Transformers.js: https://huggingface.co/docs/transformers.js
|
|
106
|
-
* 3. SBERT: https://www.sbert.net/
|
|
114
|
+
* Deterministic hash-based embedding: the offline fallback. It carries no
|
|
115
|
+
* semantics (similar texts do not get similar vectors).
|
|
107
116
|
*/
|
|
108
117
|
private simpleHashEmbedding;
|
|
109
118
|
/**
|
|
@@ -118,6 +127,7 @@ export declare function createFastAgentDB(config?: {
|
|
|
118
127
|
path?: string;
|
|
119
128
|
vectorDimensions?: number;
|
|
120
129
|
enableHNSW?: boolean;
|
|
130
|
+
embeddings?: FastEmbeddingMode;
|
|
121
131
|
}): AgentDBFast;
|
|
122
132
|
/**
|
|
123
133
|
* Performance comparison helper
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentdb-fast.d.ts","sourceRoot":"","sources":["../../src/core/agentdb-fast.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"agentdb-fast.d.ts","sourceRoot":"","sources":["../../src/core/agentdb-fast.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAOZ;IACF,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,gBAAgB,CAA+E;gBAE3F,MAAM,GAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,UAAU,CAAC,EAAE,iBAAiB,CAAC;KAC3B;IAaN;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BjC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCrD;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyCzE;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BrD;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,CAAC,GAAE,MAAU,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,EAAE,CAAC;IAgCrB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IA+BF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,6FAA6F;IAC7F,kBAAkB,IAAI,WAAW,GAAG,MAAM,GAAG,IAAI;IAIjD,OAAO,CAAC,mBAAmB;IAU3B;;;;;;OAMG;YACW,YAAY;IAkC1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,GAAG,WAAW,CAEd;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAChD,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,CAAC,CAqCD"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { AgentDB } from 'agentdb';
|
|
8
8
|
import { EventEmitter } from 'events';
|
|
9
|
+
import { getOnnxWasmEmbedder, ONNX_WASM_DIMENSION } from '../integrations/onnx-wasm-embedder.js';
|
|
9
10
|
/**
|
|
10
11
|
* Fast AgentDB client that avoids CLI overhead
|
|
11
12
|
*
|
|
@@ -20,6 +21,8 @@ export class AgentDBFast extends EventEmitter {
|
|
|
20
21
|
config;
|
|
21
22
|
initialized = false;
|
|
22
23
|
embeddingCache = new Map();
|
|
24
|
+
embeddingSource = null;
|
|
25
|
+
semanticEmbedder = null;
|
|
23
26
|
constructor(config = {}) {
|
|
24
27
|
super();
|
|
25
28
|
this.config = {
|
|
@@ -27,7 +30,8 @@ export class AgentDBFast extends EventEmitter {
|
|
|
27
30
|
vectorDimensions: config.vectorDimensions || 384,
|
|
28
31
|
enableHNSW: config.enableHNSW !== false,
|
|
29
32
|
hnswM: config.hnswM || 16,
|
|
30
|
-
hnswEfConstruction: config.hnswEfConstruction || 200
|
|
33
|
+
hnswEfConstruction: config.hnswEfConstruction || 200,
|
|
34
|
+
embeddings: config.embeddings ?? (process.env.AGENTIC_FLOW_EMBEDDINGS === 'hash' ? 'hash' : 'auto'),
|
|
31
35
|
};
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
@@ -204,21 +208,46 @@ export class AgentDBFast extends EventEmitter {
|
|
|
204
208
|
}
|
|
205
209
|
this.initialized = false;
|
|
206
210
|
}
|
|
211
|
+
/** Which embedder produced vectors so far: 'onnx-wasm', 'hash', or null before the first. */
|
|
212
|
+
getEmbeddingSource() {
|
|
213
|
+
return this.embeddingSource;
|
|
214
|
+
}
|
|
215
|
+
getSemanticEmbedder() {
|
|
216
|
+
if (!this.semanticEmbedder) {
|
|
217
|
+
this.semanticEmbedder =
|
|
218
|
+
this.config.embeddings !== 'hash' && this.config.vectorDimensions === ONNX_WASM_DIMENSION
|
|
219
|
+
? getOnnxWasmEmbedder()
|
|
220
|
+
: Promise.resolve(null);
|
|
221
|
+
}
|
|
222
|
+
return this.semanticEmbedder;
|
|
223
|
+
}
|
|
207
224
|
/**
|
|
208
|
-
* Generate embedding for text (with caching)
|
|
225
|
+
* Generate embedding for text (with caching).
|
|
209
226
|
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
* - SentenceTransformers
|
|
227
|
+
* Real all-MiniLM-L6-v2 vectors when ruvector-onnx-embeddings-wasm is
|
|
228
|
+
* available (see FastEmbeddingMode), deterministic hash vectors otherwise.
|
|
229
|
+
* The source is fixed by the first embedding so one store never mixes both.
|
|
214
230
|
*/
|
|
215
231
|
async getEmbedding(text) {
|
|
216
232
|
// Check cache
|
|
217
233
|
if (this.embeddingCache.has(text)) {
|
|
218
234
|
return this.embeddingCache.get(text);
|
|
219
235
|
}
|
|
220
|
-
|
|
221
|
-
|
|
236
|
+
let embedding = null;
|
|
237
|
+
if (this.embeddingSource !== 'hash') {
|
|
238
|
+
const semantic = await this.getSemanticEmbedder();
|
|
239
|
+
if (semantic) {
|
|
240
|
+
embedding = Array.from(await semantic.embed(text));
|
|
241
|
+
this.embeddingSource = 'onnx-wasm';
|
|
242
|
+
}
|
|
243
|
+
else if (this.config.embeddings === 'onnx-wasm') {
|
|
244
|
+
this.emit('warning', new Error('onnx-wasm embeddings requested but unavailable; using hash embeddings'));
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (!embedding) {
|
|
248
|
+
embedding = this.simpleHashEmbedding(text);
|
|
249
|
+
this.embeddingSource = 'hash';
|
|
250
|
+
}
|
|
222
251
|
// Cache it
|
|
223
252
|
this.embeddingCache.set(text, embedding);
|
|
224
253
|
if (this.embeddingCache.size > 1000) {
|
|
@@ -231,12 +260,8 @@ export class AgentDBFast extends EventEmitter {
|
|
|
231
260
|
return embedding;
|
|
232
261
|
}
|
|
233
262
|
/**
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
* Production alternatives:
|
|
237
|
-
* 1. OpenAI: https://platform.openai.com/docs/guides/embeddings
|
|
238
|
-
* 2. Transformers.js: https://huggingface.co/docs/transformers.js
|
|
239
|
-
* 3. SBERT: https://www.sbert.net/
|
|
263
|
+
* Deterministic hash-based embedding: the offline fallback. It carries no
|
|
264
|
+
* semantics (similar texts do not get similar vectors).
|
|
240
265
|
*/
|
|
241
266
|
simpleHashEmbedding(text) {
|
|
242
267
|
const embedding = new Array(this.config.vectorDimensions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentdb-fast.js","sourceRoot":"","sources":["../../src/core/agentdb-fast.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentDB Fast API\n *\n * Provides programmatic access to AgentDB without CLI overhead\n * Eliminates 2.3s overhead from process spawning and transformers.js init\n */\n\nimport { AgentDB } from 'agentdb';\nimport { EventEmitter } from 'events';\n\nexport interface Episode {\n id?: string;\n sessionId: string;\n task: string;\n trajectory: string[];\n reward: number;\n quality?: number;\n embedding?: number[];\n context?: Record<string, any>;\n timestamp?: number;\n}\n\nexport interface EpisodeSearchOptions {\n task?: string;\n minReward?: number;\n maxReward?: number;\n sessionId?: string;\n k?: number;\n filter?: Record<string, any>;\n}\n\nexport interface Pattern {\n id?: string;\n task: string;\n input: string;\n output: string;\n quality: number;\n embedding?: number[];\n context?: Record<string, any>;\n timestamp?: number;\n}\n\n/**\n * Fast AgentDB client that avoids CLI overhead\n *\n * Performance:\n * - CLI: ~2,350ms per operation\n * - Direct API: ~10-50ms per operation\n * - Speedup: ~50-200x faster\n */\nexport class AgentDBFast extends EventEmitter {\n private db: AgentDB | null = null;\n private backend: any = null;\n private config: {\n path: string;\n vectorDimensions: number;\n enableHNSW: boolean;\n hnswM?: number;\n hnswEfConstruction?: number;\n };\n private initialized: boolean = false;\n private embeddingCache: Map<string, number[]> = new Map();\n\n constructor(config: {\n path?: string;\n vectorDimensions?: number;\n enableHNSW?: boolean;\n hnswM?: number;\n hnswEfConstruction?: number;\n } = {}) {\n super();\n\n this.config = {\n path: config.path || '.agentdb-fast',\n vectorDimensions: config.vectorDimensions || 384,\n enableHNSW: config.enableHNSW !== false,\n hnswM: config.hnswM || 16,\n hnswEfConstruction: config.hnswEfConstruction || 200\n };\n }\n\n /**\n * Initialize database connection (lazy)\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n try {\n // Create AgentDB instance - use any for flexible config\n this.db = new AgentDB({\n dimensions: this.config.vectorDimensions,\n storagePath: this.config.path\n } as any);\n\n await this.db.initialize();\n\n // Access the vector backend as a direct property\n if (this.db.vectorBackend) {\n this.backend = this.db.vectorBackend;\n } else {\n throw new Error('Vector backend not available');\n }\n\n this.initialized = true;\n this.emit('initialized');\n } catch (error: any) {\n throw new Error(`Failed to initialize AgentDB: ${error.message}`);\n }\n }\n\n /**\n * Store an episode (fast, no CLI overhead)\n */\n async storeEpisode(episode: Episode): Promise<string> {\n await this.initialize();\n\n // Generate embedding if not provided\n if (!episode.embedding) {\n episode.embedding = await this.getEmbedding(episode.task);\n }\n\n const episodeId = episode.id || this.generateId('episode');\n\n // Use backend insert method\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n await this.backend.insert(\n episodeId,\n new Float32Array(episode.embedding),\n {\n type: 'episode',\n sessionId: episode.sessionId,\n task: episode.task,\n trajectory: JSON.stringify(episode.trajectory),\n reward: episode.reward,\n quality: episode.quality,\n context: episode.context,\n timestamp: episode.timestamp || Date.now()\n }\n );\n\n this.emit('episode:stored', episodeId);\n return episodeId;\n }\n\n /**\n * Retrieve episodes by task similarity (fast)\n */\n async retrieveEpisodes(options: EpisodeSearchOptions): Promise<Episode[]> {\n await this.initialize();\n\n const dimensions = this.config.vectorDimensions ?? 384;\n const queryEmbedding = options.task\n ? await this.getEmbedding(options.task)\n : Array(dimensions).fill(0);\n\n const k = options.k || 5;\n\n // Build filter\n const filter: Record<string, any> = { type: 'episode' };\n if (options.sessionId) filter.sessionId = options.sessionId;\n if (options.minReward !== undefined) filter.reward = { $gte: options.minReward };\n if (options.maxReward !== undefined) {\n filter.reward = { ...(filter.reward || {}), $lte: options.maxReward };\n }\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n const results = await this.backend.search(\n new Float32Array(queryEmbedding),\n k,\n { filter: Object.keys(filter).length > 1 ? filter : undefined }\n );\n\n return results.map((result: any) => ({\n id: result.id,\n sessionId: result.metadata.sessionId,\n task: result.metadata.task,\n trajectory: JSON.parse(result.metadata.trajectory || '[]'),\n reward: result.metadata.reward,\n quality: result.metadata.quality,\n embedding: result.vector,\n context: result.metadata.context,\n timestamp: result.metadata.timestamp\n }));\n }\n\n /**\n * Store a pattern (for ReasoningBank)\n */\n async storePattern(pattern: Pattern): Promise<string> {\n await this.initialize();\n\n if (!pattern.embedding) {\n pattern.embedding = await this.getEmbedding(`${pattern.input} ${pattern.output}`);\n }\n\n const patternId = pattern.id || this.generateId('pattern');\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n await this.backend.insert(\n patternId,\n new Float32Array(pattern.embedding),\n {\n type: 'pattern',\n task: pattern.task,\n input: pattern.input,\n output: pattern.output,\n quality: pattern.quality,\n context: pattern.context,\n timestamp: pattern.timestamp || Date.now()\n }\n );\n\n this.emit('pattern:stored', patternId);\n return patternId;\n }\n\n /**\n * Search for similar patterns\n */\n async searchPatterns(\n query: string,\n k: number = 5,\n minQuality?: number\n ): Promise<Pattern[]> {\n await this.initialize();\n\n const queryEmbedding = await this.getEmbedding(query);\n\n const filter: Record<string, any> = { type: 'pattern' };\n if (minQuality !== undefined) {\n filter.quality = { $gte: minQuality };\n }\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n const results = await this.backend.search(\n new Float32Array(queryEmbedding),\n k,\n { filter: Object.keys(filter).length > 1 ? filter : undefined }\n );\n\n return results.map((result: any) => ({\n id: result.id,\n task: result.metadata.task,\n input: result.metadata.input,\n output: result.metadata.output,\n quality: result.metadata.quality,\n embedding: result.vector,\n context: result.metadata.context,\n timestamp: result.metadata.timestamp\n }));\n }\n\n /**\n * Get database statistics\n */\n async getStats(): Promise<{\n totalVectors: number;\n totalEpisodes: number;\n totalPatterns: number;\n avgQuality: number;\n }> {\n await this.initialize();\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n const stats = await this.backend.stats();\n\n // Count by type - get all results\n const allResults = await this.backend.search(\n new Float32Array(this.config.vectorDimensions).fill(0),\n 10000, // Get all\n {}\n );\n\n const episodes = allResults.filter((r: any) => r.metadata?.type === 'episode');\n const patterns = allResults.filter((r: any) => r.metadata?.type === 'pattern');\n\n const avgQuality =\n patterns.reduce((sum: number, p: any) => sum + (p.metadata?.quality || 0), 0) /\n (patterns.length || 1);\n\n return {\n totalVectors: stats.totalVectors || allResults.length || 0,\n totalEpisodes: episodes.length,\n totalPatterns: patterns.length,\n avgQuality\n };\n }\n\n /**\n * Close database connection\n */\n async close(): Promise<void> {\n this.removeAllListeners();\n this.embeddingCache.clear();\n\n if (this.db) {\n await this.db.close();\n this.db = null;\n this.backend = null;\n }\n\n this.initialized = false;\n }\n\n /**\n * Generate embedding for text (with caching)\n *\n * Note: This is a simple mock. In production, replace with:\n * - OpenAI embeddings API\n * - Local transformer model\n * - SentenceTransformers\n */\n private async getEmbedding(text: string): Promise<number[]> {\n // Check cache\n if (this.embeddingCache.has(text)) {\n return this.embeddingCache.get(text)!;\n }\n\n // Simple hash-based embedding (REPLACE IN PRODUCTION)\n const embedding = this.simpleHashEmbedding(text);\n\n // Cache it\n this.embeddingCache.set(text, embedding);\n if (this.embeddingCache.size > 1000) {\n // LRU-style cleanup\n const firstKey = this.embeddingCache.keys().next().value as string | undefined;\n if (firstKey) {\n this.embeddingCache.delete(firstKey);\n }\n }\n\n return embedding;\n }\n\n /**\n * Simple hash-based embedding (MOCK - REPLACE IN PRODUCTION)\n *\n * Production alternatives:\n * 1. OpenAI: https://platform.openai.com/docs/guides/embeddings\n * 2. Transformers.js: https://huggingface.co/docs/transformers.js\n * 3. SBERT: https://www.sbert.net/\n */\n private simpleHashEmbedding(text: string): number[] {\n const embedding = new Array(this.config.vectorDimensions);\n\n // Seed with text hash\n let hash = 0;\n for (let i = 0; i < text.length; i++) {\n hash = (hash << 5) - hash + text.charCodeAt(i);\n hash = hash & hash;\n }\n\n // Generate pseudo-random embedding\n for (let i = 0; i < this.config.vectorDimensions; i++) {\n const seed = hash + i * 2654435761;\n const x = Math.sin(seed) * 10000;\n embedding[i] = x - Math.floor(x);\n }\n\n // Normalize\n const norm = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));\n return embedding.map(v => v / norm);\n }\n\n /**\n * Generate unique ID\n */\n private generateId(prefix: string): string {\n return `${prefix}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n\n/**\n * Convenience function to create a fast AgentDB client\n */\nexport function createFastAgentDB(config?: {\n path?: string;\n vectorDimensions?: number;\n enableHNSW?: boolean;\n}): AgentDBFast {\n return new AgentDBFast(config);\n}\n\n/**\n * Performance comparison helper\n */\nexport async function benchmarkAgentDB(): Promise<{\n cli: { store: number; retrieve: number };\n api: { store: number; retrieve: number };\n speedup: { store: number; retrieve: number };\n}> {\n const client = createFastAgentDB({ path: '.agentdb-benchmark' });\n\n // API benchmark\n const apiStoreStart = Date.now();\n const episodeId = await client.storeEpisode({\n sessionId: 'test-session',\n task: 'test-task',\n trajectory: ['step1', 'step2'],\n reward: 0.8\n });\n const apiStoreTime = Date.now() - apiStoreStart;\n\n const apiRetrieveStart = Date.now();\n await client.retrieveEpisodes({ task: 'test-task', k: 5 });\n const apiRetrieveTime = Date.now() - apiRetrieveStart;\n\n await client.close();\n\n // CLI times from benchmarks\n const cliStoreTime = 2350;\n const cliRetrieveTime = 2400;\n\n return {\n cli: {\n store: cliStoreTime,\n retrieve: cliRetrieveTime\n },\n api: {\n store: apiStoreTime,\n retrieve: apiRetrieveTime\n },\n speedup: {\n store: cliStoreTime / apiStoreTime,\n retrieve: cliRetrieveTime / apiRetrieveTime\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agentdb-fast.js","sourceRoot":"","sources":["../../src/core/agentdb-fast.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AA2CjG;;;;;;;GAOG;AACH,MAAM,OAAO,WAAY,SAAQ,YAAY;IACnC,EAAE,GAAmB,IAAI,CAAC;IAC1B,OAAO,GAAQ,IAAI,CAAC;IACpB,MAAM,CAOZ;IACM,WAAW,GAAY,KAAK,CAAC;IAC7B,cAAc,GAA0B,IAAI,GAAG,EAAE,CAAC;IAClD,eAAe,GAAgC,IAAI,CAAC;IACpD,gBAAgB,GAA0E,IAAI,CAAC;IAEvG,YAAY,SAOR,EAAE;QACJ,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,eAAe;YACpC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,GAAG;YAChD,UAAU,EAAE,MAAM,CAAC,UAAU,KAAK,KAAK;YACvC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YACzB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,GAAG;YACpD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;SACpG,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,IAAI,CAAC;YACH,wDAAwD;YACxD,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC;gBACpB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBACxC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aACvB,CAAC,CAAC;YAEV,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YAE3B,iDAAiD;YACjD,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB;QACjC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,qCAAqC;QACrC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE3D,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvB,SAAS,EACT,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EACnC;YACE,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;SAC3C,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAA6B;QAClD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,GAAG,CAAC;QACvD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI;YACjC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE9B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QAEzB,eAAe;QACf,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC5D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QACjF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvC,IAAI,YAAY,CAAC,cAAc,CAAC,EAChC,CAAC,EACD,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAChE,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;YACpC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC1B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;YAC1D,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC9B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YAChC,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YAChC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;SACrC,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB;QACjC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvB,SAAS,EACT,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EACnC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;SAC3C,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,IAAY,CAAC,EACb,UAAmB;QAEnB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvC,IAAI,YAAY,CAAC,cAAc,CAAC,EAChC,CAAC,EACD,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAChE,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;YAC5B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC9B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YAChC,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YAChC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;SACrC,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QAMZ,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEzC,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAC1C,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EACtD,KAAK,EAAE,UAAU;QACjB,EAAE,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC;QAE/E,MAAM,UAAU,GACd,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAEzB,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;YAC1D,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,6FAA6F;IAC7F,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB;gBACnB,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,mBAAmB;oBACvF,CAAC,CAAC,mBAAmB,EAAE;oBACvB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,IAAY;QACrC,cAAc;QACd,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACxC,CAAC;QAED,IAAI,SAAS,GAAoB,IAAI,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAChC,CAAC;QAED,WAAW;QACX,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;YACpC,oBAAoB;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAA2B,CAAC;YAC/E,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,IAAY;QACtC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE1D,sBAAsB;QACtB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,mCAAmC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACjC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,YAAY;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,MAAc;QAC/B,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAKjC;IACC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAKpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAEjE,gBAAgB;IAChB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC1C,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9B,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;IAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;IAEtD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,4BAA4B;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAC;IAC1B,MAAM,eAAe,GAAG,IAAI,CAAC;IAE7B,OAAO;QACL,GAAG,EAAE;YACH,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,eAAe;SAC1B;QACD,GAAG,EAAE;YACH,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,eAAe;SAC1B;QACD,OAAO,EAAE;YACP,KAAK,EAAE,YAAY,GAAG,YAAY;YAClC,QAAQ,EAAE,eAAe,GAAG,eAAe;SAC5C;KACF,CAAC;AACJ,CAAC","sourcesContent":["/**\n * AgentDB Fast API\n *\n * Provides programmatic access to AgentDB without CLI overhead\n * Eliminates 2.3s overhead from process spawning and transformers.js init\n */\n\nimport { AgentDB } from 'agentdb';\nimport { EventEmitter } from 'events';\nimport { getOnnxWasmEmbedder, ONNX_WASM_DIMENSION } from '../integrations/onnx-wasm-embedder.js';\n\n/**\n * How AgentDBFast embeds text:\n * - 'auto' (default): all-MiniLM-L6-v2 via ruvector-onnx-embeddings-wasm when the\n * package and model are available and vectorDimensions is 384, else hash\n * - 'onnx-wasm': same, but emit a 'warning' event when it is unavailable\n * - 'hash': deterministic hash vectors (no semantics; fast, offline)\n */\nexport type FastEmbeddingMode = 'auto' | 'onnx-wasm' | 'hash';\n\nexport interface Episode {\n id?: string;\n sessionId: string;\n task: string;\n trajectory: string[];\n reward: number;\n quality?: number;\n embedding?: number[];\n context?: Record<string, any>;\n timestamp?: number;\n}\n\nexport interface EpisodeSearchOptions {\n task?: string;\n minReward?: number;\n maxReward?: number;\n sessionId?: string;\n k?: number;\n filter?: Record<string, any>;\n}\n\nexport interface Pattern {\n id?: string;\n task: string;\n input: string;\n output: string;\n quality: number;\n embedding?: number[];\n context?: Record<string, any>;\n timestamp?: number;\n}\n\n/**\n * Fast AgentDB client that avoids CLI overhead\n *\n * Performance:\n * - CLI: ~2,350ms per operation\n * - Direct API: ~10-50ms per operation\n * - Speedup: ~50-200x faster\n */\nexport class AgentDBFast extends EventEmitter {\n private db: AgentDB | null = null;\n private backend: any = null;\n private config: {\n path: string;\n vectorDimensions: number;\n enableHNSW: boolean;\n hnswM?: number;\n hnswEfConstruction?: number;\n embeddings: FastEmbeddingMode;\n };\n private initialized: boolean = false;\n private embeddingCache: Map<string, number[]> = new Map();\n private embeddingSource: 'onnx-wasm' | 'hash' | null = null;\n private semanticEmbedder: Promise<{ embed(text: string): Promise<Float32Array> } | null> | null = null;\n\n constructor(config: {\n path?: string;\n vectorDimensions?: number;\n enableHNSW?: boolean;\n hnswM?: number;\n hnswEfConstruction?: number;\n embeddings?: FastEmbeddingMode;\n } = {}) {\n super();\n\n this.config = {\n path: config.path || '.agentdb-fast',\n vectorDimensions: config.vectorDimensions || 384,\n enableHNSW: config.enableHNSW !== false,\n hnswM: config.hnswM || 16,\n hnswEfConstruction: config.hnswEfConstruction || 200,\n embeddings: config.embeddings ?? (process.env.AGENTIC_FLOW_EMBEDDINGS === 'hash' ? 'hash' : 'auto'),\n };\n }\n\n /**\n * Initialize database connection (lazy)\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n try {\n // Create AgentDB instance - use any for flexible config\n this.db = new AgentDB({\n dimensions: this.config.vectorDimensions,\n storagePath: this.config.path\n } as any);\n\n await this.db.initialize();\n\n // Access the vector backend as a direct property\n if (this.db.vectorBackend) {\n this.backend = this.db.vectorBackend;\n } else {\n throw new Error('Vector backend not available');\n }\n\n this.initialized = true;\n this.emit('initialized');\n } catch (error: any) {\n throw new Error(`Failed to initialize AgentDB: ${error.message}`);\n }\n }\n\n /**\n * Store an episode (fast, no CLI overhead)\n */\n async storeEpisode(episode: Episode): Promise<string> {\n await this.initialize();\n\n // Generate embedding if not provided\n if (!episode.embedding) {\n episode.embedding = await this.getEmbedding(episode.task);\n }\n\n const episodeId = episode.id || this.generateId('episode');\n\n // Use backend insert method\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n await this.backend.insert(\n episodeId,\n new Float32Array(episode.embedding),\n {\n type: 'episode',\n sessionId: episode.sessionId,\n task: episode.task,\n trajectory: JSON.stringify(episode.trajectory),\n reward: episode.reward,\n quality: episode.quality,\n context: episode.context,\n timestamp: episode.timestamp || Date.now()\n }\n );\n\n this.emit('episode:stored', episodeId);\n return episodeId;\n }\n\n /**\n * Retrieve episodes by task similarity (fast)\n */\n async retrieveEpisodes(options: EpisodeSearchOptions): Promise<Episode[]> {\n await this.initialize();\n\n const dimensions = this.config.vectorDimensions ?? 384;\n const queryEmbedding = options.task\n ? await this.getEmbedding(options.task)\n : Array(dimensions).fill(0);\n\n const k = options.k || 5;\n\n // Build filter\n const filter: Record<string, any> = { type: 'episode' };\n if (options.sessionId) filter.sessionId = options.sessionId;\n if (options.minReward !== undefined) filter.reward = { $gte: options.minReward };\n if (options.maxReward !== undefined) {\n filter.reward = { ...(filter.reward || {}), $lte: options.maxReward };\n }\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n const results = await this.backend.search(\n new Float32Array(queryEmbedding),\n k,\n { filter: Object.keys(filter).length > 1 ? filter : undefined }\n );\n\n return results.map((result: any) => ({\n id: result.id,\n sessionId: result.metadata.sessionId,\n task: result.metadata.task,\n trajectory: JSON.parse(result.metadata.trajectory || '[]'),\n reward: result.metadata.reward,\n quality: result.metadata.quality,\n embedding: result.vector,\n context: result.metadata.context,\n timestamp: result.metadata.timestamp\n }));\n }\n\n /**\n * Store a pattern (for ReasoningBank)\n */\n async storePattern(pattern: Pattern): Promise<string> {\n await this.initialize();\n\n if (!pattern.embedding) {\n pattern.embedding = await this.getEmbedding(`${pattern.input} ${pattern.output}`);\n }\n\n const patternId = pattern.id || this.generateId('pattern');\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n await this.backend.insert(\n patternId,\n new Float32Array(pattern.embedding),\n {\n type: 'pattern',\n task: pattern.task,\n input: pattern.input,\n output: pattern.output,\n quality: pattern.quality,\n context: pattern.context,\n timestamp: pattern.timestamp || Date.now()\n }\n );\n\n this.emit('pattern:stored', patternId);\n return patternId;\n }\n\n /**\n * Search for similar patterns\n */\n async searchPatterns(\n query: string,\n k: number = 5,\n minQuality?: number\n ): Promise<Pattern[]> {\n await this.initialize();\n\n const queryEmbedding = await this.getEmbedding(query);\n\n const filter: Record<string, any> = { type: 'pattern' };\n if (minQuality !== undefined) {\n filter.quality = { $gte: minQuality };\n }\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n const results = await this.backend.search(\n new Float32Array(queryEmbedding),\n k,\n { filter: Object.keys(filter).length > 1 ? filter : undefined }\n );\n\n return results.map((result: any) => ({\n id: result.id,\n task: result.metadata.task,\n input: result.metadata.input,\n output: result.metadata.output,\n quality: result.metadata.quality,\n embedding: result.vector,\n context: result.metadata.context,\n timestamp: result.metadata.timestamp\n }));\n }\n\n /**\n * Get database statistics\n */\n async getStats(): Promise<{\n totalVectors: number;\n totalEpisodes: number;\n totalPatterns: number;\n avgQuality: number;\n }> {\n await this.initialize();\n\n if (!this.backend) {\n throw new Error('Backend not initialized');\n }\n\n const stats = await this.backend.stats();\n\n // Count by type - get all results\n const allResults = await this.backend.search(\n new Float32Array(this.config.vectorDimensions).fill(0),\n 10000, // Get all\n {}\n );\n\n const episodes = allResults.filter((r: any) => r.metadata?.type === 'episode');\n const patterns = allResults.filter((r: any) => r.metadata?.type === 'pattern');\n\n const avgQuality =\n patterns.reduce((sum: number, p: any) => sum + (p.metadata?.quality || 0), 0) /\n (patterns.length || 1);\n\n return {\n totalVectors: stats.totalVectors || allResults.length || 0,\n totalEpisodes: episodes.length,\n totalPatterns: patterns.length,\n avgQuality\n };\n }\n\n /**\n * Close database connection\n */\n async close(): Promise<void> {\n this.removeAllListeners();\n this.embeddingCache.clear();\n\n if (this.db) {\n await this.db.close();\n this.db = null;\n this.backend = null;\n }\n\n this.initialized = false;\n }\n\n /** Which embedder produced vectors so far: 'onnx-wasm', 'hash', or null before the first. */\n getEmbeddingSource(): 'onnx-wasm' | 'hash' | null {\n return this.embeddingSource;\n }\n\n private getSemanticEmbedder() {\n if (!this.semanticEmbedder) {\n this.semanticEmbedder =\n this.config.embeddings !== 'hash' && this.config.vectorDimensions === ONNX_WASM_DIMENSION\n ? getOnnxWasmEmbedder()\n : Promise.resolve(null);\n }\n return this.semanticEmbedder;\n }\n\n /**\n * Generate embedding for text (with caching).\n *\n * Real all-MiniLM-L6-v2 vectors when ruvector-onnx-embeddings-wasm is\n * available (see FastEmbeddingMode), deterministic hash vectors otherwise.\n * The source is fixed by the first embedding so one store never mixes both.\n */\n private async getEmbedding(text: string): Promise<number[]> {\n // Check cache\n if (this.embeddingCache.has(text)) {\n return this.embeddingCache.get(text)!;\n }\n\n let embedding: number[] | null = null;\n if (this.embeddingSource !== 'hash') {\n const semantic = await this.getSemanticEmbedder();\n if (semantic) {\n embedding = Array.from(await semantic.embed(text));\n this.embeddingSource = 'onnx-wasm';\n } else if (this.config.embeddings === 'onnx-wasm') {\n this.emit('warning', new Error('onnx-wasm embeddings requested but unavailable; using hash embeddings'));\n }\n }\n if (!embedding) {\n embedding = this.simpleHashEmbedding(text);\n this.embeddingSource = 'hash';\n }\n\n // Cache it\n this.embeddingCache.set(text, embedding);\n if (this.embeddingCache.size > 1000) {\n // LRU-style cleanup\n const firstKey = this.embeddingCache.keys().next().value as string | undefined;\n if (firstKey) {\n this.embeddingCache.delete(firstKey);\n }\n }\n\n return embedding;\n }\n\n /**\n * Deterministic hash-based embedding: the offline fallback. It carries no\n * semantics (similar texts do not get similar vectors).\n */\n private simpleHashEmbedding(text: string): number[] {\n const embedding = new Array(this.config.vectorDimensions);\n\n // Seed with text hash\n let hash = 0;\n for (let i = 0; i < text.length; i++) {\n hash = (hash << 5) - hash + text.charCodeAt(i);\n hash = hash & hash;\n }\n\n // Generate pseudo-random embedding\n for (let i = 0; i < this.config.vectorDimensions; i++) {\n const seed = hash + i * 2654435761;\n const x = Math.sin(seed) * 10000;\n embedding[i] = x - Math.floor(x);\n }\n\n // Normalize\n const norm = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));\n return embedding.map(v => v / norm);\n }\n\n /**\n * Generate unique ID\n */\n private generateId(prefix: string): string {\n return `${prefix}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n\n/**\n * Convenience function to create a fast AgentDB client\n */\nexport function createFastAgentDB(config?: {\n path?: string;\n vectorDimensions?: number;\n enableHNSW?: boolean;\n embeddings?: FastEmbeddingMode;\n}): AgentDBFast {\n return new AgentDBFast(config);\n}\n\n/**\n * Performance comparison helper\n */\nexport async function benchmarkAgentDB(): Promise<{\n cli: { store: number; retrieve: number };\n api: { store: number; retrieve: number };\n speedup: { store: number; retrieve: number };\n}> {\n const client = createFastAgentDB({ path: '.agentdb-benchmark' });\n\n // API benchmark\n const apiStoreStart = Date.now();\n const episodeId = await client.storeEpisode({\n sessionId: 'test-session',\n task: 'test-task',\n trajectory: ['step1', 'step2'],\n reward: 0.8\n });\n const apiStoreTime = Date.now() - apiStoreStart;\n\n const apiRetrieveStart = Date.now();\n await client.retrieveEpisodes({ task: 'test-task', k: 5 });\n const apiRetrieveTime = Date.now() - apiRetrieveStart;\n\n await client.close();\n\n // CLI times from benchmarks\n const cliStoreTime = 2350;\n const cliRetrieveTime = 2400;\n\n return {\n cli: {\n store: cliStoreTime,\n retrieve: cliRetrieveTime\n },\n api: {\n store: apiStoreTime,\n retrieve: apiRetrieveTime\n },\n speedup: {\n store: cliStoreTime / apiStoreTime,\n retrieve: cliRetrieveTime / apiRetrieveTime\n }\n };\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Booster edits: in-process library first, `npx` CLI as the fallback.
|
|
3
|
+
*
|
|
4
|
+
* `agent-booster` is an optionalDependency. When it is installed (the default)
|
|
5
|
+
* edits run in-process through its WASM engine. When it is not, we fall back
|
|
6
|
+
* to the pinned CLI via `npx --yes agent-booster@0.2.2 apply`, which is what
|
|
7
|
+
* the MCP server always did before (and which downloads on first use).
|
|
8
|
+
*/
|
|
9
|
+
export declare const AGENT_BOOSTER_CLI = "agent-booster@0.2.2";
|
|
10
|
+
export interface BoosterEditResult {
|
|
11
|
+
output: string;
|
|
12
|
+
success: boolean;
|
|
13
|
+
latency: number;
|
|
14
|
+
confidence: number;
|
|
15
|
+
strategy: string;
|
|
16
|
+
/** How the edit was applied. */
|
|
17
|
+
via: 'library' | 'npx';
|
|
18
|
+
}
|
|
19
|
+
type BoosterInstance = {
|
|
20
|
+
apply(input: {
|
|
21
|
+
code: string;
|
|
22
|
+
edit: string;
|
|
23
|
+
language: string;
|
|
24
|
+
}): Promise<Omit<BoosterEditResult, 'via'>>;
|
|
25
|
+
};
|
|
26
|
+
/** The in-process Agent Booster, or null when the optional package is absent. */
|
|
27
|
+
export declare function getAgentBoosterLibrary(): Promise<BoosterInstance | null>;
|
|
28
|
+
/** Apply `edit` to `code`. Never shells out when the library is installed. */
|
|
29
|
+
export declare function applyAgentBoosterEdit(code: string, edit: string, language: string, options?: {
|
|
30
|
+
npxTimeoutMs?: number;
|
|
31
|
+
}): Promise<BoosterEditResult>;
|
|
32
|
+
/** Test hook. */
|
|
33
|
+
export declare function _resetAgentBoosterForTests(): void;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=agent-booster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-booster.d.ts","sourceRoot":"","sources":["../../src/integrations/agent-booster.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,GAAG,EAAE,SAAS,GAAG,KAAK,CAAC;CACxB;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;CACzG,CAAC;AAIF,iFAAiF;AACjF,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CASxE;AAED,8EAA8E;AAC9E,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAc5B;AAED,iBAAiB;AACjB,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Booster edits: in-process library first, `npx` CLI as the fallback.
|
|
3
|
+
*
|
|
4
|
+
* `agent-booster` is an optionalDependency. When it is installed (the default)
|
|
5
|
+
* edits run in-process through its WASM engine. When it is not, we fall back
|
|
6
|
+
* to the pinned CLI via `npx --yes agent-booster@0.2.2 apply`, which is what
|
|
7
|
+
* the MCP server always did before (and which downloads on first use).
|
|
8
|
+
*/
|
|
9
|
+
import { execFileSync } from 'node:child_process';
|
|
10
|
+
import { importOptional } from './optional.js';
|
|
11
|
+
export const AGENT_BOOSTER_CLI = 'agent-booster@0.2.2';
|
|
12
|
+
let instance = null;
|
|
13
|
+
/** The in-process Agent Booster, or null when the optional package is absent. */
|
|
14
|
+
export function getAgentBoosterLibrary() {
|
|
15
|
+
if (!instance) {
|
|
16
|
+
instance = importOptional('agent-booster').then((mod) => {
|
|
17
|
+
const Ctor = mod?.AgentBooster ?? mod?.default?.AgentBooster ?? mod?.default;
|
|
18
|
+
if (typeof Ctor !== 'function')
|
|
19
|
+
return null;
|
|
20
|
+
return new Ctor({ confidenceThreshold: 0.5, maxChunks: 100 });
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return instance;
|
|
24
|
+
}
|
|
25
|
+
/** Apply `edit` to `code`. Never shells out when the library is installed. */
|
|
26
|
+
export async function applyAgentBoosterEdit(code, edit, language, options = {}) {
|
|
27
|
+
const lib = await getAgentBoosterLibrary();
|
|
28
|
+
if (lib) {
|
|
29
|
+
const r = await lib.apply({ code, edit, language });
|
|
30
|
+
return { ...r, via: 'library' };
|
|
31
|
+
}
|
|
32
|
+
const stdout = execFileSync('npx', ['--yes', AGENT_BOOSTER_CLI, 'apply', '--language', language], {
|
|
33
|
+
shell: false,
|
|
34
|
+
encoding: 'utf-8',
|
|
35
|
+
input: JSON.stringify({ code, edit }),
|
|
36
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
37
|
+
timeout: options.npxTimeoutMs ?? 30000,
|
|
38
|
+
});
|
|
39
|
+
return { ...JSON.parse(stdout), via: 'npx' };
|
|
40
|
+
}
|
|
41
|
+
/** Test hook. */
|
|
42
|
+
export function _resetAgentBoosterForTests() {
|
|
43
|
+
instance = null;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=agent-booster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-booster.js","sourceRoot":"","sources":["../../src/integrations/agent-booster.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAgBvD,IAAI,QAAQ,GAA2C,IAAI,CAAC;AAE5D,iFAAiF;AACjF,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,cAAc,CAAM,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,GAAG,EAAE,YAAY,IAAI,GAAG,EAAE,OAAO,EAAE,YAAY,IAAI,GAAG,EAAE,OAAO,CAAC;YAC7E,IAAI,OAAO,IAAI,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC5C,OAAO,IAAI,IAAI,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAoB,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY,EACZ,IAAY,EACZ,QAAgB,EAChB,UAAqC,EAAE;IAEvC,MAAM,GAAG,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC3C,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;QAChG,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACrC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,OAAO,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;KACvC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,0BAA0B;IACxC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC","sourcesContent":["/**\n * Agent Booster edits: in-process library first, `npx` CLI as the fallback.\n *\n * `agent-booster` is an optionalDependency. When it is installed (the default)\n * edits run in-process through its WASM engine. When it is not, we fall back\n * to the pinned CLI via `npx --yes agent-booster@0.2.2 apply`, which is what\n * the MCP server always did before (and which downloads on first use).\n */\n\nimport { execFileSync } from 'node:child_process';\nimport { importOptional } from './optional.js';\n\nexport const AGENT_BOOSTER_CLI = 'agent-booster@0.2.2';\n\nexport interface BoosterEditResult {\n output: string;\n success: boolean;\n latency: number;\n confidence: number;\n strategy: string;\n /** How the edit was applied. */\n via: 'library' | 'npx';\n}\n\ntype BoosterInstance = {\n apply(input: { code: string; edit: string; language: string }): Promise<Omit<BoosterEditResult, 'via'>>;\n};\n\nlet instance: Promise<BoosterInstance | null> | null = null;\n\n/** The in-process Agent Booster, or null when the optional package is absent. */\nexport function getAgentBoosterLibrary(): Promise<BoosterInstance | null> {\n if (!instance) {\n instance = importOptional<any>('agent-booster').then((mod) => {\n const Ctor = mod?.AgentBooster ?? mod?.default?.AgentBooster ?? mod?.default;\n if (typeof Ctor !== 'function') return null;\n return new Ctor({ confidenceThreshold: 0.5, maxChunks: 100 }) as BoosterInstance;\n });\n }\n return instance;\n}\n\n/** Apply `edit` to `code`. Never shells out when the library is installed. */\nexport async function applyAgentBoosterEdit(\n code: string,\n edit: string,\n language: string,\n options: { npxTimeoutMs?: number } = {},\n): Promise<BoosterEditResult> {\n const lib = await getAgentBoosterLibrary();\n if (lib) {\n const r = await lib.apply({ code, edit, language });\n return { ...r, via: 'library' };\n }\n const stdout = execFileSync('npx', ['--yes', AGENT_BOOSTER_CLI, 'apply', '--language', language], {\n shell: false,\n encoding: 'utf-8',\n input: JSON.stringify({ code, edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: options.npxTimeoutMs ?? 30000,\n });\n return { ...JSON.parse(stdout), via: 'npx' };\n}\n\n/** Test hook. */\nexport function _resetAgentBoosterForTests(): void {\n instance = null;\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentic-flow/integrations ā programmatic access to the optional ruvnet
|
|
3
|
+
* package integrations (each with a built-in fallback).
|
|
4
|
+
*/
|
|
5
|
+
export { scanPromptInjection, promptInjectionEngine, getInjectionPolicy } from './prompt-injection.js';
|
|
6
|
+
export type { InjectionScan, InjectionThreat, InjectionPolicy, InjectionSeverity } from './prompt-injection.js';
|
|
7
|
+
export { partitionTaskGraph } from './task-partition.js';
|
|
8
|
+
export type { TaskDependency, TaskPartition } from './task-partition.js';
|
|
9
|
+
export { solveLinearSystem, pageRank } from './sublinear.js';
|
|
10
|
+
export type { LinearSolveResult, PageRankResult, MatrixInput, SparseEntry } from './sublinear.js';
|
|
11
|
+
export { applyAgentBoosterEdit, getAgentBoosterLibrary } from './agent-booster.js';
|
|
12
|
+
export type { BoosterEditResult } from './agent-booster.js';
|
|
13
|
+
export { OnnxWasmTextEmbedder, getOnnxWasmEmbedder, loadOnnxWasmModule, onnxWasmModelCached } from './onnx-wasm-embedder.js';
|
|
14
|
+
export { isOptionalInstalled } from './optional.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvG,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC7H,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentic-flow/integrations ā programmatic access to the optional ruvnet
|
|
3
|
+
* package integrations (each with a built-in fallback).
|
|
4
|
+
*/
|
|
5
|
+
export { scanPromptInjection, promptInjectionEngine, getInjectionPolicy } from './prompt-injection.js';
|
|
6
|
+
export { partitionTaskGraph } from './task-partition.js';
|
|
7
|
+
export { solveLinearSystem, pageRank } from './sublinear.js';
|
|
8
|
+
export { applyAgentBoosterEdit, getAgentBoosterLibrary } from './agent-booster.js';
|
|
9
|
+
export { OnnxWasmTextEmbedder, getOnnxWasmEmbedder, loadOnnxWasmModule, onnxWasmModelCached } from './onnx-wasm-embedder.js';
|
|
10
|
+
export { isOptionalInstalled } from './optional.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC7H,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC","sourcesContent":["/**\n * agentic-flow/integrations ā programmatic access to the optional ruvnet\n * package integrations (each with a built-in fallback).\n */\n\nexport { scanPromptInjection, promptInjectionEngine, getInjectionPolicy } from './prompt-injection.js';\nexport type { InjectionScan, InjectionThreat, InjectionPolicy, InjectionSeverity } from './prompt-injection.js';\nexport { partitionTaskGraph } from './task-partition.js';\nexport type { TaskDependency, TaskPartition } from './task-partition.js';\nexport { solveLinearSystem, pageRank } from './sublinear.js';\nexport type { LinearSolveResult, PageRankResult, MatrixInput, SparseEntry } from './sublinear.js';\nexport { applyAgentBoosterEdit, getAgentBoosterLibrary } from './agent-booster.js';\nexport type { BoosterEditResult } from './agent-booster.js';\nexport { OnnxWasmTextEmbedder, getOnnxWasmEmbedder, loadOnnxWasmModule, onnxWasmModelCached } from './onnx-wasm-embedder.js';\nexport { isOptionalInstalled } from './optional.js';\n"]}
|