@sparkleideas/agentic-flow 2.0.2-alpha-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2026 -0
- package/agentic-flow/.claude/agents/MIGRATION_SUMMARY.md +222 -0
- package/agentic-flow/.claude/agents/README.md +89 -0
- package/agentic-flow/.claude/agents/analysis/analyze-code-quality.md +180 -0
- package/agentic-flow/.claude/agents/analysis/code-analyzer.md +209 -0
- package/agentic-flow/.claude/agents/architecture/arch-system-design.md +156 -0
- package/agentic-flow/.claude/agents/base-template-generator.md +268 -0
- package/agentic-flow/.claude/agents/consensus/README.md +253 -0
- package/agentic-flow/.claude/agents/consensus/byzantine-coordinator.md +63 -0
- package/agentic-flow/.claude/agents/consensus/crdt-synchronizer.md +997 -0
- package/agentic-flow/.claude/agents/consensus/gossip-coordinator.md +63 -0
- package/agentic-flow/.claude/agents/consensus/performance-benchmarker.md +851 -0
- package/agentic-flow/.claude/agents/consensus/quorum-manager.md +823 -0
- package/agentic-flow/.claude/agents/consensus/raft-manager.md +63 -0
- package/agentic-flow/.claude/agents/consensus/security-manager.md +622 -0
- package/agentic-flow/.claude/agents/core/coder.md +416 -0
- package/agentic-flow/.claude/agents/core/planner.md +337 -0
- package/agentic-flow/.claude/agents/core/researcher.md +331 -0
- package/agentic-flow/.claude/agents/core/reviewer.md +483 -0
- package/agentic-flow/.claude/agents/core/tester.md +476 -0
- package/agentic-flow/.claude/agents/custom/test-long-runner.md +44 -0
- package/agentic-flow/.claude/agents/data/data-ml-model.md +444 -0
- package/agentic-flow/.claude/agents/development/dev-backend-api.md +345 -0
- package/agentic-flow/.claude/agents/devops/ops-cicd-github.md +164 -0
- package/agentic-flow/.claude/agents/documentation/docs-api-openapi.md +354 -0
- package/agentic-flow/.claude/agents/flow-nexus/app-store.md +88 -0
- package/agentic-flow/.claude/agents/flow-nexus/authentication.md +69 -0
- package/agentic-flow/.claude/agents/flow-nexus/challenges.md +81 -0
- package/agentic-flow/.claude/agents/flow-nexus/neural-network.md +88 -0
- package/agentic-flow/.claude/agents/flow-nexus/payments.md +83 -0
- package/agentic-flow/.claude/agents/flow-nexus/sandbox.md +76 -0
- package/agentic-flow/.claude/agents/flow-nexus/swarm.md +76 -0
- package/agentic-flow/.claude/agents/flow-nexus/user-tools.md +96 -0
- package/agentic-flow/.claude/agents/flow-nexus/workflow.md +84 -0
- package/agentic-flow/.claude/agents/github/code-review-swarm.md +377 -0
- package/agentic-flow/.claude/agents/github/github-modes.md +173 -0
- package/agentic-flow/.claude/agents/github/issue-tracker.md +576 -0
- package/agentic-flow/.claude/agents/github/multi-repo-swarm.md +553 -0
- package/agentic-flow/.claude/agents/github/pr-manager.md +438 -0
- package/agentic-flow/.claude/agents/github/project-board-sync.md +509 -0
- package/agentic-flow/.claude/agents/github/release-manager.md +605 -0
- package/agentic-flow/.claude/agents/github/release-swarm.md +583 -0
- package/agentic-flow/.claude/agents/github/repo-architect.md +398 -0
- package/agentic-flow/.claude/agents/github/swarm-issue.md +573 -0
- package/agentic-flow/.claude/agents/github/swarm-pr.md +428 -0
- package/agentic-flow/.claude/agents/github/sync-coordinator.md +452 -0
- package/agentic-flow/.claude/agents/github/workflow-automation.md +903 -0
- package/agentic-flow/.claude/agents/goal/agent.md +816 -0
- package/agentic-flow/.claude/agents/goal/goal-planner.md +73 -0
- package/agentic-flow/.claude/agents/optimization/README.md +250 -0
- package/agentic-flow/.claude/agents/optimization/benchmark-suite.md +665 -0
- package/agentic-flow/.claude/agents/optimization/load-balancer.md +431 -0
- package/agentic-flow/.claude/agents/optimization/performance-monitor.md +672 -0
- package/agentic-flow/.claude/agents/optimization/resource-allocator.md +674 -0
- package/agentic-flow/.claude/agents/optimization/topology-optimizer.md +808 -0
- package/agentic-flow/.claude/agents/payments/agentic-payments.md +126 -0
- package/agentic-flow/.claude/agents/sona/sona-learning-optimizer.md +496 -0
- package/agentic-flow/.claude/agents/sparc/architecture.md +699 -0
- package/agentic-flow/.claude/agents/sparc/pseudocode.md +520 -0
- package/agentic-flow/.claude/agents/sparc/refinement.md +802 -0
- package/agentic-flow/.claude/agents/sparc/specification.md +478 -0
- package/agentic-flow/.claude/agents/specialized/spec-mobile-react-native.md +226 -0
- package/agentic-flow/.claude/agents/sublinear/consensus-coordinator.md +338 -0
- package/agentic-flow/.claude/agents/sublinear/matrix-optimizer.md +185 -0
- package/agentic-flow/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
- package/agentic-flow/.claude/agents/sublinear/performance-optimizer.md +368 -0
- package/agentic-flow/.claude/agents/sublinear/trading-predictor.md +246 -0
- package/agentic-flow/.claude/agents/swarm/README.md +190 -0
- package/agentic-flow/.claude/agents/swarm/adaptive-coordinator.md +1127 -0
- package/agentic-flow/.claude/agents/swarm/hierarchical-coordinator.md +710 -0
- package/agentic-flow/.claude/agents/swarm/mesh-coordinator.md +963 -0
- package/agentic-flow/.claude/agents/templates/automation-smart-agent.md +205 -0
- package/agentic-flow/.claude/agents/templates/coordinator-swarm-init.md +90 -0
- package/agentic-flow/.claude/agents/templates/github-pr-manager.md +177 -0
- package/agentic-flow/.claude/agents/templates/implementer-sparc-coder.md +259 -0
- package/agentic-flow/.claude/agents/templates/memory-coordinator.md +187 -0
- package/agentic-flow/.claude/agents/templates/migration-plan.md +746 -0
- package/agentic-flow/.claude/agents/templates/orchestrator-task.md +139 -0
- package/agentic-flow/.claude/agents/templates/performance-analyzer.md +199 -0
- package/agentic-flow/.claude/agents/templates/sparc-coordinator.md +514 -0
- package/agentic-flow/.claude/agents/testing/production-validator.md +395 -0
- package/agentic-flow/.claude/agents/testing/tdd-london-swarm.md +244 -0
- package/agentic-flow/.claude/answer.md +1 -0
- package/agentic-flow/.claude/commands/agents/README.md +10 -0
- package/agentic-flow/.claude/commands/agents/agent-capabilities.md +21 -0
- package/agentic-flow/.claude/commands/agents/agent-coordination.md +28 -0
- package/agentic-flow/.claude/commands/agents/agent-spawning.md +28 -0
- package/agentic-flow/.claude/commands/agents/agent-types.md +26 -0
- package/agentic-flow/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
- package/agentic-flow/.claude/commands/analysis/README.md +9 -0
- package/agentic-flow/.claude/commands/analysis/bottleneck-detect.md +162 -0
- package/agentic-flow/.claude/commands/analysis/performance-bottlenecks.md +59 -0
- package/agentic-flow/.claude/commands/analysis/performance-report.md +25 -0
- package/agentic-flow/.claude/commands/analysis/token-efficiency.md +45 -0
- package/agentic-flow/.claude/commands/analysis/token-usage.md +25 -0
- package/agentic-flow/.claude/commands/automation/README.md +9 -0
- package/agentic-flow/.claude/commands/automation/auto-agent.md +122 -0
- package/agentic-flow/.claude/commands/automation/self-healing.md +106 -0
- package/agentic-flow/.claude/commands/automation/session-memory.md +90 -0
- package/agentic-flow/.claude/commands/automation/smart-agents.md +73 -0
- package/agentic-flow/.claude/commands/automation/smart-spawn.md +25 -0
- package/agentic-flow/.claude/commands/automation/workflow-select.md +25 -0
- package/agentic-flow/.claude/commands/claude-flow-help.md +103 -0
- package/agentic-flow/.claude/commands/claude-flow-memory.md +107 -0
- package/agentic-flow/.claude/commands/claude-flow-swarm.md +205 -0
- package/agentic-flow/.claude/commands/flow-nexus/app-store.md +124 -0
- package/agentic-flow/.claude/commands/flow-nexus/challenges.md +120 -0
- package/agentic-flow/.claude/commands/flow-nexus/login-registration.md +65 -0
- package/agentic-flow/.claude/commands/flow-nexus/neural-network.md +134 -0
- package/agentic-flow/.claude/commands/flow-nexus/payments.md +116 -0
- package/agentic-flow/.claude/commands/flow-nexus/sandbox.md +83 -0
- package/agentic-flow/.claude/commands/flow-nexus/swarm.md +87 -0
- package/agentic-flow/.claude/commands/flow-nexus/user-tools.md +152 -0
- package/agentic-flow/.claude/commands/flow-nexus/workflow.md +115 -0
- package/agentic-flow/.claude/commands/github/README.md +11 -0
- package/agentic-flow/.claude/commands/github/code-review-swarm.md +514 -0
- package/agentic-flow/.claude/commands/github/code-review.md +25 -0
- package/agentic-flow/.claude/commands/github/github-modes.md +147 -0
- package/agentic-flow/.claude/commands/github/github-swarm.md +121 -0
- package/agentic-flow/.claude/commands/github/issue-tracker.md +292 -0
- package/agentic-flow/.claude/commands/github/issue-triage.md +25 -0
- package/agentic-flow/.claude/commands/github/multi-repo-swarm.md +519 -0
- package/agentic-flow/.claude/commands/github/pr-enhance.md +26 -0
- package/agentic-flow/.claude/commands/github/pr-manager.md +170 -0
- package/agentic-flow/.claude/commands/github/project-board-sync.md +471 -0
- package/agentic-flow/.claude/commands/github/release-manager.md +338 -0
- package/agentic-flow/.claude/commands/github/release-swarm.md +544 -0
- package/agentic-flow/.claude/commands/github/repo-analyze.md +25 -0
- package/agentic-flow/.claude/commands/github/repo-architect.md +367 -0
- package/agentic-flow/.claude/commands/github/swarm-issue.md +482 -0
- package/agentic-flow/.claude/commands/github/swarm-pr.md +285 -0
- package/agentic-flow/.claude/commands/github/sync-coordinator.md +301 -0
- package/agentic-flow/.claude/commands/github/workflow-automation.md +442 -0
- package/agentic-flow/.claude/commands/hive-mind/README.md +17 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-init.md +18 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-status.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
- package/agentic-flow/.claude/commands/hive-mind/hive-mind.md +27 -0
- package/agentic-flow/.claude/commands/hooks/README.md +11 -0
- package/agentic-flow/.claude/commands/hooks/overview.md +58 -0
- package/agentic-flow/.claude/commands/hooks/post-edit.md +117 -0
- package/agentic-flow/.claude/commands/hooks/post-task.md +112 -0
- package/agentic-flow/.claude/commands/hooks/pre-edit.md +113 -0
- package/agentic-flow/.claude/commands/hooks/pre-task.md +111 -0
- package/agentic-flow/.claude/commands/hooks/session-end.md +118 -0
- package/agentic-flow/.claude/commands/hooks/setup.md +103 -0
- package/agentic-flow/.claude/commands/monitoring/README.md +9 -0
- package/agentic-flow/.claude/commands/monitoring/agent-metrics.md +25 -0
- package/agentic-flow/.claude/commands/monitoring/agents.md +44 -0
- package/agentic-flow/.claude/commands/monitoring/real-time-view.md +25 -0
- package/agentic-flow/.claude/commands/monitoring/status.md +46 -0
- package/agentic-flow/.claude/commands/monitoring/swarm-monitor.md +25 -0
- package/agentic-flow/.claude/commands/optimization/README.md +9 -0
- package/agentic-flow/.claude/commands/optimization/auto-topology.md +62 -0
- package/agentic-flow/.claude/commands/optimization/cache-manage.md +25 -0
- package/agentic-flow/.claude/commands/optimization/parallel-execute.md +25 -0
- package/agentic-flow/.claude/commands/optimization/parallel-execution.md +50 -0
- package/agentic-flow/.claude/commands/optimization/topology-optimize.md +25 -0
- package/agentic-flow/.claude/commands/pair/README.md +261 -0
- package/agentic-flow/.claude/commands/pair/commands.md +546 -0
- package/agentic-flow/.claude/commands/pair/config.md +510 -0
- package/agentic-flow/.claude/commands/pair/examples.md +512 -0
- package/agentic-flow/.claude/commands/pair/modes.md +348 -0
- package/agentic-flow/.claude/commands/pair/session.md +407 -0
- package/agentic-flow/.claude/commands/pair/start.md +209 -0
- package/agentic-flow/.claude/commands/sparc/analyzer.md +52 -0
- package/agentic-flow/.claude/commands/sparc/architect.md +53 -0
- package/agentic-flow/.claude/commands/sparc/ask.md +97 -0
- package/agentic-flow/.claude/commands/sparc/batch-executor.md +54 -0
- package/agentic-flow/.claude/commands/sparc/code.md +89 -0
- package/agentic-flow/.claude/commands/sparc/coder.md +54 -0
- package/agentic-flow/.claude/commands/sparc/debug.md +83 -0
- package/agentic-flow/.claude/commands/sparc/debugger.md +54 -0
- package/agentic-flow/.claude/commands/sparc/designer.md +53 -0
- package/agentic-flow/.claude/commands/sparc/devops.md +109 -0
- package/agentic-flow/.claude/commands/sparc/docs-writer.md +80 -0
- package/agentic-flow/.claude/commands/sparc/documenter.md +54 -0
- package/agentic-flow/.claude/commands/sparc/innovator.md +54 -0
- package/agentic-flow/.claude/commands/sparc/integration.md +83 -0
- package/agentic-flow/.claude/commands/sparc/mcp.md +117 -0
- package/agentic-flow/.claude/commands/sparc/memory-manager.md +54 -0
- package/agentic-flow/.claude/commands/sparc/optimizer.md +54 -0
- package/agentic-flow/.claude/commands/sparc/orchestrator.md +132 -0
- package/agentic-flow/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
- package/agentic-flow/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
- package/agentic-flow/.claude/commands/sparc/researcher.md +54 -0
- package/agentic-flow/.claude/commands/sparc/reviewer.md +54 -0
- package/agentic-flow/.claude/commands/sparc/security-review.md +80 -0
- package/agentic-flow/.claude/commands/sparc/sparc-modes.md +174 -0
- package/agentic-flow/.claude/commands/sparc/sparc.md +111 -0
- package/agentic-flow/.claude/commands/sparc/spec-pseudocode.md +80 -0
- package/agentic-flow/.claude/commands/sparc/supabase-admin.md +348 -0
- package/agentic-flow/.claude/commands/sparc/swarm-coordinator.md +54 -0
- package/agentic-flow/.claude/commands/sparc/tdd.md +54 -0
- package/agentic-flow/.claude/commands/sparc/tester.md +54 -0
- package/agentic-flow/.claude/commands/sparc/tutorial.md +79 -0
- package/agentic-flow/.claude/commands/sparc/workflow-manager.md +54 -0
- package/agentic-flow/.claude/commands/sparc.md +166 -0
- package/agentic-flow/.claude/commands/stream-chain/pipeline.md +121 -0
- package/agentic-flow/.claude/commands/stream-chain/run.md +70 -0
- package/agentic-flow/.claude/commands/swarm/README.md +15 -0
- package/agentic-flow/.claude/commands/swarm/analysis.md +95 -0
- package/agentic-flow/.claude/commands/swarm/development.md +96 -0
- package/agentic-flow/.claude/commands/swarm/examples.md +168 -0
- package/agentic-flow/.claude/commands/swarm/maintenance.md +102 -0
- package/agentic-flow/.claude/commands/swarm/optimization.md +117 -0
- package/agentic-flow/.claude/commands/swarm/research.md +136 -0
- package/agentic-flow/.claude/commands/swarm/swarm-analysis.md +8 -0
- package/agentic-flow/.claude/commands/swarm/swarm-background.md +8 -0
- package/agentic-flow/.claude/commands/swarm/swarm-init.md +19 -0
- package/agentic-flow/.claude/commands/swarm/swarm-modes.md +8 -0
- package/agentic-flow/.claude/commands/swarm/swarm-monitor.md +8 -0
- package/agentic-flow/.claude/commands/swarm/swarm-spawn.md +19 -0
- package/agentic-flow/.claude/commands/swarm/swarm-status.md +8 -0
- package/agentic-flow/.claude/commands/swarm/swarm-strategies.md +8 -0
- package/agentic-flow/.claude/commands/swarm/swarm.md +27 -0
- package/agentic-flow/.claude/commands/swarm/testing.md +131 -0
- package/agentic-flow/.claude/commands/training/README.md +9 -0
- package/agentic-flow/.claude/commands/training/model-update.md +25 -0
- package/agentic-flow/.claude/commands/training/neural-patterns.md +74 -0
- package/agentic-flow/.claude/commands/training/neural-train.md +25 -0
- package/agentic-flow/.claude/commands/training/pattern-learn.md +25 -0
- package/agentic-flow/.claude/commands/training/specialization.md +63 -0
- package/agentic-flow/.claude/commands/truth/start.md +143 -0
- package/agentic-flow/.claude/commands/verify/check.md +50 -0
- package/agentic-flow/.claude/commands/verify/start.md +128 -0
- package/agentic-flow/.claude/commands/workflows/README.md +9 -0
- package/agentic-flow/.claude/commands/workflows/development.md +78 -0
- package/agentic-flow/.claude/commands/workflows/research.md +63 -0
- package/agentic-flow/.claude/commands/workflows/workflow-create.md +25 -0
- package/agentic-flow/.claude/commands/workflows/workflow-execute.md +25 -0
- package/agentic-flow/.claude/commands/workflows/workflow-export.md +25 -0
- package/agentic-flow/.claude/helpers/checkpoint-manager.sh +251 -0
- package/agentic-flow/.claude/helpers/github-safe.js +106 -0
- package/agentic-flow/.claude/helpers/github-setup.sh +28 -0
- package/agentic-flow/.claude/helpers/quick-start.sh +19 -0
- package/agentic-flow/.claude/helpers/setup-mcp.sh +18 -0
- package/agentic-flow/.claude/helpers/standard-checkpoint-hooks.sh +179 -0
- package/agentic-flow/.claude/mcp.json +13 -0
- package/agentic-flow/.claude/openrouter-models-research.md +411 -0
- package/agentic-flow/.claude/openrouter-quick-reference.md +113 -0
- package/agentic-flow/.claude/settings-backup.json +130 -0
- package/agentic-flow/.claude/settings-optimized.json +116 -0
- package/agentic-flow/.claude/settings-simple.json +78 -0
- package/agentic-flow/.claude/settings.json +238 -0
- package/agentic-flow/.claude/settings.local.json +14 -0
- package/agentic-flow/.claude/skills/agentic-flow-quickstart/skill.md +69 -0
- package/agentic-flow/.claude/skills/hooks-automation/skill.md +155 -0
- package/agentic-flow/.claude/skills/memory-patterns/skill.md +110 -0
- package/agentic-flow/.claude/skills/sparc-methodology/skill.md +137 -0
- package/agentic-flow/.claude/skills/swarm-coordination/skill.md +94 -0
- package/agentic-flow/.claude/skills/worker-benchmarks/skill.md +135 -0
- package/agentic-flow/.claude/skills/worker-integration/skill.md +154 -0
- package/agentic-flow/.claude/statusline.mjs +109 -0
- package/agentic-flow/.claude/statusline.sh +71 -0
- package/agentic-flow/CHANGELOG.md +68 -0
- package/agentic-flow/README.md +2047 -0
- package/agentic-flow/dist/reasoningbank/config/reasoningbank.yaml +145 -0
- package/agentic-flow/dist/reasoningbank/prompts/distill-failure.json +111 -0
- package/agentic-flow/dist/reasoningbank/prompts/distill-success.json +74 -0
- package/agentic-flow/dist/reasoningbank/prompts/judge.json +101 -0
- package/agentic-flow/dist/reasoningbank/prompts/matts-aggregate.json +119 -0
- package/agentic-flow/docs/CLAUDE.md +352 -0
- package/agentic-flow/docs/DOCKER-VERIFICATION.md +207 -0
- package/agentic-flow/docs/IMPROVEMENT_ROADMAP.md +184 -0
- package/agentic-flow/docs/ISSUE-55-VALIDATION.md +171 -0
- package/agentic-flow/docs/LICENSE +21 -0
- package/agentic-flow/docs/NPX_AGENTDB_SETUP.md +175 -0
- package/agentic-flow/docs/OPTIMIZATIONS.md +460 -0
- package/agentic-flow/docs/PUBLISH_GUIDE.md +438 -0
- package/agentic-flow/docs/README.md +217 -0
- package/agentic-flow/docs/RELEASE-v1.10.0-COMPLETE.md +382 -0
- package/agentic-flow/docs/architecture/EXECUTIVE_SUMMARY.md +310 -0
- package/agentic-flow/docs/architecture/FEDERATION-DATA-LIFECYCLE.md +520 -0
- package/agentic-flow/docs/architecture/IMPROVEMENT_PLAN.md +11 -0
- package/agentic-flow/docs/architecture/INTEGRATION-STATUS.md +290 -0
- package/agentic-flow/docs/architecture/MULTI_MODEL_ROUTER_PLAN.md +620 -0
- package/agentic-flow/docs/architecture/PACKAGE_STRUCTURE.md +199 -0
- package/agentic-flow/docs/architecture/QUIC-IMPLEMENTATION-SUMMARY.md +490 -0
- package/agentic-flow/docs/architecture/QUIC-SWARM-INTEGRATION.md +593 -0
- package/agentic-flow/docs/architecture/QUICK_WINS.md +333 -0
- package/agentic-flow/docs/architecture/README.md +15 -0
- package/agentic-flow/docs/architecture/RESEARCH_SUMMARY.md +652 -0
- package/agentic-flow/docs/archive/.agentdb-instructions.md +66 -0
- package/agentic-flow/docs/archive/AGENT-BOOSTER-STATUS.md +292 -0
- package/agentic-flow/docs/archive/CHANGELOG-v1.3.0.md +120 -0
- package/agentic-flow/docs/archive/COMPLETION_REPORT_v1.7.1.md +335 -0
- package/agentic-flow/docs/archive/IMPLEMENTATION_SUMMARY_v1.7.1.md +241 -0
- package/agentic-flow/docs/archive/SUPABASE-INTEGRATION-COMPLETE.md +357 -0
- package/agentic-flow/docs/archive/TESTING_QUICK_START.md +223 -0
- package/agentic-flow/docs/archive/TOOL-EMULATION-INTEGRATION-ISSUE.md +669 -0
- package/agentic-flow/docs/archive/VALIDATION_v1.7.1.md +234 -0
- package/agentic-flow/docs/archived/COMPLETE_VALIDATION_SUMMARY.md +405 -0
- package/agentic-flow/docs/archived/DOCKER_MCP_VALIDATION.md +358 -0
- package/agentic-flow/docs/archived/DOCKER_OPENROUTER_VALIDATION.md +443 -0
- package/agentic-flow/docs/archived/FASTMCP_COMPLETE.md +428 -0
- package/agentic-flow/docs/archived/FASTMCP_INTEGRATION_STATUS.md +288 -0
- package/agentic-flow/docs/archived/FINAL_SDK_VALIDATION.md +328 -0
- package/agentic-flow/docs/archived/FINAL_SYSTEM_VALIDATION.md +458 -0
- package/agentic-flow/docs/archived/FINAL_VALIDATION_SUMMARY.md +409 -0
- package/agentic-flow/docs/archived/FIXES-APPLIED-STATUS.md +331 -0
- package/agentic-flow/docs/archived/FLOW-NEXUS-COMPLETE.md +269 -0
- package/agentic-flow/docs/archived/HOTFIX_1.1.7.md +133 -0
- package/agentic-flow/docs/archived/INTEGRATION_CONFIRMED.md +351 -0
- package/agentic-flow/docs/archived/MCP_CLI_TOOLS_VALIDATION.md +266 -0
- package/agentic-flow/docs/archived/MCP_INTEGRATION_SUCCESS.md +305 -0
- package/agentic-flow/docs/archived/MCP_PROXY_VALIDATION.md +185 -0
- package/agentic-flow/docs/archived/MODEL_VALIDATION_REPORT.md +386 -0
- package/agentic-flow/docs/archived/ONNX_ENV_VARS.md +564 -0
- package/agentic-flow/docs/archived/ONNX_FINAL_REPORT.md +312 -0
- package/agentic-flow/docs/archived/ONNX_IMPLEMENTATION_COMPLETE.md +215 -0
- package/agentic-flow/docs/archived/ONNX_IMPLEMENTATION_SUMMARY.md +197 -0
- package/agentic-flow/docs/archived/ONNX_INTEGRATION.md +422 -0
- package/agentic-flow/docs/archived/ONNX_OPTIMIZATION_SUMMARY.md +374 -0
- package/agentic-flow/docs/archived/ONNX_PHI4_RESEARCH.md +220 -0
- package/agentic-flow/docs/archived/ONNX_RUNTIME_INTEGRATION_PLAN.md +866 -0
- package/agentic-flow/docs/archived/ONNX_SUCCESS_REPORT.md +271 -0
- package/agentic-flow/docs/archived/ONNX_VS_CLAUDE_QUALITY.md +442 -0
- package/agentic-flow/docs/archived/OPENROUTER-FIX-VALIDATION.md +333 -0
- package/agentic-flow/docs/archived/OPENROUTER-SUCCESS-REPORT.md +520 -0
- package/agentic-flow/docs/archived/OPENROUTER_ISSUES_AND_FIXES.md +277 -0
- package/agentic-flow/docs/archived/OPENROUTER_PROXY_COMPLETE.md +494 -0
- package/agentic-flow/docs/archived/OPENROUTER_VALIDATION_COMPLETE.md +382 -0
- package/agentic-flow/docs/archived/OPTIMIZATION_SUMMARY.md +181 -0
- package/agentic-flow/docs/archived/PACKAGE-COMPLETE.md +138 -0
- package/agentic-flow/docs/archived/PHI4_HYPEROPTIMIZATION_PLAN.md +2488 -0
- package/agentic-flow/docs/archived/PROVIDER_INSTRUCTION_OPTIMIZATION.md +139 -0
- package/agentic-flow/docs/archived/PROXY_VALIDATION.md +239 -0
- package/agentic-flow/docs/archived/README.md +20 -0
- package/agentic-flow/docs/archived/README_SDK_VALIDATION.md +356 -0
- package/agentic-flow/docs/archived/README_V1.1.11.md +280 -0
- package/agentic-flow/docs/archived/RELEASE-NOTES-v1.1.13.md +392 -0
- package/agentic-flow/docs/archived/RELEASE-SUMMARY-v1.1.14-beta.1.md +336 -0
- package/agentic-flow/docs/archived/RESEARCH_COMPLETE.txt +335 -0
- package/agentic-flow/docs/archived/ROUTER_VALIDATION.md +311 -0
- package/agentic-flow/docs/archived/SDK-SETUP-COMPLETE.md +252 -0
- package/agentic-flow/docs/archived/SDK_INTEGRATION_COMPLETE.md +336 -0
- package/agentic-flow/docs/archived/TOOL_INSTRUCTION_ENHANCEMENT.md +200 -0
- package/agentic-flow/docs/archived/V1.1.10_VALIDATION.md +194 -0
- package/agentic-flow/docs/archived/V1.1.11_COMPLETE_VALIDATION.md +308 -0
- package/agentic-flow/docs/archived/V1.1.11_MCP_PROXY_FIX.md +374 -0
- package/agentic-flow/docs/archived/V1.1.14-BETA-READY.md +418 -0
- package/agentic-flow/docs/archived/VALIDATION-RESULTS.md +279 -0
- package/agentic-flow/docs/archived/VALIDATION_COMPLETE.md +178 -0
- package/agentic-flow/docs/archived/VALIDATION_SUMMARY.md +224 -0
- package/agentic-flow/docs/archived/claude-flow-integration.md +463 -0
- package/agentic-flow/docs/archived/docker-cli-validation.md +289 -0
- package/agentic-flow/docs/archived/docker-memory-coordination-status.md +261 -0
- package/agentic-flow/docs/archived/mcp-validation-summary.md +264 -0
- package/agentic-flow/docs/archived/quick-wins-validation.md +377 -0
- package/agentic-flow/docs/benchmarks/optimization-guide.md +531 -0
- package/agentic-flow/docs/benchmarks/quic-results.md +494 -0
- package/agentic-flow/docs/docker-tests/TEST-V1.7.8.Dockerfile +13 -0
- package/agentic-flow/docs/docker-tests/TEST-V1.7.9-NODE20.Dockerfile +13 -0
- package/agentic-flow/docs/docker-tests/TEST-V1.7.9.Dockerfile +14 -0
- package/agentic-flow/docs/embeddings/EMBEDDING_GEOMETRY.md +935 -0
- package/agentic-flow/docs/federation/AGENT-DEBUG-STREAMING.md +403 -0
- package/agentic-flow/docs/federation/DEBUG-STREAMING-COMPLETE.md +432 -0
- package/agentic-flow/docs/federation/DEBUG-STREAMING.md +537 -0
- package/agentic-flow/docs/federation/DEPLOYMENT-VALIDATION-SUCCESS.md +394 -0
- package/agentic-flow/docs/federation/DOCKER-FEDERATION-DEEP-REVIEW.md +478 -0
- package/agentic-flow/docs/guides/ADDING-MCP-SERVERS-CLI.md +515 -0
- package/agentic-flow/docs/guides/ADDING-MCP-SERVERS.md +642 -0
- package/agentic-flow/docs/guides/AGENT-BOOSTER.md +435 -0
- package/agentic-flow/docs/guides/ALTERNATIVE_LLM_MODELS.md +524 -0
- package/agentic-flow/docs/guides/CLAUDE-CODE-INTEGRATION.md +403 -0
- package/agentic-flow/docs/guides/DEPLOYMENT.md +906 -0
- package/agentic-flow/docs/guides/DOCKER_AGENT_USAGE.md +352 -0
- package/agentic-flow/docs/guides/IMPLEMENTATION_EXAMPLES.md +960 -0
- package/agentic-flow/docs/guides/MCP-TOOLS.md +1166 -0
- package/agentic-flow/docs/guides/MODEL-ID-MAPPING.md +193 -0
- package/agentic-flow/docs/guides/MULTI-MODEL-ROUTER.md +702 -0
- package/agentic-flow/docs/guides/NPM-PUBLISH.md +218 -0
- package/agentic-flow/docs/guides/ONNX-PROXY-IMPLEMENTATION.md +254 -0
- package/agentic-flow/docs/guides/ONNX_CLI_USAGE.md +344 -0
- package/agentic-flow/docs/guides/ONNX_OPTIMIZATION_GUIDE.md +665 -0
- package/agentic-flow/docs/guides/OPENROUTER_DEPLOYMENT.md +495 -0
- package/agentic-flow/docs/guides/PROXY-ARCHITECTURE-AND-EXTENSION.md +708 -0
- package/agentic-flow/docs/guides/QUIC-SWARM-QUICKSTART.md +543 -0
- package/agentic-flow/docs/guides/QUICK-START-v1.7.1.md +399 -0
- package/agentic-flow/docs/guides/README.md +17 -0
- package/agentic-flow/docs/guides/REASONINGBANK.md +721 -0
- package/agentic-flow/docs/guides/STANDALONE_PROXY_GUIDE.md +437 -0
- package/agentic-flow/docs/guides/agent-sdk.md +234 -0
- package/agentic-flow/docs/integration-docs/AGENT-BOOSTER-INTEGRATION.md +379 -0
- package/agentic-flow/docs/integration-docs/CLAUDE-FLOW-INTEGRATION-ANALYSIS.md +653 -0
- package/agentic-flow/docs/integration-docs/CLI-INTEGRATION-COMPLETE.md +283 -0
- package/agentic-flow/docs/integration-docs/IMPLEMENTATION_SUMMARY.md +369 -0
- package/agentic-flow/docs/integration-docs/INTEGRATION-COMPLETE.md +291 -0
- package/agentic-flow/docs/integration-docs/INTEGRATION-QUICK-SUMMARY.md +249 -0
- package/agentic-flow/docs/integration-docs/INTEGRATION-STATUS-CORRECTED.md +488 -0
- package/agentic-flow/docs/integration-docs/INTEGRATION_COMPLETE_SUMMARY.md +780 -0
- package/agentic-flow/docs/integration-docs/QUIC-WASM-INTEGRATION.md +537 -0
- package/agentic-flow/docs/integration-docs/README.md +61 -0
- package/agentic-flow/docs/integration-docs/WASM_ESM_FIX.md +180 -0
- package/agentic-flow/docs/integration-docs/WASM_INTEGRATION_COMPLETE.md +344 -0
- package/agentic-flow/docs/integrations/CLAUDE_AGENTS_INTEGRATION.md +356 -0
- package/agentic-flow/docs/integrations/CLAUDE_FLOW_INTEGRATION.md +535 -0
- package/agentic-flow/docs/integrations/FASTMCP_CLI_INTEGRATION.md +503 -0
- package/agentic-flow/docs/integrations/FLOW-NEXUS-INTEGRATION.md +319 -0
- package/agentic-flow/docs/integrations/README.md +18 -0
- package/agentic-flow/docs/integrations/fastmcp-implementation-plan.md +2516 -0
- package/agentic-flow/docs/integrations/fastmcp-poc-integration.md +198 -0
- package/agentic-flow/docs/issues/ISSUE-SUPABASE-INTEGRATION.md +536 -0
- package/agentic-flow/docs/issues/ISSUE-xenova-transformers-dependency.md +380 -0
- package/agentic-flow/docs/mcp-validation/IMPLEMENTATION-SUMMARY.md +493 -0
- package/agentic-flow/docs/mcp-validation/MCP-CLI-VALIDATION-REPORT.md +322 -0
- package/agentic-flow/docs/mcp-validation/README.md +43 -0
- package/agentic-flow/docs/mcp-validation/strange-loops-test.md +63 -0
- package/agentic-flow/docs/plans/QUIC/BUILD_INSTRUCTIONS.md +220 -0
- package/agentic-flow/docs/plans/QUIC/IMPLEMENTATION_STATUS.md +234 -0
- package/agentic-flow/docs/plans/QUIC/QUIC-INTEGRATION-SUMMARY.md +545 -0
- package/agentic-flow/docs/plans/QUIC/QUIC-INTEGRATION.md +502 -0
- package/agentic-flow/docs/plans/QUIC/QUIC-README.md +226 -0
- package/agentic-flow/docs/plans/QUIC/QUIC_IMPLEMENTATION_SUMMARY.md +607 -0
- package/agentic-flow/docs/plans/QUIC/README-CONDENSED.md +447 -0
- package/agentic-flow/docs/plans/QUIC/quic-research.md +1415 -0
- package/agentic-flow/docs/plans/QUIC/quic-tutorial.md +485 -0
- package/agentic-flow/docs/plans/agent-booster/00-INDEX.md +230 -0
- package/agentic-flow/docs/plans/agent-booster/00-OVERVIEW.md +454 -0
- package/agentic-flow/docs/plans/agent-booster/01-ARCHITECTURE.md +699 -0
- package/agentic-flow/docs/plans/agent-booster/02-INTEGRATION.md +771 -0
- package/agentic-flow/docs/plans/agent-booster/03-BENCHMARKS.md +616 -0
- package/agentic-flow/docs/plans/agent-booster/04-NPM-SDK.md +673 -0
- package/agentic-flow/docs/plans/agent-booster/GITHUB-ISSUE.md +523 -0
- package/agentic-flow/docs/plans/agent-booster/README.md +576 -0
- package/agentic-flow/docs/plans/agent-booster-cli-integration.md +317 -0
- package/agentic-flow/docs/plans/requesty/00-overview.md +176 -0
- package/agentic-flow/docs/plans/requesty/01-api-research.md +573 -0
- package/agentic-flow/docs/plans/requesty/02-architecture.md +1076 -0
- package/agentic-flow/docs/plans/requesty/03-implementation-phases.md +1129 -0
- package/agentic-flow/docs/plans/requesty/04-testing-strategy.md +905 -0
- package/agentic-flow/docs/plans/requesty/05-migration-guide.md +576 -0
- package/agentic-flow/docs/plans/requesty/README.md +290 -0
- package/agentic-flow/docs/providers/LANDING-PAGE-PROVIDER-CONTENT.md +204 -0
- package/agentic-flow/docs/providers/PROVIDER-FALLBACK-GUIDE.md +619 -0
- package/agentic-flow/docs/providers/PROVIDER-FALLBACK-SUMMARY.md +418 -0
- package/agentic-flow/docs/quantum-goap/DEPENDENCY_GRAPH.mermaid +133 -0
- package/agentic-flow/docs/quantum-goap/EXECUTION_SUMMARY.md +199 -0
- package/agentic-flow/docs/quantum-goap/GOAP_IMPLEMENTATION_PLAN.md +2406 -0
- package/agentic-flow/docs/quantum-goap/QUICK_START.md +301 -0
- package/agentic-flow/docs/quantum-research/QUANTUM_RESEARCH_LITERATURE_REVIEW.md +2071 -0
- package/agentic-flow/docs/quantum-research/README.md +94 -0
- package/agentic-flow/docs/quic/FINAL-VALIDATION.md +336 -0
- package/agentic-flow/docs/quic/IMPLEMENTATION-COMPLETE-SUMMARY.md +349 -0
- package/agentic-flow/docs/quic/PERFORMANCE-VALIDATION.md +282 -0
- package/agentic-flow/docs/quic/QUIC-STATUS-OLD.md +513 -0
- package/agentic-flow/docs/quic/QUIC-STATUS.md +451 -0
- package/agentic-flow/docs/quic/QUIC-VALIDATION-REPORT.md +370 -0
- package/agentic-flow/docs/quic/QUIC_FINAL_STATUS.md +399 -0
- package/agentic-flow/docs/quic/README_QUIC_PHASE1.md +117 -0
- package/agentic-flow/docs/quic/WASM-INTEGRATION-COMPLETE.md +382 -0
- package/agentic-flow/docs/reasoningbank/MEMORY_VALIDATION_REPORT.md +417 -0
- package/agentic-flow/docs/reasoningbank/README.md +43 -0
- package/agentic-flow/docs/reasoningbank/REASONING-AGENTS.md +482 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK-BENCHMARK-RESULTS.md +166 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK-BENCHMARK.md +396 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK-CLI-INTEGRATION.md +455 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK-DEMO.md +419 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK-VALIDATION.md +532 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK_ARCHITECTURE.md +663 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK_BACKENDS.md +375 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK_FIXES.md +455 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK_IMPLEMENTATION_STATUS.md +478 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK_INTEGRATION_PLAN.md +1059 -0
- package/agentic-flow/docs/reasoningbank/REASONINGBANK_INVESTIGATION.md +380 -0
- package/agentic-flow/docs/releases/GITHUB-ISSUE-ADDENDUM-v1.4.6.md +1529 -0
- package/agentic-flow/docs/releases/GITHUB-ISSUE-REASONINGBANK-BENCHMARK.md +643 -0
- package/agentic-flow/docs/releases/GITHUB-ISSUE-v1.4.6.md +1453 -0
- package/agentic-flow/docs/releases/GITHUB-ISSUE-v1.5.0.md +468 -0
- package/agentic-flow/docs/releases/HOTFIX-v1.2.1.md +315 -0
- package/agentic-flow/docs/releases/NPM-PUBLISH-GUIDE-v1.2.0.md +440 -0
- package/agentic-flow/docs/releases/PUBLISH-COMPLETE-v1.2.0.md +308 -0
- package/agentic-flow/docs/releases/PUBLISH_CHECKLIST_v1.10.0.md +396 -0
- package/agentic-flow/docs/releases/PUBLISH_SUMMARY_v1.7.1.md +198 -0
- package/agentic-flow/docs/releases/README.md +18 -0
- package/agentic-flow/docs/releases/RELEASE-v1.2.0.md +339 -0
- package/agentic-flow/docs/releases/RELEASE-v1.8.13.md +426 -0
- package/agentic-flow/docs/releases/RELEASE_NOTES_v1.10.0.md +464 -0
- package/agentic-flow/docs/releases/RELEASE_NOTES_v1.7.0.md +297 -0
- package/agentic-flow/docs/releases/RELEASE_v1.7.1.md +327 -0
- package/agentic-flow/docs/releases/v1.4.6-reasoningbank-release.md +541 -0
- package/agentic-flow/docs/releases/v1.4.7-bugfix.md +212 -0
- package/agentic-flow/docs/releases/v1.5.14-QUIC-TRANSPORT.md +201 -0
- package/agentic-flow/docs/reports/QUIC_PHASE1_COMPLETE.md +409 -0
- package/agentic-flow/docs/reports/QUIC_PHASE1_COMPLETION.md +323 -0
- package/agentic-flow/docs/reviews/quic-implementation-review.md +1076 -0
- package/agentic-flow/docs/router/README.md +552 -0
- package/agentic-flow/docs/router/ROUTER_CONFIG_REFERENCE.md +577 -0
- package/agentic-flow/docs/router/ROUTER_USER_GUIDE.md +865 -0
- package/agentic-flow/docs/router/TOP20_MODELS_MATRIX.md +80 -0
- package/agentic-flow/docs/supabase/IMPLEMENTATION-SUMMARY.md +498 -0
- package/agentic-flow/docs/supabase/INDEX.md +358 -0
- package/agentic-flow/docs/supabase/QUICKSTART.md +365 -0
- package/agentic-flow/docs/supabase/README.md +318 -0
- package/agentic-flow/docs/supabase/SUPABASE-REALTIME-FEDERATION.md +575 -0
- package/agentic-flow/docs/supabase/TEST-REPORT.md +446 -0
- package/agentic-flow/docs/supabase/migrations/001_create_federation_tables.sql +339 -0
- package/agentic-flow/docs/testing/AGENT-SYSTEM-VALIDATION.md +517 -0
- package/agentic-flow/docs/testing/AGENTDB_TESTING.md +411 -0
- package/agentic-flow/docs/testing/FINAL-TESTING-SUMMARY.md +362 -0
- package/agentic-flow/docs/testing/README.md +46 -0
- package/agentic-flow/docs/testing/REGRESSION-TEST-RESULTS.md +269 -0
- package/agentic-flow/docs/testing/STREAMING-AND-MCP-VALIDATION.md +517 -0
- package/agentic-flow/docs/validation-reports/BENCHMARK_AND_OPTIMIZATION_REPORT.md +470 -0
- package/agentic-flow/docs/validation-reports/DOCKER_VALIDATION_RESULTS.md +391 -0
- package/agentic-flow/docs/validation-reports/NO_REGRESSIONS_CONFIRMED.md +384 -0
- package/agentic-flow/docs/validation-reports/NPM-PACKAGE-ANALYSIS-FINAL.md +543 -0
- package/agentic-flow/docs/validation-reports/README.md +43 -0
- package/agentic-flow/docs/validation-reports/V2.7.0-ALPHA.10_FINAL_VALIDATION.md +817 -0
- package/agentic-flow/docs/validation-reports/V2.7.0-ALPHA.9_VALIDATION.md +546 -0
- package/agentic-flow/docs/validation-reports/v1.6.0-QUIC-CLI-VALIDATION.md +558 -0
- package/agentic-flow/docs/validation-reports/v1.6.1-NPM-PUBLISH-VALIDATION.md +532 -0
- package/agentic-flow/docs/version-releases/PUBLICATION_REPORT_v1.5.11.md +421 -0
- package/agentic-flow/docs/version-releases/README.md +82 -0
- package/agentic-flow/docs/version-releases/v1.5.9-DOCKER-VERIFICATION.md +263 -0
- package/agentic-flow/docs/version-releases/v1.5.9-RELEASE-SUMMARY.md +222 -0
- package/agentic-flow/scripts/build.sh +30 -0
- package/agentic-flow/scripts/claude +31 -0
- package/agentic-flow/scripts/claude-code +56 -0
- package/agentic-flow/scripts/claude-flow +81 -0
- package/agentic-flow/scripts/claude-flow.bat +18 -0
- package/agentic-flow/scripts/claude-flow.ps1 +24 -0
- package/agentic-flow/scripts/postinstall.js +139 -0
- package/agentic-flow/scripts/run-validation.sh +165 -0
- package/agentic-flow/scripts/test-agentdb.sh +153 -0
- package/agentic-flow/scripts/test-all-commands.sh +46 -0
- package/agentic-flow/scripts/test-claude-flow-sdk.sh +46 -0
- package/agentic-flow/scripts/test-fastmcp-docker.sh +132 -0
- package/agentic-flow/scripts/test-fastmcp-poc.sh +26 -0
- package/agentic-flow/scripts/test-functionality.sh +50 -0
- package/agentic-flow/scripts/test-onnx-docker.sh +176 -0
- package/agentic-flow/scripts/test-router-docker.sh +105 -0
- package/agentic-flow/scripts/validate-mcp-cli-tools.sh +104 -0
- package/agentic-flow/scripts/validate-providers.sh +50 -0
- package/agentic-flow/wasm/quic/README.md +75 -0
- package/agentic-flow/wasm/quic/agentic_flow_quic.js +779 -0
- package/agentic-flow/wasm/quic/agentic_flow_quic_bg.wasm +0 -0
- package/agentic-flow/wasm/quic/package.json +20 -0
- package/agentic-flow/wasm/reasoningbank/package.json +34 -0
- package/agentic-flow/wasm/reasoningbank/reasoningbank_wasm.js +5 -0
- package/agentic-flow/wasm/reasoningbank/reasoningbank_wasm_bg.js +555 -0
- package/agentic-flow/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
- package/docs/CHANGELOG.md +272 -0
- package/docs/LICENSE +21 -0
- package/docs/README.md +127 -0
- package/package.json +279 -0
- package/packages/agentic-jujutsu/.cargo/config.toml +14 -0
- package/packages/agentic-jujutsu/BUILD.md +292 -0
- package/packages/agentic-jujutsu/CHANGELOG.md +143 -0
- package/packages/agentic-jujutsu/CHANGELOG_v2.2.0.md +203 -0
- package/packages/agentic-jujutsu/CRATE_README.md +269 -0
- package/packages/agentic-jujutsu/Dockerfile +8 -0
- package/packages/agentic-jujutsu/Dockerfile.test +81 -0
- package/packages/agentic-jujutsu/FUNCTIONALITY_VERIFICATION.md +377 -0
- package/packages/agentic-jujutsu/LICENSE +21 -0
- package/packages/agentic-jujutsu/NAPI_CI_CD_FILES.txt +162 -0
- package/packages/agentic-jujutsu/QUANTUM_INTEGRATION_SUMMARY.txt +67 -0
- package/packages/agentic-jujutsu/README.md +2248 -0
- package/packages/agentic-jujutsu/README_QUANTUM_INTEGRATION.md +195 -0
- package/packages/agentic-jujutsu/agentic-jujutsu-2.0.0.tgz +0 -0
- package/packages/agentic-jujutsu/agentic-jujutsu-2.0.1.tgz +0 -0
- package/packages/agentic-jujutsu/agentic-jujutsu-2.0.2.tgz +0 -0
- package/packages/agentic-jujutsu/agentic-jujutsu-2.0.3.tgz +0 -0
- package/packages/agentic-jujutsu/agentic-jujutsu.linux-x64-gnu.node +0 -0
- package/packages/agentic-jujutsu/benchmarks/README.md +403 -0
- package/packages/agentic-jujutsu/benchmarks/docker/.env.example +24 -0
- package/packages/agentic-jujutsu/benchmarks/docker/Dockerfile.git +55 -0
- package/packages/agentic-jujutsu/benchmarks/docker/Dockerfile.jujutsu +67 -0
- package/packages/agentic-jujutsu/benchmarks/docker/Dockerfile.swarm-coordinator +45 -0
- package/packages/agentic-jujutsu/benchmarks/docker/config/prometheus.yml +20 -0
- package/packages/agentic-jujutsu/benchmarks/docker/docker-compose.yml +152 -0
- package/packages/agentic-jujutsu/benchmarks/docker/scripts/collect-metrics.sh +143 -0
- package/packages/agentic-jujutsu/benchmarks/docker/scripts/generate-reports.sh +150 -0
- package/packages/agentic-jujutsu/benchmarks/docker/scripts/run-benchmarks.sh +80 -0
- package/packages/agentic-jujutsu/benchmarks/docker/scripts/setup-repos.sh +88 -0
- package/packages/agentic-jujutsu/bin/cli.js +286 -0
- package/packages/agentic-jujutsu/bin/mcp-server.js +20 -0
- package/packages/agentic-jujutsu/build.rs +134 -0
- package/packages/agentic-jujutsu/check-methods.js +26 -0
- package/packages/agentic-jujutsu/helpers/encryption.js +234 -0
- package/packages/agentic-jujutsu/index.d.ts +853 -0
- package/packages/agentic-jujutsu/index.js +321 -0
- package/packages/agentic-jujutsu/package-lock.json +1163 -0
- package/packages/agentic-jujutsu/package.json +108 -0
- package/packages/agentic-jujutsu/pkg/bundler/LICENSE +21 -0
- package/packages/agentic-jujutsu/pkg/bundler/README.md +361 -0
- package/packages/agentic-jujutsu/pkg/bundler/agentic_jujutsu.d.ts +554 -0
- package/packages/agentic-jujutsu/pkg/bundler/agentic_jujutsu.js +5 -0
- package/packages/agentic-jujutsu/pkg/bundler/agentic_jujutsu_bg.js +1821 -0
- package/packages/agentic-jujutsu/pkg/bundler/agentic_jujutsu_bg.wasm +0 -0
- package/packages/agentic-jujutsu/pkg/bundler/agentic_jujutsu_bg.wasm.d.ts +113 -0
- package/packages/agentic-jujutsu/pkg/bundler/package.json +34 -0
- package/packages/agentic-jujutsu/pkg/deno/LICENSE +21 -0
- package/packages/agentic-jujutsu/pkg/deno/README.md +361 -0
- package/packages/agentic-jujutsu/pkg/deno/agentic_jujutsu.d.ts +554 -0
- package/packages/agentic-jujutsu/pkg/deno/agentic_jujutsu.js +1802 -0
- package/packages/agentic-jujutsu/pkg/deno/agentic_jujutsu_bg.wasm +0 -0
- package/packages/agentic-jujutsu/pkg/deno/agentic_jujutsu_bg.wasm.d.ts +113 -0
- package/packages/agentic-jujutsu/pkg/node/LICENSE +21 -0
- package/packages/agentic-jujutsu/pkg/node/README.md +361 -0
- package/packages/agentic-jujutsu/pkg/node/agentic_jujutsu.d.ts +554 -0
- package/packages/agentic-jujutsu/pkg/node/agentic_jujutsu.js +1830 -0
- package/packages/agentic-jujutsu/pkg/node/agentic_jujutsu_bg.wasm +0 -0
- package/packages/agentic-jujutsu/pkg/node/agentic_jujutsu_bg.wasm.d.ts +113 -0
- package/packages/agentic-jujutsu/pkg/node/package.json +28 -0
- package/packages/agentic-jujutsu/pkg/web/LICENSE +21 -0
- package/packages/agentic-jujutsu/pkg/web/README.md +361 -0
- package/packages/agentic-jujutsu/pkg/web/agentic_jujutsu.d.ts +691 -0
- package/packages/agentic-jujutsu/pkg/web/agentic_jujutsu.js +1913 -0
- package/packages/agentic-jujutsu/pkg/web/agentic_jujutsu_bg.wasm +0 -0
- package/packages/agentic-jujutsu/pkg/web/agentic_jujutsu_bg.wasm.d.ts +113 -0
- package/packages/agentic-jujutsu/pkg/web/package.json +32 -0
- package/packages/agentic-jujutsu/quantum-bridge.d.ts +115 -0
- package/packages/agentic-jujutsu/scripts/agentic-flow-integration.js +178 -0
- package/packages/agentic-jujutsu/scripts/analyze-size.sh +23 -0
- package/packages/agentic-jujutsu/scripts/coverage.sh +57 -0
- package/packages/agentic-jujutsu/scripts/docker-test.sh +56 -0
- package/packages/agentic-jujutsu/scripts/final-validation.sh +85 -0
- package/packages/agentic-jujutsu/scripts/install-jj.js +197 -0
- package/packages/agentic-jujutsu/scripts/mcp-server.js +98 -0
- package/packages/agentic-jujutsu/scripts/test-all.sh +68 -0
- package/packages/agentic-jujutsu/scripts/verify-build.sh +32 -0
- package/packages/agentic-jujutsu/scripts/verify-napi-config.sh +122 -0
- package/packages/agentic-jujutsu/scripts/wasm-pack-build.sh +76 -0
- package/packages/agentic-jujutsu/test-agentdb-cli.js +119 -0
- package/packages/agentic-jujutsu/test-agentdb.js +105 -0
- package/packages/agentic-jujutsu/test-failures.js +53 -0
- package/packages/agentic-jujutsu/test-napi.js +40 -0
- package/packages/agentic-jujutsu/test-quick.js +61 -0
- package/packages/agentic-jujutsu/test-repo/test-file.txt +1 -0
- package/packages/agentic-jujutsu/typescript/hooks-integration.ts +370 -0
- package/packages/agentic-jujutsu/typescript/index.d.ts +415 -0
- package/reasoningbank/README.md +217 -0
|
@@ -0,0 +1,1076 @@
|
|
|
1
|
+
# Requesty.ai Integration Architecture
|
|
2
|
+
|
|
3
|
+
## Architecture Overview
|
|
4
|
+
|
|
5
|
+
### High-Level Design
|
|
6
|
+
|
|
7
|
+
The Requesty integration will follow the **exact same proxy pattern** as OpenRouter, with minimal modifications:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
11
|
+
│ Agentic Flow CLI │
|
|
12
|
+
│ (cli-proxy.ts entry point) │
|
|
13
|
+
└────────────────────────┬────────────────────────────────────────┘
|
|
14
|
+
│
|
|
15
|
+
├─ Parse CLI flags (--provider requesty)
|
|
16
|
+
├─ Detect REQUESTY_API_KEY
|
|
17
|
+
└─ Route to appropriate handler
|
|
18
|
+
│
|
|
19
|
+
┌───────────────┴───────────────┐
|
|
20
|
+
│ │
|
|
21
|
+
▼ ▼
|
|
22
|
+
┌────────────────┐ ┌────────────────┐
|
|
23
|
+
│ Direct API │ │ Proxy Mode │
|
|
24
|
+
│ (Anthropic) │ │ (Requesty) │
|
|
25
|
+
└────────────────┘ └────────┬───────┘
|
|
26
|
+
│
|
|
27
|
+
▼
|
|
28
|
+
┌────────────────────────────────┐
|
|
29
|
+
│ AnthropicToRequestyProxy │
|
|
30
|
+
│ (Port 3000 local server) │
|
|
31
|
+
├────────────────────────────────┤
|
|
32
|
+
│ 1. Accept Anthropic format │
|
|
33
|
+
│ (/v1/messages endpoint) │
|
|
34
|
+
│ 2. Convert to OpenAI format │
|
|
35
|
+
│ 3. Forward to Requesty router │
|
|
36
|
+
│ 4. Convert response back │
|
|
37
|
+
│ 5. Handle streaming/tools │
|
|
38
|
+
└────────────┬───────────────────┘
|
|
39
|
+
│
|
|
40
|
+
│ HTTP POST
|
|
41
|
+
▼
|
|
42
|
+
┌────────────────────────────────┐
|
|
43
|
+
│ Requesty Router │
|
|
44
|
+
│ router.requesty.ai/v1 │
|
|
45
|
+
├────────────────────────────────┤
|
|
46
|
+
│ • Auto-routing │
|
|
47
|
+
│ • Caching │
|
|
48
|
+
│ • Load balancing │
|
|
49
|
+
│ • Cost optimization │
|
|
50
|
+
└────────────┬───────────────────┘
|
|
51
|
+
│
|
|
52
|
+
├─ Model Execution
|
|
53
|
+
│
|
|
54
|
+
┌────────────┴───────────────────┐
|
|
55
|
+
│ │
|
|
56
|
+
┌───────▼──────┐ ┌─────────▼────────┐
|
|
57
|
+
│ OpenAI │ │ Anthropic │
|
|
58
|
+
│ (GPT-4o) │ │ (Claude 3.5) │
|
|
59
|
+
└──────────────┘ └──────────────────┘
|
|
60
|
+
│ │
|
|
61
|
+
┌───────▼──────┐ ┌─────────▼────────┐
|
|
62
|
+
│ Google │ │ DeepSeek │
|
|
63
|
+
│ (Gemini) │ │ (Chat V3) │
|
|
64
|
+
└──────────────┘ └──────────────────┘
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Component Breakdown
|
|
68
|
+
|
|
69
|
+
#### 1. CLI Integration (`src/cli-proxy.ts`)
|
|
70
|
+
|
|
71
|
+
**Responsibilities:**
|
|
72
|
+
- Detect `--provider requesty` flag
|
|
73
|
+
- Check for `REQUESTY_API_KEY` environment variable
|
|
74
|
+
- Initialize Requesty proxy server
|
|
75
|
+
- Configure environment for Claude Agent SDK
|
|
76
|
+
|
|
77
|
+
**Code Changes Required:**
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
// Add to shouldUseRequesty() method
|
|
81
|
+
private shouldUseRequesty(options: any): boolean {
|
|
82
|
+
if (options.provider === 'requesty' || process.env.PROVIDER === 'requesty') {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (process.env.USE_REQUESTY === 'true') {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (process.env.REQUESTY_API_KEY &&
|
|
91
|
+
!process.env.ANTHROPIC_API_KEY &&
|
|
92
|
+
!process.env.OPENROUTER_API_KEY &&
|
|
93
|
+
!process.env.GOOGLE_GEMINI_API_KEY) {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Add to start() method
|
|
101
|
+
if (useRequesty) {
|
|
102
|
+
console.log('🚀 Initializing Requesty proxy...');
|
|
103
|
+
await this.startRequestyProxy(options.model);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Add startRequestyProxy() method (clone from startOpenRouterProxy)
|
|
107
|
+
private async startRequestyProxy(modelOverride?: string): Promise<void> {
|
|
108
|
+
const requestyKey = process.env.REQUESTY_API_KEY;
|
|
109
|
+
|
|
110
|
+
if (!requestyKey) {
|
|
111
|
+
console.error('❌ Error: REQUESTY_API_KEY required for Requesty models');
|
|
112
|
+
console.error('Set it in .env or export REQUESTY_API_KEY=requesty-xxxxx');
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
logger.info('Starting integrated Requesty proxy');
|
|
117
|
+
|
|
118
|
+
const defaultModel = modelOverride ||
|
|
119
|
+
process.env.COMPLETION_MODEL ||
|
|
120
|
+
'openai/gpt-4o-mini';
|
|
121
|
+
|
|
122
|
+
const capabilities = detectModelCapabilities(defaultModel);
|
|
123
|
+
|
|
124
|
+
const proxy = new AnthropicToRequestyProxy({
|
|
125
|
+
requestyApiKey: requestyKey,
|
|
126
|
+
requestyBaseUrl: process.env.REQUESTY_BASE_URL,
|
|
127
|
+
defaultModel,
|
|
128
|
+
capabilities: capabilities
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
proxy.start(this.proxyPort);
|
|
132
|
+
this.proxyServer = proxy;
|
|
133
|
+
|
|
134
|
+
process.env.ANTHROPIC_BASE_URL = `http://localhost:${this.proxyPort}`;
|
|
135
|
+
|
|
136
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
137
|
+
process.env.ANTHROPIC_API_KEY = 'sk-ant-proxy-dummy-key';
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
console.log(`🔗 Proxy Mode: Requesty`);
|
|
141
|
+
console.log(`🔧 Proxy URL: http://localhost:${this.proxyPort}`);
|
|
142
|
+
console.log(`🤖 Default Model: ${defaultModel}`);
|
|
143
|
+
|
|
144
|
+
if (capabilities.requiresEmulation) {
|
|
145
|
+
console.log(`\n⚙️ Detected: Model lacks native tool support`);
|
|
146
|
+
console.log(`🔧 Using ${capabilities.emulationStrategy.toUpperCase()} emulation pattern`);
|
|
147
|
+
}
|
|
148
|
+
console.log('');
|
|
149
|
+
|
|
150
|
+
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
#### 2. Proxy Server (`src/proxy/anthropic-to-requesty.ts`)
|
|
155
|
+
|
|
156
|
+
**Based on:** `src/proxy/anthropic-to-openrouter.ts` (95% identical)
|
|
157
|
+
|
|
158
|
+
**Class Structure:**
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
export class AnthropicToRequestyProxy {
|
|
162
|
+
private app: express.Application;
|
|
163
|
+
private requestyApiKey: string;
|
|
164
|
+
private requestyBaseUrl: string;
|
|
165
|
+
private defaultModel: string;
|
|
166
|
+
private capabilities?: ModelCapabilities;
|
|
167
|
+
|
|
168
|
+
constructor(config: {
|
|
169
|
+
requestyApiKey: string;
|
|
170
|
+
requestyBaseUrl?: string;
|
|
171
|
+
defaultModel?: string;
|
|
172
|
+
capabilities?: ModelCapabilities;
|
|
173
|
+
}) {
|
|
174
|
+
this.app = express();
|
|
175
|
+
this.requestyApiKey = config.requestyApiKey;
|
|
176
|
+
this.requestyBaseUrl = config.requestyBaseUrl ||
|
|
177
|
+
'https://router.requesty.ai/v1';
|
|
178
|
+
this.defaultModel = config.defaultModel || 'openai/gpt-4o-mini';
|
|
179
|
+
this.capabilities = config.capabilities;
|
|
180
|
+
|
|
181
|
+
this.setupMiddleware();
|
|
182
|
+
this.setupRoutes();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
private setupRoutes(): void {
|
|
186
|
+
// Health check
|
|
187
|
+
this.app.get('/health', (req, res) => {
|
|
188
|
+
res.json({ status: 'ok', service: 'anthropic-to-requesty-proxy' });
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
// Anthropic Messages API → Requesty Chat Completions
|
|
192
|
+
this.app.post('/v1/messages', async (req, res) => {
|
|
193
|
+
// Convert and forward request
|
|
194
|
+
const result = await this.handleRequest(req.body, res);
|
|
195
|
+
if (result) res.json(result);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
private async handleRequest(
|
|
200
|
+
anthropicReq: AnthropicRequest,
|
|
201
|
+
res: Response
|
|
202
|
+
): Promise<any> {
|
|
203
|
+
const capabilities = this.capabilities ||
|
|
204
|
+
detectModelCapabilities(anthropicReq.model || this.defaultModel);
|
|
205
|
+
|
|
206
|
+
if (capabilities.requiresEmulation && anthropicReq.tools?.length > 0) {
|
|
207
|
+
return this.handleEmulatedRequest(anthropicReq, capabilities);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return this.handleNativeRequest(anthropicReq, res);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
private async handleNativeRequest(
|
|
214
|
+
anthropicReq: AnthropicRequest,
|
|
215
|
+
res: Response
|
|
216
|
+
): Promise<any> {
|
|
217
|
+
// Convert Anthropic → OpenAI format
|
|
218
|
+
const openaiReq = this.convertAnthropicToOpenAI(anthropicReq);
|
|
219
|
+
|
|
220
|
+
// Forward to Requesty
|
|
221
|
+
const response = await fetch(`${this.requestyBaseUrl}/chat/completions`, {
|
|
222
|
+
method: 'POST',
|
|
223
|
+
headers: {
|
|
224
|
+
'Authorization': `Bearer ${this.requestyApiKey}`,
|
|
225
|
+
'Content-Type': 'application/json',
|
|
226
|
+
'HTTP-Referer': 'https://github.com/ruvnet/agentic-flow',
|
|
227
|
+
'X-Title': 'Agentic Flow'
|
|
228
|
+
},
|
|
229
|
+
body: JSON.stringify(openaiReq)
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
if (!response.ok) {
|
|
233
|
+
const error = await response.text();
|
|
234
|
+
logger.error('Requesty API error', { status: response.status, error });
|
|
235
|
+
res.status(response.status).json({
|
|
236
|
+
error: { type: 'api_error', message: error }
|
|
237
|
+
});
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Handle streaming vs non-streaming
|
|
242
|
+
if (anthropicReq.stream) {
|
|
243
|
+
// Stream response
|
|
244
|
+
res.setHeader('Content-Type', 'text/event-stream');
|
|
245
|
+
const reader = response.body?.getReader();
|
|
246
|
+
// ... streaming logic
|
|
247
|
+
} else {
|
|
248
|
+
// Non-streaming
|
|
249
|
+
const openaiRes = await response.json();
|
|
250
|
+
return this.convertOpenAIToAnthropic(openaiRes);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
private convertAnthropicToOpenAI(req: AnthropicRequest): OpenAIRequest {
|
|
255
|
+
// IDENTICAL to OpenRouter conversion
|
|
256
|
+
// See anthropic-to-openrouter.ts lines 376-532
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
private convertOpenAIToAnthropic(res: any): any {
|
|
260
|
+
// IDENTICAL to OpenRouter conversion
|
|
261
|
+
// See anthropic-to-openrouter.ts lines 588-685
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
public start(port: number): void {
|
|
265
|
+
this.app.listen(port, () => {
|
|
266
|
+
logger.info('Anthropic to Requesty proxy started', {
|
|
267
|
+
port,
|
|
268
|
+
requestyBaseUrl: this.requestyBaseUrl,
|
|
269
|
+
defaultModel: this.defaultModel
|
|
270
|
+
});
|
|
271
|
+
console.log(`\n✅ Anthropic Proxy running at http://localhost:${port}`);
|
|
272
|
+
console.log(` Requesty Base URL: ${this.requestyBaseUrl}`);
|
|
273
|
+
console.log(` Default Model: ${this.defaultModel}\n`);
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
**Key Differences from OpenRouter Proxy:**
|
|
280
|
+
|
|
281
|
+
| Component | OpenRouter | Requesty | Change Required |
|
|
282
|
+
|-----------|-----------|----------|-----------------|
|
|
283
|
+
| Class name | `AnthropicToOpenRouterProxy` | `AnthropicToRequestyProxy` | Rename |
|
|
284
|
+
| Base URL | `https://openrouter.ai/api/v1` | `https://router.requesty.ai/v1` | Update constant |
|
|
285
|
+
| API key variable | `openrouterApiKey` | `requestyApiKey` | Rename |
|
|
286
|
+
| Auth header | `Bearer sk-or-...` | `Bearer requesty-...` | No code change |
|
|
287
|
+
| Endpoint | `/chat/completions` | `/chat/completions` | Identical |
|
|
288
|
+
| Request format | OpenAI | OpenAI | Identical |
|
|
289
|
+
| Response format | OpenAI | OpenAI | Identical |
|
|
290
|
+
| Tool format | OpenAI functions | OpenAI functions | Identical |
|
|
291
|
+
|
|
292
|
+
**Lines of Code to Copy:** ~750 lines (95% reusable)
|
|
293
|
+
|
|
294
|
+
#### 3. Agent Integration (`src/agents/claudeAgent.ts`)
|
|
295
|
+
|
|
296
|
+
**Changes Required:**
|
|
297
|
+
|
|
298
|
+
```typescript
|
|
299
|
+
function getCurrentProvider(): string {
|
|
300
|
+
// Add Requesty detection
|
|
301
|
+
if (process.env.PROVIDER === 'requesty' || process.env.USE_REQUESTY === 'true') {
|
|
302
|
+
return 'requesty';
|
|
303
|
+
}
|
|
304
|
+
// ... existing providers
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
function getModelForProvider(provider: string): {
|
|
308
|
+
model: string;
|
|
309
|
+
apiKey: string;
|
|
310
|
+
baseURL?: string;
|
|
311
|
+
} {
|
|
312
|
+
switch (provider) {
|
|
313
|
+
case 'requesty':
|
|
314
|
+
return {
|
|
315
|
+
model: process.env.COMPLETION_MODEL || 'openai/gpt-4o-mini',
|
|
316
|
+
apiKey: process.env.REQUESTY_API_KEY || process.env.ANTHROPIC_API_KEY || '',
|
|
317
|
+
baseURL: process.env.PROXY_URL || undefined
|
|
318
|
+
};
|
|
319
|
+
// ... existing cases
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// In claudeAgent() function, add Requesty handling
|
|
324
|
+
if (provider === 'requesty' && process.env.REQUESTY_API_KEY) {
|
|
325
|
+
envOverrides.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || 'proxy-key';
|
|
326
|
+
envOverrides.ANTHROPIC_BASE_URL = process.env.ANTHROPIC_BASE_URL ||
|
|
327
|
+
process.env.REQUESTY_PROXY_URL ||
|
|
328
|
+
'http://localhost:3000';
|
|
329
|
+
|
|
330
|
+
logger.info('Using Requesty proxy', {
|
|
331
|
+
proxyUrl: envOverrides.ANTHROPIC_BASE_URL,
|
|
332
|
+
model: finalModel
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
#### 4. Model Capabilities (`src/utils/modelCapabilities.ts`)
|
|
338
|
+
|
|
339
|
+
**Add Requesty Model Definitions:**
|
|
340
|
+
|
|
341
|
+
```typescript
|
|
342
|
+
const MODEL_CAPABILITIES: Record<string, Partial<ModelCapabilities>> = {
|
|
343
|
+
// Existing models...
|
|
344
|
+
|
|
345
|
+
// Requesty - OpenAI models
|
|
346
|
+
'openai/gpt-4o': {
|
|
347
|
+
supportsNativeTools: true,
|
|
348
|
+
contextWindow: 128000,
|
|
349
|
+
requiresEmulation: false,
|
|
350
|
+
emulationStrategy: 'none',
|
|
351
|
+
costPerMillionTokens: 0.50,
|
|
352
|
+
provider: 'requesty'
|
|
353
|
+
},
|
|
354
|
+
'openai/gpt-4o-mini': {
|
|
355
|
+
supportsNativeTools: true,
|
|
356
|
+
contextWindow: 128000,
|
|
357
|
+
requiresEmulation: false,
|
|
358
|
+
emulationStrategy: 'none',
|
|
359
|
+
costPerMillionTokens: 0.03,
|
|
360
|
+
provider: 'requesty'
|
|
361
|
+
},
|
|
362
|
+
|
|
363
|
+
// Requesty - Anthropic models
|
|
364
|
+
'anthropic/claude-3.5-sonnet': {
|
|
365
|
+
supportsNativeTools: true,
|
|
366
|
+
contextWindow: 200000,
|
|
367
|
+
requiresEmulation: false,
|
|
368
|
+
emulationStrategy: 'none',
|
|
369
|
+
costPerMillionTokens: 0.60,
|
|
370
|
+
provider: 'requesty'
|
|
371
|
+
},
|
|
372
|
+
|
|
373
|
+
// Requesty - Google models
|
|
374
|
+
'google/gemini-2.5-flash': {
|
|
375
|
+
supportsNativeTools: true,
|
|
376
|
+
contextWindow: 1000000,
|
|
377
|
+
requiresEmulation: false,
|
|
378
|
+
emulationStrategy: 'none',
|
|
379
|
+
costPerMillionTokens: 0.0, // FREE
|
|
380
|
+
provider: 'requesty'
|
|
381
|
+
},
|
|
382
|
+
|
|
383
|
+
// Requesty - DeepSeek models
|
|
384
|
+
'deepseek/deepseek-chat-v3': {
|
|
385
|
+
supportsNativeTools: true,
|
|
386
|
+
contextWindow: 128000,
|
|
387
|
+
requiresEmulation: false,
|
|
388
|
+
emulationStrategy: 'none',
|
|
389
|
+
costPerMillionTokens: 0.03,
|
|
390
|
+
provider: 'requesty'
|
|
391
|
+
},
|
|
392
|
+
|
|
393
|
+
// ... add more Requesty models
|
|
394
|
+
};
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
#### 5. Model Optimizer (`src/utils/modelOptimizer.ts`)
|
|
398
|
+
|
|
399
|
+
**Add Requesty Models to Optimizer Database:**
|
|
400
|
+
|
|
401
|
+
```typescript
|
|
402
|
+
// In MODEL_DATABASE constant, add Requesty models
|
|
403
|
+
const MODEL_DATABASE: ModelInfo[] = [
|
|
404
|
+
// Existing models...
|
|
405
|
+
|
|
406
|
+
// Requesty models
|
|
407
|
+
{
|
|
408
|
+
provider: 'requesty',
|
|
409
|
+
modelId: 'openai/gpt-4o',
|
|
410
|
+
name: 'GPT-4o (Requesty)',
|
|
411
|
+
contextWindow: 128000,
|
|
412
|
+
maxOutput: 4096,
|
|
413
|
+
qualityScore: 95,
|
|
414
|
+
speedScore: 85,
|
|
415
|
+
costPer1MTokens: { input: 0.50, output: 1.50 },
|
|
416
|
+
capabilities: {
|
|
417
|
+
toolCalling: true,
|
|
418
|
+
streaming: true,
|
|
419
|
+
vision: true,
|
|
420
|
+
jsonMode: true
|
|
421
|
+
},
|
|
422
|
+
useCase: ['reasoning', 'coding', 'analysis'],
|
|
423
|
+
requiresKey: 'REQUESTY_API_KEY'
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
provider: 'requesty',
|
|
427
|
+
modelId: 'openai/gpt-4o-mini',
|
|
428
|
+
name: 'GPT-4o Mini (Requesty)',
|
|
429
|
+
contextWindow: 128000,
|
|
430
|
+
maxOutput: 4096,
|
|
431
|
+
qualityScore: 80,
|
|
432
|
+
speedScore: 95,
|
|
433
|
+
costPer1MTokens: { input: 0.03, output: 0.06 },
|
|
434
|
+
capabilities: {
|
|
435
|
+
toolCalling: true,
|
|
436
|
+
streaming: true,
|
|
437
|
+
vision: false,
|
|
438
|
+
jsonMode: true
|
|
439
|
+
},
|
|
440
|
+
useCase: ['coding', 'analysis', 'chat'],
|
|
441
|
+
requiresKey: 'REQUESTY_API_KEY'
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
provider: 'requesty',
|
|
445
|
+
modelId: 'google/gemini-2.5-flash',
|
|
446
|
+
name: 'Gemini 2.5 Flash (Requesty)',
|
|
447
|
+
contextWindow: 1000000,
|
|
448
|
+
maxOutput: 8192,
|
|
449
|
+
qualityScore: 85,
|
|
450
|
+
speedScore: 98,
|
|
451
|
+
costPer1MTokens: { input: 0.0, output: 0.0 }, // FREE
|
|
452
|
+
capabilities: {
|
|
453
|
+
toolCalling: true,
|
|
454
|
+
streaming: true,
|
|
455
|
+
vision: true,
|
|
456
|
+
jsonMode: true
|
|
457
|
+
},
|
|
458
|
+
useCase: ['coding', 'analysis', 'chat'],
|
|
459
|
+
requiresKey: 'REQUESTY_API_KEY'
|
|
460
|
+
},
|
|
461
|
+
// ... add more Requesty models
|
|
462
|
+
];
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
## Data Flow Diagrams
|
|
466
|
+
|
|
467
|
+
### Request Flow - Chat Completion
|
|
468
|
+
|
|
469
|
+
```
|
|
470
|
+
User CLI Command
|
|
471
|
+
│
|
|
472
|
+
└─> npx agentic-flow --agent coder --task "Create API" --provider requesty
|
|
473
|
+
│
|
|
474
|
+
├─> CLI Parser (cli-proxy.ts)
|
|
475
|
+
│ ├─ Detect --provider requesty
|
|
476
|
+
│ ├─ Load REQUESTY_API_KEY from env
|
|
477
|
+
│ └─ Start AnthropicToRequestyProxy on port 3000
|
|
478
|
+
│
|
|
479
|
+
├─> Set Environment Variables
|
|
480
|
+
│ ├─ ANTHROPIC_BASE_URL = http://localhost:3000
|
|
481
|
+
│ └─ ANTHROPIC_API_KEY = sk-ant-proxy-dummy-key
|
|
482
|
+
│
|
|
483
|
+
└─> Execute Agent (claudeAgent.ts)
|
|
484
|
+
│
|
|
485
|
+
└─> Claude Agent SDK query()
|
|
486
|
+
│
|
|
487
|
+
├─> Reads ANTHROPIC_BASE_URL (proxy)
|
|
488
|
+
│
|
|
489
|
+
└─> POST http://localhost:3000/v1/messages
|
|
490
|
+
│
|
|
491
|
+
└─> AnthropicToRequestyProxy
|
|
492
|
+
│
|
|
493
|
+
├─> Receive Anthropic format request
|
|
494
|
+
│ {
|
|
495
|
+
│ model: "openai/gpt-4o-mini",
|
|
496
|
+
│ messages: [...],
|
|
497
|
+
│ tools: [...]
|
|
498
|
+
│ }
|
|
499
|
+
│
|
|
500
|
+
├─> Convert to OpenAI format
|
|
501
|
+
│ {
|
|
502
|
+
│ model: "openai/gpt-4o-mini",
|
|
503
|
+
│ messages: [...],
|
|
504
|
+
│ tools: [...]
|
|
505
|
+
│ }
|
|
506
|
+
│
|
|
507
|
+
├─> POST https://router.requesty.ai/v1/chat/completions
|
|
508
|
+
│ Headers:
|
|
509
|
+
│ Authorization: Bearer requesty-xxxxx
|
|
510
|
+
│ Content-Type: application/json
|
|
511
|
+
│
|
|
512
|
+
└─> Requesty Router
|
|
513
|
+
│
|
|
514
|
+
├─> Auto-route to optimal model
|
|
515
|
+
├─> Check cache
|
|
516
|
+
├─> Execute model
|
|
517
|
+
│
|
|
518
|
+
└─> Return OpenAI format response
|
|
519
|
+
│
|
|
520
|
+
└─> AnthropicToRequestyProxy
|
|
521
|
+
│
|
|
522
|
+
├─> Convert to Anthropic format
|
|
523
|
+
│ {
|
|
524
|
+
│ id: "msg_xxx",
|
|
525
|
+
│ role: "assistant",
|
|
526
|
+
│ content: [...]
|
|
527
|
+
│ }
|
|
528
|
+
│
|
|
529
|
+
└─> Return to Claude Agent SDK
|
|
530
|
+
│
|
|
531
|
+
└─> Display to user
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
### Tool Calling Flow
|
|
535
|
+
|
|
536
|
+
```
|
|
537
|
+
User asks agent to read a file
|
|
538
|
+
│
|
|
539
|
+
└─> Agent determines tool call needed
|
|
540
|
+
│
|
|
541
|
+
└─> POST /v1/messages with tools array
|
|
542
|
+
{
|
|
543
|
+
"tools": [{
|
|
544
|
+
"type": "function",
|
|
545
|
+
"function": {
|
|
546
|
+
"name": "Read",
|
|
547
|
+
"parameters": {...}
|
|
548
|
+
}
|
|
549
|
+
}]
|
|
550
|
+
}
|
|
551
|
+
│
|
|
552
|
+
└─> Proxy converts to OpenAI format (no change needed)
|
|
553
|
+
│
|
|
554
|
+
└─> Requesty executes model
|
|
555
|
+
│
|
|
556
|
+
└─> Model returns tool_calls
|
|
557
|
+
{
|
|
558
|
+
"choices": [{
|
|
559
|
+
"message": {
|
|
560
|
+
"tool_calls": [{
|
|
561
|
+
"id": "call_abc",
|
|
562
|
+
"function": {
|
|
563
|
+
"name": "Read",
|
|
564
|
+
"arguments": "{...}"
|
|
565
|
+
}
|
|
566
|
+
}]
|
|
567
|
+
}
|
|
568
|
+
}]
|
|
569
|
+
}
|
|
570
|
+
│
|
|
571
|
+
└─> Proxy converts to Anthropic format
|
|
572
|
+
{
|
|
573
|
+
"content": [{
|
|
574
|
+
"type": "tool_use",
|
|
575
|
+
"id": "call_abc",
|
|
576
|
+
"name": "Read",
|
|
577
|
+
"input": {...}
|
|
578
|
+
}]
|
|
579
|
+
}
|
|
580
|
+
│
|
|
581
|
+
└─> Claude Agent SDK executes tool
|
|
582
|
+
│
|
|
583
|
+
└─> Returns result to model
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
## File Organization
|
|
587
|
+
|
|
588
|
+
### New Files
|
|
589
|
+
|
|
590
|
+
```
|
|
591
|
+
src/
|
|
592
|
+
└── proxy/
|
|
593
|
+
└── anthropic-to-requesty.ts (~750 lines, cloned from OpenRouter)
|
|
594
|
+
|
|
595
|
+
docs/
|
|
596
|
+
└── plans/
|
|
597
|
+
└── requesty/
|
|
598
|
+
├── 00-overview.md
|
|
599
|
+
├── 01-api-research.md
|
|
600
|
+
├── 02-architecture.md (this file)
|
|
601
|
+
├── 03-implementation-phases.md
|
|
602
|
+
├── 04-testing-strategy.md
|
|
603
|
+
└── 05-migration-guide.md
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
### Modified Files
|
|
607
|
+
|
|
608
|
+
```
|
|
609
|
+
src/
|
|
610
|
+
├── cli-proxy.ts (+ ~80 lines)
|
|
611
|
+
│ ├── shouldUseRequesty()
|
|
612
|
+
│ ├── startRequestyProxy()
|
|
613
|
+
│ └── Updated help text
|
|
614
|
+
│
|
|
615
|
+
├── agents/
|
|
616
|
+
│ └── claudeAgent.ts (+ ~15 lines)
|
|
617
|
+
│ ├── getCurrentProvider()
|
|
618
|
+
│ └── getModelForProvider()
|
|
619
|
+
│
|
|
620
|
+
└── utils/
|
|
621
|
+
├── modelCapabilities.ts (+ ~50 lines)
|
|
622
|
+
│ └── Add Requesty model definitions
|
|
623
|
+
│
|
|
624
|
+
└── modelOptimizer.ts (+ ~100 lines)
|
|
625
|
+
└── Add Requesty models to database
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
### Total Code Impact
|
|
629
|
+
|
|
630
|
+
| Metric | Count |
|
|
631
|
+
|--------|-------|
|
|
632
|
+
| New files | 1 |
|
|
633
|
+
| Modified files | 4 |
|
|
634
|
+
| New lines of code | ~1,000 |
|
|
635
|
+
| Reused lines of code | ~750 (95% from OpenRouter) |
|
|
636
|
+
| Original code needed | ~250 |
|
|
637
|
+
|
|
638
|
+
## Configuration Management
|
|
639
|
+
|
|
640
|
+
### Environment Variables
|
|
641
|
+
|
|
642
|
+
```bash
|
|
643
|
+
# Required for Requesty
|
|
644
|
+
REQUESTY_API_KEY=requesty-xxxxxxxxxxxxx
|
|
645
|
+
|
|
646
|
+
# Optional overrides
|
|
647
|
+
REQUESTY_BASE_URL=https://router.requesty.ai/v1 # Custom base URL
|
|
648
|
+
REQUESTY_PROXY_URL=http://localhost:3000 # Proxy override
|
|
649
|
+
PROVIDER=requesty # Force Requesty
|
|
650
|
+
USE_REQUESTY=true # Alternative flag
|
|
651
|
+
COMPLETION_MODEL=openai/gpt-4o-mini # Default model
|
|
652
|
+
|
|
653
|
+
# Proxy configuration
|
|
654
|
+
PROXY_PORT=3000 # Proxy server port
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
### .env.example Update
|
|
658
|
+
|
|
659
|
+
```bash
|
|
660
|
+
# Add to .env.example
|
|
661
|
+
# ============================================
|
|
662
|
+
# Requesty Configuration
|
|
663
|
+
# ============================================
|
|
664
|
+
REQUESTY_API_KEY= # Get from https://app.requesty.ai
|
|
665
|
+
REQUESTY_BASE_URL=https://router.requesty.ai/v1 # Optional: Custom base URL
|
|
666
|
+
USE_REQUESTY=false # Set to 'true' to force Requesty
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
### Config File Support
|
|
670
|
+
|
|
671
|
+
Consider adding `~/.agentic-flow/requesty.json`:
|
|
672
|
+
|
|
673
|
+
```json
|
|
674
|
+
{
|
|
675
|
+
"apiKey": "requesty-xxxxx",
|
|
676
|
+
"baseUrl": "https://router.requesty.ai/v1",
|
|
677
|
+
"defaultModel": "openai/gpt-4o-mini",
|
|
678
|
+
"autoRouting": true,
|
|
679
|
+
"caching": {
|
|
680
|
+
"enabled": true,
|
|
681
|
+
"ttl": 3600
|
|
682
|
+
},
|
|
683
|
+
"fallback": {
|
|
684
|
+
"enabled": true,
|
|
685
|
+
"providers": ["openrouter", "anthropic"]
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
## Error Handling Strategy
|
|
691
|
+
|
|
692
|
+
### Error Mapping
|
|
693
|
+
|
|
694
|
+
```typescript
|
|
695
|
+
// Map Requesty errors to user-friendly messages
|
|
696
|
+
private mapRequestyError(error: any): string {
|
|
697
|
+
const errorMappings = {
|
|
698
|
+
'invalid_api_key': 'Invalid REQUESTY_API_KEY. Check your API key.',
|
|
699
|
+
'rate_limit_exceeded': 'Rate limit exceeded. Please wait and retry.',
|
|
700
|
+
'model_not_found': 'Model not available. Check model ID.',
|
|
701
|
+
'insufficient_quota': 'Insufficient Requesty credits.',
|
|
702
|
+
'model_overloaded': 'Model temporarily overloaded. Retrying...',
|
|
703
|
+
'timeout': 'Request timeout. Model took too long to respond.'
|
|
704
|
+
};
|
|
705
|
+
|
|
706
|
+
return errorMappings[error.code] || error.message;
|
|
707
|
+
}
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
### Retry Logic
|
|
711
|
+
|
|
712
|
+
```typescript
|
|
713
|
+
private async callRequestyWithRetry(
|
|
714
|
+
request: any,
|
|
715
|
+
maxRetries: number = 3
|
|
716
|
+
): Promise<any> {
|
|
717
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
718
|
+
try {
|
|
719
|
+
const response = await fetch(/* ... */);
|
|
720
|
+
if (response.ok) return await response.json();
|
|
721
|
+
|
|
722
|
+
// Check if error is retryable
|
|
723
|
+
if ([429, 503, 504].includes(response.status)) {
|
|
724
|
+
const delay = Math.pow(2, attempt) * 1000; // Exponential backoff
|
|
725
|
+
logger.warn(`Retrying after ${delay}ms (attempt ${attempt}/${maxRetries})`);
|
|
726
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
727
|
+
continue;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
// Non-retryable error
|
|
731
|
+
throw new Error(`Requesty API error: ${response.status}`);
|
|
732
|
+
} catch (error) {
|
|
733
|
+
if (attempt === maxRetries) throw error;
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
## Performance Considerations
|
|
740
|
+
|
|
741
|
+
### Latency Optimization
|
|
742
|
+
|
|
743
|
+
1. **Keep-Alive Connections**
|
|
744
|
+
```typescript
|
|
745
|
+
import https from 'https';
|
|
746
|
+
|
|
747
|
+
const agent = new https.Agent({
|
|
748
|
+
keepAlive: true,
|
|
749
|
+
maxSockets: 10
|
|
750
|
+
});
|
|
751
|
+
|
|
752
|
+
fetch(url, { agent });
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
2. **Request Pooling**
|
|
756
|
+
- Reuse HTTP connections
|
|
757
|
+
- Connection pooling for concurrent requests
|
|
758
|
+
|
|
759
|
+
3. **Streaming**
|
|
760
|
+
- Enable streaming by default for large responses
|
|
761
|
+
- Reduce time-to-first-token
|
|
762
|
+
|
|
763
|
+
### Caching Strategy
|
|
764
|
+
|
|
765
|
+
Requesty has built-in caching, but we can add client-side caching too:
|
|
766
|
+
|
|
767
|
+
```typescript
|
|
768
|
+
interface CacheEntry {
|
|
769
|
+
key: string;
|
|
770
|
+
value: any;
|
|
771
|
+
timestamp: number;
|
|
772
|
+
ttl: number;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
class ResponseCache {
|
|
776
|
+
private cache: Map<string, CacheEntry> = new Map();
|
|
777
|
+
|
|
778
|
+
set(key: string, value: any, ttl: number = 3600): void {
|
|
779
|
+
this.cache.set(key, {
|
|
780
|
+
key,
|
|
781
|
+
value,
|
|
782
|
+
timestamp: Date.now(),
|
|
783
|
+
ttl: ttl * 1000
|
|
784
|
+
});
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
get(key: string): any | null {
|
|
788
|
+
const entry = this.cache.get(key);
|
|
789
|
+
if (!entry) return null;
|
|
790
|
+
|
|
791
|
+
if (Date.now() - entry.timestamp > entry.ttl) {
|
|
792
|
+
this.cache.delete(key);
|
|
793
|
+
return null;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
return entry.value;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
generateKey(request: any): string {
|
|
800
|
+
return crypto.createHash('sha256')
|
|
801
|
+
.update(JSON.stringify(request))
|
|
802
|
+
.digest('hex');
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
## Security Architecture
|
|
808
|
+
|
|
809
|
+
### API Key Security
|
|
810
|
+
|
|
811
|
+
1. **Never log API keys**
|
|
812
|
+
```typescript
|
|
813
|
+
logger.info('Request to Requesty', {
|
|
814
|
+
apiKeyPresent: !!this.requestyApiKey,
|
|
815
|
+
apiKeyPrefix: this.requestyApiKey?.substring(0, 10) // Only log prefix
|
|
816
|
+
});
|
|
817
|
+
```
|
|
818
|
+
|
|
819
|
+
2. **Environment variable validation**
|
|
820
|
+
```typescript
|
|
821
|
+
if (!requestyKey || !requestyKey.startsWith('requesty-')) {
|
|
822
|
+
throw new Error('Invalid REQUESTY_API_KEY format');
|
|
823
|
+
}
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
3. **Rate limit API key exposure**
|
|
827
|
+
- Don't include API key in error messages
|
|
828
|
+
- Don't send API key to client in proxy responses
|
|
829
|
+
|
|
830
|
+
### Request Validation
|
|
831
|
+
|
|
832
|
+
```typescript
|
|
833
|
+
private validateRequest(req: AnthropicRequest): void {
|
|
834
|
+
if (!req.messages || req.messages.length === 0) {
|
|
835
|
+
throw new Error('Messages array cannot be empty');
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
if (req.max_tokens && req.max_tokens > 100000) {
|
|
839
|
+
logger.warn('Unusually high max_tokens requested', {
|
|
840
|
+
requested: req.max_tokens
|
|
841
|
+
});
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
// Prevent injection attacks in system prompts
|
|
845
|
+
if (req.system && typeof req.system === 'string') {
|
|
846
|
+
this.sanitizeSystemPrompt(req.system);
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
## Monitoring and Observability
|
|
852
|
+
|
|
853
|
+
### Logging Strategy
|
|
854
|
+
|
|
855
|
+
```typescript
|
|
856
|
+
// Request logging
|
|
857
|
+
logger.info('Requesty request', {
|
|
858
|
+
model: request.model,
|
|
859
|
+
messageCount: request.messages.length,
|
|
860
|
+
toolCount: request.tools?.length || 0,
|
|
861
|
+
streaming: request.stream,
|
|
862
|
+
maxTokens: request.max_tokens
|
|
863
|
+
});
|
|
864
|
+
|
|
865
|
+
// Response logging
|
|
866
|
+
logger.info('Requesty response', {
|
|
867
|
+
id: response.id,
|
|
868
|
+
model: response.model,
|
|
869
|
+
finishReason: response.choices[0].finish_reason,
|
|
870
|
+
tokensUsed: response.usage.total_tokens,
|
|
871
|
+
latencyMs: Date.now() - startTime
|
|
872
|
+
});
|
|
873
|
+
|
|
874
|
+
// Error logging
|
|
875
|
+
logger.error('Requesty error', {
|
|
876
|
+
errorType: error.type,
|
|
877
|
+
errorCode: error.code,
|
|
878
|
+
message: error.message,
|
|
879
|
+
model: request.model,
|
|
880
|
+
retryAttempt: attempt
|
|
881
|
+
});
|
|
882
|
+
```
|
|
883
|
+
|
|
884
|
+
### Metrics Collection
|
|
885
|
+
|
|
886
|
+
```typescript
|
|
887
|
+
interface RequestMetrics {
|
|
888
|
+
requestId: string;
|
|
889
|
+
model: string;
|
|
890
|
+
startTime: number;
|
|
891
|
+
endTime: number;
|
|
892
|
+
latencyMs: number;
|
|
893
|
+
tokensIn: number;
|
|
894
|
+
tokensOut: number;
|
|
895
|
+
tokensTotal: number;
|
|
896
|
+
cost: number;
|
|
897
|
+
success: boolean;
|
|
898
|
+
errorType?: string;
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
class MetricsCollector {
|
|
902
|
+
private metrics: RequestMetrics[] = [];
|
|
903
|
+
|
|
904
|
+
recordRequest(metrics: RequestMetrics): void {
|
|
905
|
+
this.metrics.push(metrics);
|
|
906
|
+
|
|
907
|
+
// Optional: Send to analytics service
|
|
908
|
+
if (process.env.ANALYTICS_ENABLED === 'true') {
|
|
909
|
+
this.sendToAnalytics(metrics);
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
getStats(period: '1h' | '24h' | '7d'): any {
|
|
914
|
+
// Calculate aggregate stats
|
|
915
|
+
const relevantMetrics = this.filterByPeriod(period);
|
|
916
|
+
return {
|
|
917
|
+
totalRequests: relevantMetrics.length,
|
|
918
|
+
avgLatency: this.average(relevantMetrics.map(m => m.latencyMs)),
|
|
919
|
+
totalTokens: this.sum(relevantMetrics.map(m => m.tokensTotal)),
|
|
920
|
+
totalCost: this.sum(relevantMetrics.map(m => m.cost)),
|
|
921
|
+
successRate: this.successRate(relevantMetrics)
|
|
922
|
+
};
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
```
|
|
926
|
+
|
|
927
|
+
## Deployment Considerations
|
|
928
|
+
|
|
929
|
+
### Standalone Proxy Mode
|
|
930
|
+
|
|
931
|
+
Support running Requesty proxy as standalone server:
|
|
932
|
+
|
|
933
|
+
```bash
|
|
934
|
+
# Terminal 1 - Run proxy
|
|
935
|
+
npx agentic-flow proxy --provider requesty --port 3000 --model "openai/gpt-4o-mini"
|
|
936
|
+
|
|
937
|
+
# Terminal 2 - Use with Claude Code
|
|
938
|
+
export ANTHROPIC_BASE_URL=http://localhost:3000
|
|
939
|
+
export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key
|
|
940
|
+
export REQUESTY_API_KEY=requesty-xxxxx
|
|
941
|
+
claude
|
|
942
|
+
```
|
|
943
|
+
|
|
944
|
+
### Docker Support
|
|
945
|
+
|
|
946
|
+
```dockerfile
|
|
947
|
+
# Add to existing Dockerfile
|
|
948
|
+
ENV REQUESTY_API_KEY=""
|
|
949
|
+
ENV REQUESTY_BASE_URL="https://router.requesty.ai/v1"
|
|
950
|
+
ENV USE_REQUESTY="false"
|
|
951
|
+
```
|
|
952
|
+
|
|
953
|
+
### Health Checks
|
|
954
|
+
|
|
955
|
+
```typescript
|
|
956
|
+
// Enhanced health check endpoint
|
|
957
|
+
this.app.get('/health', async (req, res) => {
|
|
958
|
+
const health = {
|
|
959
|
+
status: 'ok',
|
|
960
|
+
service: 'anthropic-to-requesty-proxy',
|
|
961
|
+
version: packageJson.version,
|
|
962
|
+
uptime: process.uptime(),
|
|
963
|
+
requesty: {
|
|
964
|
+
baseUrl: this.requestyBaseUrl,
|
|
965
|
+
apiKeyConfigured: !!this.requestyApiKey,
|
|
966
|
+
defaultModel: this.defaultModel
|
|
967
|
+
}
|
|
968
|
+
};
|
|
969
|
+
|
|
970
|
+
// Optional: Ping Requesty API
|
|
971
|
+
try {
|
|
972
|
+
const response = await fetch(`${this.requestyBaseUrl}/models`, {
|
|
973
|
+
headers: { Authorization: `Bearer ${this.requestyApiKey}` }
|
|
974
|
+
});
|
|
975
|
+
health.requesty.apiReachable = response.ok;
|
|
976
|
+
} catch (error) {
|
|
977
|
+
health.requesty.apiReachable = false;
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
res.json(health);
|
|
981
|
+
});
|
|
982
|
+
```
|
|
983
|
+
|
|
984
|
+
## Future Enhancements
|
|
985
|
+
|
|
986
|
+
### Phase 2 Features
|
|
987
|
+
|
|
988
|
+
1. **Auto-Routing Integration**
|
|
989
|
+
- Support Requesty's auto-routing feature
|
|
990
|
+
- Let Requesty choose optimal model based on request
|
|
991
|
+
|
|
992
|
+
2. **Caching Control**
|
|
993
|
+
- Expose cache control headers
|
|
994
|
+
- Per-request cache configuration
|
|
995
|
+
|
|
996
|
+
3. **Analytics Dashboard**
|
|
997
|
+
- Local web UI showing Requesty usage stats
|
|
998
|
+
- Cost tracking and optimization recommendations
|
|
999
|
+
|
|
1000
|
+
4. **Fallback Chain**
|
|
1001
|
+
- Automatic fallback to OpenRouter if Requesty fails
|
|
1002
|
+
- Configurable provider priority
|
|
1003
|
+
|
|
1004
|
+
### Phase 3 Features
|
|
1005
|
+
|
|
1006
|
+
1. **Model Benchmarking**
|
|
1007
|
+
- Compare same task across Requesty vs OpenRouter vs Anthropic
|
|
1008
|
+
- Quality/cost/speed metrics
|
|
1009
|
+
|
|
1010
|
+
2. **Smart Provider Selection**
|
|
1011
|
+
- Automatically choose Requesty vs OpenRouter based on:
|
|
1012
|
+
- Current rate limits
|
|
1013
|
+
- Model availability
|
|
1014
|
+
- Cost optimization
|
|
1015
|
+
- Latency requirements
|
|
1016
|
+
|
|
1017
|
+
3. **Webhook Support**
|
|
1018
|
+
- Async request processing
|
|
1019
|
+
- Long-running task support
|
|
1020
|
+
|
|
1021
|
+
## Architecture Decision Records
|
|
1022
|
+
|
|
1023
|
+
### ADR-001: Copy OpenRouter Proxy Pattern
|
|
1024
|
+
|
|
1025
|
+
**Decision:** Clone OpenRouter proxy implementation for Requesty
|
|
1026
|
+
|
|
1027
|
+
**Rationale:**
|
|
1028
|
+
- 95% code reuse
|
|
1029
|
+
- Proven pattern already tested
|
|
1030
|
+
- Minimal development time
|
|
1031
|
+
- Consistent user experience
|
|
1032
|
+
|
|
1033
|
+
**Alternatives Considered:**
|
|
1034
|
+
- Generic proxy factory (over-engineered for 2 providers)
|
|
1035
|
+
- Shared base class (adds complexity)
|
|
1036
|
+
|
|
1037
|
+
### ADR-002: Same Port for All Proxies
|
|
1038
|
+
|
|
1039
|
+
**Decision:** Use port 3000 for all proxies (only one active at a time)
|
|
1040
|
+
|
|
1041
|
+
**Rationale:**
|
|
1042
|
+
- Simplifies configuration
|
|
1043
|
+
- Prevents port conflicts
|
|
1044
|
+
- Clear user experience
|
|
1045
|
+
|
|
1046
|
+
**Alternatives Considered:**
|
|
1047
|
+
- Different ports per provider (confusing)
|
|
1048
|
+
- Dynamic port allocation (complex)
|
|
1049
|
+
|
|
1050
|
+
### ADR-003: OpenAI Format as Intermediate
|
|
1051
|
+
|
|
1052
|
+
**Decision:** Use OpenAI format for all proxy conversions
|
|
1053
|
+
|
|
1054
|
+
**Rationale:**
|
|
1055
|
+
- Industry standard
|
|
1056
|
+
- Most providers support it
|
|
1057
|
+
- Rich tool calling support
|
|
1058
|
+
|
|
1059
|
+
**Alternatives Considered:**
|
|
1060
|
+
- Direct Anthropic-to-Requesty (loses generalization)
|
|
1061
|
+
- Custom intermediate format (reinventing wheel)
|
|
1062
|
+
|
|
1063
|
+
## Summary
|
|
1064
|
+
|
|
1065
|
+
The Requesty integration follows a **proven, low-risk architecture**:
|
|
1066
|
+
|
|
1067
|
+
1. **Clone OpenRouter proxy** (~750 lines, 95% reusable)
|
|
1068
|
+
2. **Update 4 existing files** (~250 new lines total)
|
|
1069
|
+
3. **Add model definitions** (~100 lines for optimizer)
|
|
1070
|
+
4. **Minimal testing overhead** (reuse OpenRouter test suite)
|
|
1071
|
+
|
|
1072
|
+
**Total Implementation Time:** ~4 hours for core functionality
|
|
1073
|
+
|
|
1074
|
+
**Risk Level:** LOW (following established pattern)
|
|
1075
|
+
|
|
1076
|
+
**Maintenance Burden:** MINIMAL (almost identical to OpenRouter)
|