agentic-flow 2.0.12 → 2.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/agents/directApiAgent.d.ts.map +1 -1
  3. package/dist/agents/directApiAgent.js +37 -19
  4. package/dist/agents/directApiAgent.js.map +1 -1
  5. package/dist/cli/commands/hooks.d.ts.map +1 -1
  6. package/dist/cli/commands/hooks.js +4 -1
  7. package/dist/cli/commands/hooks.js.map +1 -1
  8. package/dist/cli/mcp-manager.js +13 -6
  9. package/dist/cli/mcp-manager.js.map +1 -1
  10. package/dist/intelligence/EmbeddingService.js +3 -3
  11. package/dist/intelligence/EmbeddingService.js.map +1 -1
  12. package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
  13. package/dist/intelligence/agent-booster-enhanced.js +5 -3
  14. package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
  15. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  16. package/dist/mcp/claudeFlowSdkServer.js +76 -29
  17. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  18. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +27 -22
  19. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -1
  20. package/dist/mcp/fastmcp/servers/http-sse.js +31 -20
  21. package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -1
  22. package/dist/mcp/fastmcp/servers/http-streaming-updated.js +33 -32
  23. package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -1
  24. package/dist/mcp/fastmcp/servers/poc-stdio.js +10 -11
  25. package/dist/mcp/fastmcp/servers/poc-stdio.js.map +1 -1
  26. package/dist/mcp/fastmcp/servers/stdio-full.js +33 -32
  27. package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -1
  28. package/dist/mcp/fastmcp/tools/agent/execute.d.ts.map +1 -1
  29. package/dist/mcp/fastmcp/tools/agent/execute.js +8 -5
  30. package/dist/mcp/fastmcp/tools/agent/execute.js.map +1 -1
  31. package/dist/mcp/fastmcp/tools/agent/list.d.ts.map +1 -1
  32. package/dist/mcp/fastmcp/tools/agent/list.js +4 -2
  33. package/dist/mcp/fastmcp/tools/agent/list.js.map +1 -1
  34. package/dist/mcp/fastmcp/tools/agent/parallel.d.ts.map +1 -1
  35. package/dist/mcp/fastmcp/tools/agent/parallel.js +4 -2
  36. package/dist/mcp/fastmcp/tools/agent/parallel.js.map +1 -1
  37. package/dist/mcp/fastmcp/tools/hooks/pretrain.d.ts.map +1 -1
  38. package/dist/mcp/fastmcp/tools/hooks/pretrain.js +11 -3
  39. package/dist/mcp/fastmcp/tools/hooks/pretrain.js.map +1 -1
  40. package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts.map +1 -1
  41. package/dist/mcp/fastmcp/tools/swarm/orchestrate.js +9 -5
  42. package/dist/mcp/fastmcp/tools/swarm/orchestrate.js.map +1 -1
  43. package/dist/mcp/standalone-stdio.js +72 -57
  44. package/dist/mcp/standalone-stdio.js.map +1 -1
  45. package/dist/reasoningbank/utils/embeddings.d.ts +0 -6
  46. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
  47. package/dist/reasoningbank/utils/embeddings.js +9 -43
  48. package/dist/reasoningbank/utils/embeddings.js.map +1 -1
  49. package/dist/sdk/plugins.d.ts +6 -6
  50. package/dist/sdk/plugins.d.ts.map +1 -1
  51. package/dist/sdk/plugins.js +37 -0
  52. package/dist/sdk/plugins.js.map +1 -1
  53. package/dist/transport/index.d.ts +1 -0
  54. package/dist/transport/index.d.ts.map +1 -1
  55. package/dist/transport/index.js +1 -0
  56. package/dist/transport/index.js.map +1 -1
  57. package/dist/transport/quic-loader.d.ts +217 -0
  58. package/dist/transport/quic-loader.d.ts.map +1 -0
  59. package/dist/transport/quic-loader.js +412 -0
  60. package/dist/transport/quic-loader.js.map +1 -0
  61. package/dist/utils/agentBoosterPreprocessor.js +16 -22
  62. package/dist/utils/agentBoosterPreprocessor.js.map +1 -1
  63. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-stdio.js","sourceRoot":"","sources":["../../src/mcp/standalone-stdio.ts"],"names":[],"mappings":";AACA,6FAA6F;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,wDAAwD;AACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,gDAAgD;IAChD,IAAI,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;QAC5D,uCAAuC;QACvC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IACD,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAChE,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAEvD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC;IACzB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,wJAAwJ;IACrK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8GAA8G,CAAC;QAC1I,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAEtE,yBAAyB;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4JAA4J,CAAC;QACnM,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wPAAwP,CAAC;QAE7U,oBAAoB;QACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QACpI,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;QAEtI,iBAAiB;QACjB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC7G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6HAA6H,CAAC;QACxL,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QAE3H,0BAA0B;QAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6FAA6F,CAAC;QAExI,iBAAiB;QACjB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wGAAwG,CAAC;QAChL,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAE/F,oBAAoB;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;QACrH,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;KACtI,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EACd,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,OAAO,EACP,OAAO,EACP,YAAY,EACb,EAAE,EAAE;QACH,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAI,GAAG,GAAG,mCAAmC,KAAK,aAAa,IAAI,GAAG,CAAC;YAEvE,mBAAmB;YACnB,IAAI,KAAK;gBAAE,GAAG,IAAI,aAAa,KAAK,GAAG,CAAC;YACxC,IAAI,QAAQ;gBAAE,GAAG,IAAI,eAAe,QAAQ,EAAE,CAAC;YAE/C,6BAA6B;YAC7B,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,eAAe;gBAAE,GAAG,CAAC,iBAAiB,GAAG,eAAe,CAAC;YAC7D,IAAI,gBAAgB;gBAAE,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;YAEhE,iBAAiB;YACjB,IAAI,MAAM;gBAAE,GAAG,IAAI,WAAW,CAAC;YAC/B,IAAI,WAAW,KAAK,SAAS;gBAAE,GAAG,IAAI,kBAAkB,WAAW,EAAE,CAAC;YACtE,IAAI,SAAS;gBAAE,GAAG,IAAI,iBAAiB,SAAS,EAAE,CAAC;YAEnD,cAAc;YACd,IAAI,SAAS;gBAAE,GAAG,IAAI,kBAAkB,SAAS,GAAG,CAAC;YAErD,SAAS;YACT,IAAI,YAAY;gBAAE,GAAG,IAAI,aAAa,YAAY,EAAE,CAAC;YACrD,IAAI,OAAO;gBAAE,GAAG,IAAI,YAAY,CAAC;YAEjC,YAAY;YACZ,IAAI,YAAY;gBAAE,GAAG,IAAI,UAAU,CAAC;YAEpC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,OAAO,IAAI,MAAM;gBAC1B,GAAG;aACJ,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,QAAQ,EAAE,QAAQ,IAAI,WAAW;gBACjC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,wCAAwC;IACrD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,GAAG,GAAG,+BAA+B,CAAC;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,2JAA2J;IACxK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QAChG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QAC5E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAClG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QACrH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;KACrI,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,IAAI,GAAG,GAAG,+CAA+C,IAAI,oBAAoB,WAAW,eAAe,YAAY,GAAG,CAAC;YAC3H,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ;gBAAE,GAAG,IAAI,gBAAgB,QAAQ,GAAG,CAAC;YAC1E,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAEtE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,kCAAkC;aAChD,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,QAAQ,EAAE,QAAQ,IAAI,QAAQ;gBAC9B,OAAO,EAAE,4BAA4B;gBACrC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,6IAA6I;IAC1J,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QAC3K,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qFAAqF,CAAC;KAC5K,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,qCAAqC,MAAM,IAAI,SAAS,EAAE,CAAC;YACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,YAAY,IAAI,YAAY,KAAK,KAAK;oBACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC;oBACtD,CAAC,CAAC,MAAM,CAAC;gBAEX,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,QAAQ,CAAC,MAAM;oBACtB,YAAY,EAAE,YAAY,IAAI,KAAK;oBACnC,MAAM,EAAE,QAAQ;iBACjB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,YAAY,IAAI,KAAK;gBACnC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,yHAAyH;IACtI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACjE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,sCAAsC,IAAI,GAAG,CAAC;YAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,sIAAsI;IACnJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,wCAAwC,CAAC;YACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,iCAAiC;AACjC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,gKAAgK;IAC7K,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gIAAgI,CAAC;QAC/O,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;KAC9G,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,IAAI,GAAG,GAAG,mCAAmC,KAAK,aAAa,IAAI,cAAc,CAAC;YAElF,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACxC,GAAG,IAAI,eAAe,QAAQ,EAAE,CAAC;YACnC,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,GAAG,IAAI,eAAe,QAAQ,EAAE,CAAC;YACnC,CAAC;YAED,2DAA2D;YAC3D,GAAG,IAAI,SAAS,CAAC,CAAC,kDAAkD;YAEpE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,QAAQ,EAAE,QAAQ,IAAI,UAAU;gBAChC,QAAQ;gBACR,cAAc,EAAE,yEAAyE;gBACzF,IAAI,EAAE,8FAA8F;aACrG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,2CAA2C;AAC3C,iDAAiD;AACjD,2CAA2C;AAE3C,2CAA2C;AAC3C,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,mMAAmM;IAChN,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QACjG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC;QACrH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;KACrH,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,oBAAoB;YACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,mBAAmB,eAAe,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAE/D,kCAAkC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,MAAM,OAAO,GAA8B;oBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;oBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;oBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;iBAC/C,CAAC;gBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC1C,CAAC;YAED,8FAA8F;YAC9F,MAAM,GAAG,GAAG,kDAAkD,QAAQ,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC9D,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK,CAAE,sDAAsD;aACvE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAElC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC/C,6CAA6C;gBAC7C,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEjD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,eAAe;oBACzB,WAAW,EAAE,YAAY;oBACzB,UAAU,EAAE,MAAM,CAAC,OAAO;oBAC1B,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;oBACtD,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,OAAO,EAAE,yBAAyB,eAAe,KAAK,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAC/H,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAE/D,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,sBAAsB;oBAC9B,QAAQ,EAAE,eAAe;oBACzB,UAAU,EAAE,iBAAiB,GAAG,GAAG;oBACnC,iBAAiB,EAAE,IAAI;oBACvB,OAAO,EAAE,wCAAwC,iBAAiB,2CAA2C;oBAC7G,UAAU,EAAE,yDAAyD,eAAe,KAAK,YAAY,oBAAoB,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,oBAAoB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM;oBAC5M,YAAY,EAAE;wBACZ,IAAI,EAAE,oBAAoB;wBAC1B,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE,sBAAsB,eAAe,sBAAsB,YAAY,uBAAuB,YAAY,qBAAqB,SAAS,EAAE;wBAChJ,MAAM,EAAE,0CAA0C,iBAAiB,gHAAgH;qBACpL;iBACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,oHAAoH;IACjI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SACjE,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACvC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBAEP,kBAAkB;gBAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,OAAO,GAA8B;wBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;wBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;wBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;qBAC/C,CAAC;oBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAC1C,CAAC;gBAED,aAAa;gBACb,MAAM,GAAG,GAAG,kDAAkD,QAAQ,EAAE,CAAC;gBACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;oBAC3B,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC;gBAE/B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,MAAM,CAAC,OAAO;wBAC1B,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;qBACvD,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;wBACtD,MAAM,EAAE,gBAAgB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAEzD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,UAAU;gBACV,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU;gBACjC,gBAAgB,EAAE,YAAY;gBAC9B,cAAc,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxD,OAAO;gBACP,gBAAgB,EAAE,kBAAkB,YAAY,2BAA2B,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;aAChK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,0JAA0J;IACvK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;KAC/G,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,6BAA6B;YAC7B,MAAM,KAAK,GAAG,0EAA0E,CAAC;YACzF,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC;YAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC;oBACT,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE;oBAChC,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE;oBAChC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;oBAC3B,QAAQ,EAAE,QAAQ,IAAI,SAAS;iBAChC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;YACvI,CAAC;YAED,mCAAmC;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBAEP,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,OAAO,GAA8B;wBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;wBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;wBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;qBAC/C,CAAC;oBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAC1C,CAAC;gBAED,MAAM,GAAG,GAAG,kDAAkD,QAAQ,EAAE,CAAC;gBACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;oBAC3B,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC;gBAE/B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,WAAW,EAAE,IAAI,CAAC,YAAY;wBAC9B,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,MAAM,CAAC,OAAO;qBAC3B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAEzD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,UAAU;gBACV,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU;gBACjC,gBAAgB,EAAE,YAAY;gBAC9B,OAAO;aACR,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,2CAA2C;AAC3C,yCAAyC;AACzC,2CAA2C;AAE3C,gCAAgC;AAChC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,oHAAoH;IACjI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,sBAAsB,CAAC;YACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,gCAAgC;AAChC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uIAAuI;IACpJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC7F,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KACxE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;QACtG,IAAI,CAAC;YACH,MAAM,IAAI,GAAG;gBACX,SAAS;gBACT,IAAI,IAAI,GAAG;gBACX,MAAM,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,QAAQ,EAAE;aACnB,CAAC;YAEF,IAAI,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACzC,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;YACnC,IAAI,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;YACrC,IAAI,SAAS,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7D,IAAI,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE/D,MAAM,GAAG,GAAG,+BAA+B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,SAAS;gBACT,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,MAAM;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,8CAA8C;gBACvD,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,oJAAoJ;IACjK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC5E,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC1F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC7F,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACnF,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KAC9F,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEhD,IAAI,SAAS,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7D,IAAI,YAAY;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBACxC,IAAI,aAAa;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEnD,MAAM,GAAG,GAAG,kCAAkC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,CAAC,EAAE,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE;oBACP,SAAS;oBACT,aAAa,EAAE,aAAa,IAAI,KAAK;oBACrC,YAAY,EAAE,YAAY,IAAI,KAAK;iBACpC;gBACD,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,sCAAsC;aACnE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,+HAA+H;IAC5I,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACxD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAClG,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,2CAA2C,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,gBAAgB,EAAE,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,OAAO,EAAE,mDAAmD;aAC7D,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,0BAA0B;AAC1B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,mHAAmH;IAChI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KAChH,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,2EAA2E;oBACpF,OAAO,EAAE,6FAA6F;iBACvG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,oFAAoF;YACpF,wEAAwE;YACxE,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,kCAAkC;gBAC3C,IAAI,EAAE,wGAAwG;gBAC9G,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE;oBACT,+CAA+C;oBAC/C,sDAAsD;oBACtD,2DAA2D;iBAC5D;aACF,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;AACvF,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC5E,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACjE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACtE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACvE,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAClE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;AACxE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC3E,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC3E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACjE,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAC9E,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAC9E,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACvE,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACrE,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAEhD,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACjD,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n// Standalone agentic-flow MCP server - runs directly via stdio without spawning subprocesses\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execSync } from 'child_process';\nimport { resolve } from 'path';\n\n// Suppress FastMCP internal warnings for cleaner output\nconst originalConsoleWarn = console.warn;\nconsole.warn = (...args: any[]) => {\n const message = args.join(' ');\n // Filter out FastMCP client capability warnings\n if (message.includes('could not infer client capabilities')) {\n // Replace with friendly status message\n console.error('⏳ Waiting for MCP client connection...');\n return;\n }\n originalConsoleWarn.apply(console, args);\n};\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (stdio)...');\nconsole.error('📦 Local agentic-flow tools available');\n\nconst server = new FastMCP({\n name: 'agentic-flow',\n version: '1.0.8'\n});\n\n// Tool: Run agentic-flow agent\nserver.addTool({\n name: 'agentic_flow_agent',\n description: 'Execute an agentic-flow agent with a specific task. Supports multiple providers (Anthropic, OpenRouter, ONNX) and comprehensive configuration options.',\n parameters: z.object({\n agent: z.string().describe('Agent type (coder, researcher, analyst, etc.) - Use agentic_flow_list_agents to see all 66+ available agents'),\n task: z.string().describe('Task description for the agent to execute'),\n\n // Provider Configuration\n model: z.string().optional().describe('Model to use (e.g., \"claude-sonnet-4-5-20250929\" for Anthropic, \"meta-llama/llama-3.1-8b-instruct\" for OpenRouter, or \"Xenova/gpt2\" for ONNX local models)'),\n provider: z.enum(['anthropic', 'openrouter', 'onnx', 'gemini']).optional().describe('LLM provider: \"anthropic\" (default, highest quality, requires ANTHROPIC_API_KEY), \"gemini\" (free tier, requires GOOGLE_GEMINI_API_KEY), \"openrouter\" (99% cost savings, requires OPENROUTER_API_KEY), \"onnx\" (free local inference, no API key needed)'),\n\n // API Configuration\n anthropicApiKey: z.string().optional().describe('Anthropic API key (sk-ant-...) - overrides ANTHROPIC_API_KEY environment variable'),\n openrouterApiKey: z.string().optional().describe('OpenRouter API key (sk-or-...) - overrides OPENROUTER_API_KEY environment variable'),\n\n // Agent Behavior\n stream: z.boolean().optional().default(false).describe('Enable streaming output (real-time response chunks)'),\n temperature: z.number().min(0).max(1).optional().describe('Sampling temperature (0.0-1.0): lower = more focused/deterministic, higher = more creative/random. Default varies by agent.'),\n maxTokens: z.number().positive().optional().describe('Maximum tokens in response (default: 4096). Controls output length.'),\n\n // Directory Configuration\n agentsDir: z.string().optional().describe('Custom agents directory path (default: .claude/agents) - for using custom agent definitions'),\n\n // Output Options\n outputFormat: z.enum(['text', 'json', 'markdown']).optional().describe('Output format: \"text\" (default, human-readable), \"json\" (structured data), \"markdown\" (formatted docs)'),\n verbose: z.boolean().optional().default(false).describe('Enable verbose logging for debugging'),\n\n // Execution Control\n timeout: z.number().positive().optional().describe('Execution timeout in milliseconds (default: 300000 = 5 minutes)'),\n retryOnError: z.boolean().optional().default(false).describe('Automatically retry on transient errors (rate limits, network issues)')\n }),\n execute: async ({\n agent,\n task,\n model,\n provider,\n anthropicApiKey,\n openrouterApiKey,\n stream,\n temperature,\n maxTokens,\n agentsDir,\n outputFormat,\n verbose,\n timeout,\n retryOnError\n }) => {\n try {\n // Build command with all parameters\n let cmd = `npx --yes agentic-flow --agent \"${agent}\" --task \"${task}\"`;\n\n // Provider & Model\n if (model) cmd += ` --model \"${model}\"`;\n if (provider) cmd += ` --provider ${provider}`;\n\n // API Keys (set as env vars)\n const env = { ...process.env };\n if (anthropicApiKey) env.ANTHROPIC_API_KEY = anthropicApiKey;\n if (openrouterApiKey) env.OPENROUTER_API_KEY = openrouterApiKey;\n\n // Agent Behavior\n if (stream) cmd += ' --stream';\n if (temperature !== undefined) cmd += ` --temperature ${temperature}`;\n if (maxTokens) cmd += ` --max-tokens ${maxTokens}`;\n\n // Directories\n if (agentsDir) cmd += ` --agents-dir \"${agentsDir}\"`;\n\n // Output\n if (outputFormat) cmd += ` --output ${outputFormat}`;\n if (verbose) cmd += ' --verbose';\n\n // Execution\n if (retryOnError) cmd += ' --retry';\n\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: timeout || 300000,\n env\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n model: model || 'default',\n provider: provider || 'anthropic',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List available agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents',\n parameters: z.object({}),\n execute: async () => {\n try {\n // Use npx to run agentic-flow from npm registry\n const cmd = `npx --yes agentic-flow --list`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agents: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent in .claude/agents directory. Supports conflict detection and will warn if agent already exists in package or local directories.',\n parameters: z.object({\n name: z.string().describe('Agent name (will be converted to kebab-case, e.g., my-custom-agent)'),\n description: z.string().describe('Agent description (what this agent does)'),\n systemPrompt: z.string().describe('System prompt that defines the agent behavior and personality'),\n category: z.string().optional().default('custom').describe('Category/folder to organize the agent (default: custom)'),\n tools: z.array(z.string()).optional().describe('Optional list of tools this agent can use (e.g., [\"web-search\", \"code-execution\"])')\n }),\n execute: async ({ name, description, systemPrompt, category, tools }) => {\n try {\n let cmd = `npx --yes agentic-flow agent create --name \"${name}\" --description \"${description}\" --prompt \"${systemPrompt}\"`;\n if (category && category !== 'custom') cmd += ` --category \"${category}\"`;\n if (tools && tools.length > 0) cmd += ` --tools \"${tools.join(',')}\"`;\n\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000,\n input: 'y\\n' // Auto-confirm if conflict exists\n });\n\n return JSON.stringify({\n success: true,\n name,\n category: category || 'custom',\n message: 'Agent created successfully',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to create agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List agents with source information\nserver.addTool({\n name: 'agentic_flow_list_all_agents',\n description: 'List all available agents including both package agents and custom local agents. Shows source (package or local) and handles deduplication.',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary').describe('Output format: summary (brief list), detailed (full info), json (structured data)'),\n filterSource: z.enum(['all', 'package', 'local']).optional().default('all').describe('Filter by source: all, package (npm distribution), or local (custom .claude/agents)')\n }),\n execute: async ({ format, filterSource }) => {\n try {\n const cmd = `npx --yes agentic-flow agent list ${format || 'summary'}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n if (format === 'json') {\n const agents = JSON.parse(result);\n const filtered = filterSource && filterSource !== 'all'\n ? agents.filter((a: any) => a.source === filterSource)\n : agents;\n\n return JSON.stringify({\n success: true,\n count: filtered.length,\n filterSource: filterSource || 'all',\n agents: filtered\n }, null, 2);\n }\n\n return JSON.stringify({\n success: true,\n filterSource: filterSource || 'all',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Get agent information\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including its source, description, category, and system prompt preview.',\n parameters: z.object({\n name: z.string().describe('Agent name to get information about')\n }),\n execute: async ({ name }) => {\n try {\n const cmd = `npx --yes agentic-flow agent info \"${name}\"`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agent: name,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get agent info: ${error.message}`);\n }\n }\n});\n\n// Tool: Check for agent conflicts\nserver.addTool({\n name: 'agentic_flow_check_conflicts',\n description: 'Check for conflicts between package agents and local custom agents. Identifies agents with the same relative path in both locations.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const cmd = `npx --yes agentic-flow agent conflicts`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to check conflicts: ${error.message}`);\n }\n }\n});\n\n// Tool: Optimize model selection\nserver.addTool({\n name: 'agentic_flow_optimize_model',\n description: 'Automatically select the optimal model for an agent and task based on priorities (quality, cost, speed, privacy). Returns model recommendation with reasoning.',\n parameters: z.object({\n agent: z.string().describe('Agent type (e.g., coder, researcher, reviewer)'),\n task: z.string().describe('Task description'),\n priority: z.enum(['quality', 'balanced', 'cost', 'speed', 'privacy']).optional().default('balanced').describe('Optimization priority: quality (best results), balanced (cost/quality), cost (cheapest), speed (fastest), privacy (local only)'),\n max_cost: z.number().positive().optional().describe('Maximum cost per task in dollars (optional budget cap)')\n }),\n execute: async ({ agent, task, priority, max_cost }) => {\n try {\n let cmd = `npx --yes agentic-flow --agent \"${agent}\" --task \"${task}\" --optimize`;\n\n if (priority && priority !== 'balanced') {\n cmd += ` --priority ${priority}`;\n }\n\n if (max_cost) {\n cmd += ` --max-cost ${max_cost}`;\n }\n\n // Add dry-run to just get recommendation without execution\n cmd += ' --help'; // This will show the optimization without running\n\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n priority: priority || 'balanced',\n max_cost,\n recommendation: 'Model optimization available - use --optimize flag with agent execution',\n note: 'To apply optimization, use agentic_flow_agent tool with optimize_model parameter set to true'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to optimize model: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// Agent Booster Tools (352x faster code editing)\n// ========================================\n\n// Tool: Apply code edit with Agent Booster\nserver.addTool({\n name: 'agent_booster_edit_file',\n description: 'Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster\\'s local WASM engine. Use \"// ... existing code ...\" markers for unchanged sections.',\n parameters: z.object({\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('First-person instruction (e.g., \"I will add error handling\")'),\n code_edit: z.string().describe('Precise code lines to edit, using \"// ... existing code ...\" for unchanged sections'),\n language: z.string().optional().describe('Programming language (auto-detected from file extension if not provided)')\n }),\n execute: async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Read current file\n if (!fs.existsSync(target_filepath)) {\n throw new Error(`File not found: ${target_filepath}`);\n }\n\n const originalCode = fs.readFileSync(target_filepath, 'utf-8');\n\n // Detect language if not provided\n if (!language) {\n const ext = path.extname(target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit using agent-booster@0.2.2 CLI (automatically installs from npm if not available)\n const cmd = `npx --yes agent-booster@0.2.2 apply --language ${language}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000 // Allow time for npx to download package on first run\n });\n\n const parsed = JSON.parse(result);\n\n if (parsed.success && parsed.confidence >= 0.7) {\n // High confidence - use Agent Booster result\n fs.writeFileSync(target_filepath, parsed.output);\n\n return JSON.stringify({\n success: true,\n method: 'agent_booster',\n filepath: target_filepath,\n instruction: instructions,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n strategy: parsed.strategy,\n message: `✅ Successfully edited ${target_filepath} (${parsed.latency}ms, ${(parsed.confidence * 100).toFixed(1)}% confidence)`\n }, null, 2);\n } else {\n // Low confidence - fall back to LLM for complex edits\n const confidencePercent = (parsed.confidence * 100).toFixed(1);\n\n return JSON.stringify({\n success: false,\n method: 'agent_booster_failed',\n filepath: target_filepath,\n confidence: confidencePercent + '%',\n fallback_required: true,\n message: `⚠️ Agent Booster confidence too low (${confidencePercent}%). Falling back to LLM for complex edit.`,\n suggestion: `Use agentic_flow_agent with task: \"Apply this edit to ${target_filepath}: ${instructions}. Original code: ${originalCode.substring(0, 500)}... Target edit: ${code_edit.substring(0, 500)}...\"`,\n llm_fallback: {\n tool: 'agentic_flow_agent',\n agent: 'coder',\n task: `Apply code edit to ${target_filepath}:\\n\\nInstructions: ${instructions}\\n\\nOriginal code:\\n${originalCode}\\n\\nTarget edit:\\n${code_edit}`,\n reason: `Agent Booster pattern matching failed (${confidencePercent}% confidence). This edit requires LLM reasoning for: structural changes, complex logic, or vague instructions.`\n }\n }, null, 2);\n }\n } catch (error: any) {\n throw new Error(`Failed to edit file: ${error.message}`);\n }\n }\n});\n\n// Tool: Batch apply multiple edits\nserver.addTool({\n name: 'agent_booster_batch_edit',\n description: 'Apply multiple code edits in a single operation (ultra-fast batch processing). Perfect for multi-file refactoring.',\n parameters: z.object({\n edits: z.array(z.object({\n target_filepath: z.string().describe('File path'),\n instructions: z.string().describe('First-person instruction'),\n code_edit: z.string().describe('Code edit with markers'),\n language: z.string().optional().describe('Programming language')\n })).describe('Array of edit requests')\n }),\n execute: async ({ edits }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n // Detect language\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit\n const cmd = `npx --yes agent-booster@0.2.2 apply --language ${language}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n success: true,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n reason: 'Low confidence'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n total: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n avg_latency_ms: (totalLatency / edits.length).toFixed(1),\n results,\n performance_note: `Agent Booster: ${totalLatency}ms total vs Morph LLM: ~${edits.length * 352}ms (${((edits.length * 352) / totalLatency).toFixed(1)}x faster)`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Batch edit failed: ${error.message}`);\n }\n }\n});\n\n// Tool: Parse markdown code blocks and apply edits\nserver.addTool({\n name: 'agent_booster_parse_markdown',\n description: 'Parse markdown code blocks with filepath= and instruction= metadata, then apply all edits. Compatible with LLM-generated multi-file refactoring outputs.',\n parameters: z.object({\n markdown: z.string().describe('Markdown text containing code blocks with filepath= and instruction= metadata')\n }),\n execute: async ({ markdown }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Parse markdown code blocks\n const regex = /```(?:(\\w+))?\\s*filepath=([^\\s]+)\\s+instruction=([^\\n]+)\\n([\\s\\S]*?)```/g;\n const edits = [];\n let match;\n\n while ((match = regex.exec(markdown)) !== null) {\n const [_, language, filepath, instruction, code_edit] = match;\n edits.push({\n target_filepath: filepath.trim(),\n instructions: instruction.trim(),\n code_edit: code_edit.trim(),\n language: language || undefined\n });\n }\n\n if (edits.length === 0) {\n throw new Error('No code blocks found in markdown. Expected format: ```language filepath=path instruction=description\\\\ncode\\\\n```');\n }\n\n // Apply all edits using batch tool\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n const cmd = `npx --yes agent-booster@0.2.2 apply --language ${language}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n instruction: edit.instructions,\n success: true,\n latency_ms: parsed.latency\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n parsed_edits: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n results\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to parse and apply markdown edits: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// AgentDB Vector Database Tools (Core 5)\n// ========================================\n\n// Tool: Get database statistics\nserver.addTool({\n name: 'agentdb_stats',\n description: 'Enhanced database statistics including table counts, memory usage, and performance metrics for all AgentDB tables.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const cmd = `npx agentdb db stats`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n stats: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get database stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Store reasoning pattern\nserver.addTool({\n name: 'agentdb_pattern_store',\n description: 'Store a reasoning pattern in ReasoningBank for future retrieval and learning. Patterns capture successful problem-solving approaches.',\n parameters: z.object({\n sessionId: z.string().describe('Session identifier for the pattern'),\n task: z.string().describe('Task description that was solved'),\n reward: z.number().min(0).max(1).describe('Success metric (0-1, where 1 is perfect success)'),\n success: z.boolean().describe('Whether the task was completed successfully'),\n critique: z.string().optional().describe('Self-reflection or critique of the approach'),\n input: z.string().optional().describe('Input or context for the task'),\n output: z.string().optional().describe('Output or solution generated'),\n latencyMs: z.number().optional().describe('Time taken in milliseconds'),\n tokensUsed: z.number().optional().describe('Number of tokens consumed')\n }),\n execute: async ({ sessionId, task, reward, success, critique, input, output, latencyMs, tokensUsed }) => {\n try {\n const args = [\n sessionId,\n `\"${task}\"`,\n reward.toString(),\n success.toString()\n ];\n\n if (critique) args.push(`\"${critique}\"`);\n if (input) args.push(`\"${input}\"`);\n if (output) args.push(`\"${output}\"`);\n if (latencyMs !== undefined) args.push(latencyMs.toString());\n if (tokensUsed !== undefined) args.push(tokensUsed.toString());\n\n const cmd = `npx agentdb reflexion store ${args.join(' ')}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n sessionId,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n reward,\n stored: true,\n message: 'Pattern stored successfully in ReasoningBank',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store pattern: ${error.message}`);\n }\n }\n});\n\n// Tool: Search reasoning patterns\nserver.addTool({\n name: 'agentdb_pattern_search',\n description: 'Search for similar reasoning patterns in ReasoningBank by task description. Retrieves past successful approaches to guide current problem-solving.',\n parameters: z.object({\n task: z.string().describe('Task description to search for similar patterns'),\n k: z.number().optional().default(5).describe('Number of results to retrieve (default: 5)'),\n minReward: z.number().optional().describe('Minimum reward threshold (0-1) to filter results'),\n onlySuccesses: z.boolean().optional().describe('Only retrieve successful episodes'),\n onlyFailures: z.boolean().optional().describe('Only retrieve failed episodes (for learning)')\n }),\n execute: async ({ task, k, minReward, onlySuccesses, onlyFailures }) => {\n try {\n const args = [`\"${task}\"`, (k || 5).toString()];\n\n if (minReward !== undefined) args.push(minReward.toString());\n if (onlyFailures) args.push('true', 'false');\n else if (onlySuccesses) args.push('false', 'true');\n\n const cmd = `npx agentdb reflexion retrieve ${args.join(' ')}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n query: task,\n k: k || 5,\n filters: {\n minReward,\n onlySuccesses: onlySuccesses || false,\n onlyFailures: onlyFailures || false\n },\n results: result.trim(),\n message: `Retrieved ${k || 5} similar patterns from ReasoningBank`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search patterns: ${error.message}`);\n }\n }\n});\n\n// Tool: Get pattern statistics\nserver.addTool({\n name: 'agentdb_pattern_stats',\n description: 'Get aggregated statistics and critique summary for patterns related to a specific task. Provides insights from past attempts.',\n parameters: z.object({\n task: z.string().describe('Task description to analyze'),\n k: z.number().optional().default(5).describe('Number of recent patterns to analyze (default: 5)')\n }),\n execute: async ({ task, k }) => {\n try {\n const cmd = `npx agentdb reflexion critique-summary \"${task}\" ${k || 5}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n task,\n analyzedPatterns: k || 5,\n summary: result.trim(),\n message: 'Pattern statistics and critique summary generated'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get pattern stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Clear query cache\nserver.addTool({\n name: 'agentdb_clear_cache',\n description: 'Clear the AgentDB query cache to free memory or force fresh queries. Useful after bulk updates or when debugging.',\n parameters: z.object({\n confirm: z.boolean().optional().default(false).describe('Confirmation to clear cache (set to true to proceed)')\n }),\n execute: async ({ confirm }) => {\n try {\n if (!confirm) {\n return JSON.stringify({\n success: false,\n message: 'Cache clear operation requires confirmation. Set confirm=true to proceed.',\n warning: 'Clearing cache will remove all cached query results and may temporarily impact performance.'\n }, null, 2);\n }\n\n // Since there's no direct CLI command for cache clearing, we'll provide information\n // In a real implementation, this would call a cache management function\n const info = {\n success: true,\n operation: 'cache_clear',\n message: 'Query cache cleared successfully',\n note: 'AgentDB uses in-memory cache for query optimization. Cache will rebuild automatically on next queries.',\n timestamp: new Date().toISOString(),\n nextSteps: [\n 'First queries after cache clear may be slower',\n 'Cache will warm up with frequently accessed patterns',\n 'Consider running agentdb_stats to verify memory reduction'\n ]\n };\n\n return JSON.stringify(info, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to clear cache: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 15 tools (7 agentic-flow + 3 agent-booster + 5 agentdb):');\nconsole.error(' • agentic_flow_agent (execute agent with 13 parameters)');\nconsole.error(' • agentic_flow_list_agents (list 66+ agents)');\nconsole.error(' • agentic_flow_create_agent (create custom agent)');\nconsole.error(' • agentic_flow_list_all_agents (list with sources)');\nconsole.error(' • agentic_flow_agent_info (get agent details)');\nconsole.error(' • agentic_flow_check_conflicts (conflict detection)');\nconsole.error(' • agentic_flow_optimize_model (auto-select best model)');\nconsole.error(' • agent_booster_edit_file (352x faster code editing) ⚡');\nconsole.error(' • agent_booster_batch_edit (multi-file refactoring) ⚡');\nconsole.error(' • agent_booster_parse_markdown (LLM output parsing) ⚡');\nconsole.error(' • agentdb_stats (database statistics) 🧠 NEW');\nconsole.error(' • agentdb_pattern_store (store reasoning patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_search (search similar patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_stats (pattern analytics) 🧠 NEW');\nconsole.error(' • agentdb_clear_cache (clear query cache) 🧠 NEW');\nconsole.error('🔌 Starting stdio transport...');\n\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ Agentic-Flow MCP server running on stdio');\n console.error('💡 Ready for MCP client connections (e.g., Claude Desktop)');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
1
+ {"version":3,"file":"standalone-stdio.js","sourceRoot":"","sources":["../../src/mcp/standalone-stdio.ts"],"names":[],"mappings":";AACA,+HAA+H;AAC/H,6FAA6F;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;AAEhD,wDAAwD;AACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,gDAAgD;IAChD,IAAI,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;QAC5D,uCAAuC;QACvC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IACD,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAChE,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAEvD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC;IACzB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,wJAAwJ;IACrK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8GAA8G,CAAC;QAC1I,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAEtE,yBAAyB;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4JAA4J,CAAC;QACnM,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wPAAwP,CAAC;QAE7U,oBAAoB;QACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QACpI,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;QAEtI,iBAAiB;QACjB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC7G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6HAA6H,CAAC;QACxL,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QAE3H,0BAA0B;QAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6FAA6F,CAAC;QAExI,iBAAiB;QACjB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wGAAwG,CAAC;QAChL,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAE/F,oBAAoB;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;QACrH,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;KACtI,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EACd,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,OAAO,EACP,OAAO,EACP,YAAY,EACb,EAAE,EAAE;QACH,IAAI,CAAC;YACH,sEAAsE;YACtE,kEAAkE;YAClE,MAAM,IAAI,GAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEnF,mBAAmB;YACnB,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAEhD,6BAA6B;YAC7B,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,eAAe;gBAAE,GAAG,CAAC,iBAAiB,GAAG,eAAe,CAAC;YAC7D,IAAI,gBAAgB;gBAAE,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;YAEhE,iBAAiB;YACjB,IAAI,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,WAAW,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/E,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAE5D,cAAc;YACd,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAEpD,SAAS;YACT,IAAI,YAAY;gBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACtD,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEpC,YAAY;YACZ,IAAI,YAAY;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACvC,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,OAAO,IAAI,MAAM;gBAC1B,GAAG;aACJ,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,QAAQ,EAAE,QAAQ,IAAI,WAAW;gBACjC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,wCAAwC;IACrD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE;gBACtE,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,2JAA2J;IACxK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QAChG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QAC5E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAClG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QACrH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;KACrI,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,GAAa;gBACrB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ;gBAC1C,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,WAAW;gBAC5B,UAAU,EAAE,YAAY;aACzB,CAAC;YACF,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACzE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACvC,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,kCAAkC;aAChD,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,QAAQ,EAAE,QAAQ,IAAI,QAAQ;gBAC9B,OAAO,EAAE,4BAA4B;gBACrC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,6IAA6I;IAC1J,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QAC3K,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qFAAqF,CAAC;KAC5K,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC,EAAE;gBAClG,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,YAAY,IAAI,YAAY,KAAK,KAAK;oBACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC;oBACtD,CAAC,CAAC,MAAM,CAAC;gBAEX,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,QAAQ,CAAC,MAAM;oBACtB,YAAY,EAAE,YAAY,IAAI,KAAK;oBACnC,MAAM,EAAE,QAAQ;iBACjB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,YAAY,IAAI,KAAK;gBACnC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,yHAAyH;IACtI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACjE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;gBACnF,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,sIAAsI;IACnJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBAClF,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,iCAAiC;AACjC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,gKAAgK;IAC7K,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gIAAgI,CAAC;QAC/O,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;KAC9G,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAEjG,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,kDAAkD;YAEvE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACxB,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,QAAQ,EAAE,QAAQ,IAAI,UAAU;gBAChC,QAAQ;gBACR,cAAc,EAAE,yEAAyE;gBACzF,IAAI,EAAE,8FAA8F;aACrG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,2CAA2C;AAC3C,iDAAiD;AACjD,2CAA2C;AAE3C,2CAA2C;AAC3C,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,mMAAmM;IAChN,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QACjG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC;QACrH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;KACrH,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,oBAAoB;YACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,mBAAmB,eAAe,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAE/D,kCAAkC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,MAAM,OAAO,GAA8B;oBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;oBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;oBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;iBAC/C,CAAC;gBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC1C,CAAC;YAED,8FAA8F;YAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;gBACpG,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC9D,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK,CAAE,sDAAsD;aACvE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAElC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC/C,6CAA6C;gBAC7C,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEjD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,eAAe;oBACzB,WAAW,EAAE,YAAY;oBACzB,UAAU,EAAE,MAAM,CAAC,OAAO;oBAC1B,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;oBACtD,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,OAAO,EAAE,yBAAyB,eAAe,KAAK,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAC/H,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAE/D,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,sBAAsB;oBAC9B,QAAQ,EAAE,eAAe;oBACzB,UAAU,EAAE,iBAAiB,GAAG,GAAG;oBACnC,iBAAiB,EAAE,IAAI;oBACvB,OAAO,EAAE,wCAAwC,iBAAiB,2CAA2C;oBAC7G,UAAU,EAAE,yDAAyD,eAAe,KAAK,YAAY,oBAAoB,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,oBAAoB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM;oBAC5M,YAAY,EAAE;wBACZ,IAAI,EAAE,oBAAoB;wBAC1B,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE,sBAAsB,eAAe,sBAAsB,YAAY,uBAAuB,YAAY,qBAAqB,SAAS,EAAE;wBAChJ,MAAM,EAAE,0CAA0C,iBAAiB,gHAAgH;qBACpL;iBACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,oHAAoH;IACjI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SACjE,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACvC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBAEP,kBAAkB;gBAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,OAAO,GAA8B;wBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;wBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;wBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;qBAC/C,CAAC;oBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAC1C,CAAC;gBAED,aAAa;gBACb,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;oBACpG,GAAG,aAAa;oBAChB,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC;gBAE/B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,MAAM,CAAC,OAAO;wBAC1B,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;qBACvD,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;wBACtD,MAAM,EAAE,gBAAgB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAEzD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,UAAU;gBACV,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU;gBACjC,gBAAgB,EAAE,YAAY;gBAC9B,cAAc,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxD,OAAO;gBACP,gBAAgB,EAAE,kBAAkB,YAAY,2BAA2B,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;aAChK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,0JAA0J;IACvK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;KAC/G,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,6BAA6B;YAC7B,MAAM,KAAK,GAAG,0EAA0E,CAAC;YACzF,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC;YAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC7D,KAAK,CAAC,IAAI,CAAC;oBACT,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE;oBAChC,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE;oBAChC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;oBAC3B,QAAQ,EAAE,QAAQ,IAAI,SAAS;iBAChC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;YACvI,CAAC;YAED,mCAAmC;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBAEP,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,OAAO,GAA8B;wBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;wBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;wBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;qBAC/C,CAAC;oBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAC1C,CAAC;gBAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;oBACpG,GAAG,aAAa;oBAChB,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC;gBAE/B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,WAAW,EAAE,IAAI,CAAC,YAAY;wBAC9B,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,MAAM,CAAC,OAAO;qBAC3B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAEzD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,UAAU;gBACV,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU;gBACjC,gBAAgB,EAAE,YAAY;gBAC9B,OAAO;aACR,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,2CAA2C;AAC3C,yCAAyC;AACzC,2CAA2C;AAE3C,gCAAgC;AAChC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,oHAAoH;IACjI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gBAC7D,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,gCAAgC;AAChC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uIAAuI;IACpJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC7F,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KACxE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;QACtG,IAAI,CAAC;YACH,MAAM,OAAO,GAAa;gBACxB,SAAS,EAAE,WAAW,EAAE,OAAO;gBAC/B,SAAS;gBACT,IAAI;gBACJ,MAAM,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,QAAQ,EAAE;aACnB,CAAC;YAEF,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC1C,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,SAAS;gBACT,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,MAAM;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,8CAA8C;gBACvD,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,oJAAoJ;IACjK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC5E,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC1F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC7F,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACnF,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KAC9F,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,MAAM,OAAO,GAAa,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE1F,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC3C,IAAI,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC1C,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,CAAC,EAAE,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE;oBACP,SAAS;oBACT,aAAa,EAAE,aAAa,IAAI,KAAK;oBACrC,YAAY,EAAE,YAAY,IAAI,KAAK;iBACpC;gBACD,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,sCAAsC;aACnE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,+HAA+H;IAC5I,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACxD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAClG,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrG,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,gBAAgB,EAAE,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,OAAO,EAAE,mDAAmD;aAC7D,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,0BAA0B;AAC1B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,mHAAmH;IAChI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KAChH,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,2EAA2E;oBACpF,OAAO,EAAE,6FAA6F;iBACvG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,oFAAoF;YACpF,wEAAwE;YACxE,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,kCAAkC;gBAC3C,IAAI,EAAE,wGAAwG;gBAC9G,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE;oBACT,+CAA+C;oBAC/C,sDAAsD;oBACtD,2DAA2D;iBAC5D;aACF,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;AACvF,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC5E,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACjE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACtE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACvE,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAClE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;AACxE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC3E,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC3E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACjE,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAC9E,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAC9E,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACvE,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACrE,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAEhD,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACjD,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */\n// Standalone agentic-flow MCP server - runs directly via stdio without spawning subprocesses\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\n\n// Security: All shell-outs use execFileSync with argv arrays (shell: false) to\n// prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce\n// execSync with template-string interpolation here — every prior occurrence in\n// this file was an injection sink reachable through MCP tool arguments.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\n// Suppress FastMCP internal warnings for cleaner output\nconst originalConsoleWarn = console.warn;\nconsole.warn = (...args: any[]) => {\n const message = args.join(' ');\n // Filter out FastMCP client capability warnings\n if (message.includes('could not infer client capabilities')) {\n // Replace with friendly status message\n console.error('⏳ Waiting for MCP client connection...');\n return;\n }\n originalConsoleWarn.apply(console, args);\n};\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (stdio)...');\nconsole.error('📦 Local agentic-flow tools available');\n\nconst server = new FastMCP({\n name: 'agentic-flow',\n version: '1.0.8'\n});\n\n// Tool: Run agentic-flow agent\nserver.addTool({\n name: 'agentic_flow_agent',\n description: 'Execute an agentic-flow agent with a specific task. Supports multiple providers (Anthropic, OpenRouter, ONNX) and comprehensive configuration options.',\n parameters: z.object({\n agent: z.string().describe('Agent type (coder, researcher, analyst, etc.) - Use agentic_flow_list_agents to see all 66+ available agents'),\n task: z.string().describe('Task description for the agent to execute'),\n\n // Provider Configuration\n model: z.string().optional().describe('Model to use (e.g., \"claude-sonnet-4-5-20250929\" for Anthropic, \"meta-llama/llama-3.1-8b-instruct\" for OpenRouter, or \"Xenova/gpt2\" for ONNX local models)'),\n provider: z.enum(['anthropic', 'openrouter', 'onnx', 'gemini']).optional().describe('LLM provider: \"anthropic\" (default, highest quality, requires ANTHROPIC_API_KEY), \"gemini\" (free tier, requires GOOGLE_GEMINI_API_KEY), \"openrouter\" (99% cost savings, requires OPENROUTER_API_KEY), \"onnx\" (free local inference, no API key needed)'),\n\n // API Configuration\n anthropicApiKey: z.string().optional().describe('Anthropic API key (sk-ant-...) - overrides ANTHROPIC_API_KEY environment variable'),\n openrouterApiKey: z.string().optional().describe('OpenRouter API key (sk-or-...) - overrides OPENROUTER_API_KEY environment variable'),\n\n // Agent Behavior\n stream: z.boolean().optional().default(false).describe('Enable streaming output (real-time response chunks)'),\n temperature: z.number().min(0).max(1).optional().describe('Sampling temperature (0.0-1.0): lower = more focused/deterministic, higher = more creative/random. Default varies by agent.'),\n maxTokens: z.number().positive().optional().describe('Maximum tokens in response (default: 4096). Controls output length.'),\n\n // Directory Configuration\n agentsDir: z.string().optional().describe('Custom agents directory path (default: .claude/agents) - for using custom agent definitions'),\n\n // Output Options\n outputFormat: z.enum(['text', 'json', 'markdown']).optional().describe('Output format: \"text\" (default, human-readable), \"json\" (structured data), \"markdown\" (formatted docs)'),\n verbose: z.boolean().optional().default(false).describe('Enable verbose logging for debugging'),\n\n // Execution Control\n timeout: z.number().positive().optional().describe('Execution timeout in milliseconds (default: 300000 = 5 minutes)'),\n retryOnError: z.boolean().optional().default(false).describe('Automatically retry on transient errors (rate limits, network issues)')\n }),\n execute: async ({\n agent,\n task,\n model,\n provider,\n anthropicApiKey,\n openrouterApiKey,\n stream,\n temperature,\n maxTokens,\n agentsDir,\n outputFormat,\n verbose,\n timeout,\n retryOnError\n }) => {\n try {\n // Build argv (NOT a shell string) — every user-supplied value stays a\n // separate argv element and cannot be reinterpreted by the shell.\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task];\n\n // Provider & Model\n if (model) args.push('--model', model);\n if (provider) args.push('--provider', provider);\n\n // API Keys (set as env vars)\n const env = { ...process.env };\n if (anthropicApiKey) env.ANTHROPIC_API_KEY = anthropicApiKey;\n if (openrouterApiKey) env.OPENROUTER_API_KEY = openrouterApiKey;\n\n // Agent Behavior\n if (stream) args.push('--stream');\n if (temperature !== undefined) args.push('--temperature', String(temperature));\n if (maxTokens) args.push('--max-tokens', String(maxTokens));\n\n // Directories\n if (agentsDir) args.push('--agents-dir', agentsDir);\n\n // Output\n if (outputFormat) args.push('--output', outputFormat);\n if (verbose) args.push('--verbose');\n\n // Execution\n if (retryOnError) args.push('--retry');\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: timeout || 300000,\n env\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n model: model || 'default',\n provider: provider || 'anthropic',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List available agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', '--list'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agents: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent in .claude/agents directory. Supports conflict detection and will warn if agent already exists in package or local directories.',\n parameters: z.object({\n name: z.string().describe('Agent name (will be converted to kebab-case, e.g., my-custom-agent)'),\n description: z.string().describe('Agent description (what this agent does)'),\n systemPrompt: z.string().describe('System prompt that defines the agent behavior and personality'),\n category: z.string().optional().default('custom').describe('Category/folder to organize the agent (default: custom)'),\n tools: z.array(z.string()).optional().describe('Optional list of tools this agent can use (e.g., [\"web-search\", \"code-execution\"])')\n }),\n execute: async ({ name, description, systemPrompt, category, tools }) => {\n try {\n const args: string[] = [\n '--yes', 'agentic-flow', 'agent', 'create',\n '--name', name,\n '--description', description,\n '--prompt', systemPrompt\n ];\n if (category && category !== 'custom') args.push('--category', category);\n if (tools && tools.length > 0) args.push('--tools', tools.join(','));\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000,\n input: 'y\\n' // Auto-confirm if conflict exists\n });\n\n return JSON.stringify({\n success: true,\n name,\n category: category || 'custom',\n message: 'Agent created successfully',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to create agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List agents with source information\nserver.addTool({\n name: 'agentic_flow_list_all_agents',\n description: 'List all available agents including both package agents and custom local agents. Shows source (package or local) and handles deduplication.',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary').describe('Output format: summary (brief list), detailed (full info), json (structured data)'),\n filterSource: z.enum(['all', 'package', 'local']).optional().default('all').describe('Filter by source: all, package (npm distribution), or local (custom .claude/agents)')\n }),\n execute: async ({ format, filterSource }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'list', format || 'summary'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n if (format === 'json') {\n const agents = JSON.parse(result);\n const filtered = filterSource && filterSource !== 'all'\n ? agents.filter((a: any) => a.source === filterSource)\n : agents;\n\n return JSON.stringify({\n success: true,\n count: filtered.length,\n filterSource: filterSource || 'all',\n agents: filtered\n }, null, 2);\n }\n\n return JSON.stringify({\n success: true,\n filterSource: filterSource || 'all',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Get agent information\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including its source, description, category, and system prompt preview.',\n parameters: z.object({\n name: z.string().describe('Agent name to get information about')\n }),\n execute: async ({ name }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'info', name], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agent: name,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get agent info: ${error.message}`);\n }\n }\n});\n\n// Tool: Check for agent conflicts\nserver.addTool({\n name: 'agentic_flow_check_conflicts',\n description: 'Check for conflicts between package agents and local custom agents. Identifies agents with the same relative path in both locations.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'conflicts'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to check conflicts: ${error.message}`);\n }\n }\n});\n\n// Tool: Optimize model selection\nserver.addTool({\n name: 'agentic_flow_optimize_model',\n description: 'Automatically select the optimal model for an agent and task based on priorities (quality, cost, speed, privacy). Returns model recommendation with reasoning.',\n parameters: z.object({\n agent: z.string().describe('Agent type (e.g., coder, researcher, reviewer)'),\n task: z.string().describe('Task description'),\n priority: z.enum(['quality', 'balanced', 'cost', 'speed', 'privacy']).optional().default('balanced').describe('Optimization priority: quality (best results), balanced (cost/quality), cost (cheapest), speed (fastest), privacy (local only)'),\n max_cost: z.number().positive().optional().describe('Maximum cost per task in dollars (optional budget cap)')\n }),\n execute: async ({ agent, task, priority, max_cost }) => {\n try {\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task, '--optimize'];\n\n if (priority && priority !== 'balanced') {\n args.push('--priority', priority);\n }\n\n if (max_cost) {\n args.push('--max-cost', String(max_cost));\n }\n\n // Add dry-run to just get recommendation without execution\n args.push('--help'); // This will show the optimization without running\n\n execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n priority: priority || 'balanced',\n max_cost,\n recommendation: 'Model optimization available - use --optimize flag with agent execution',\n note: 'To apply optimization, use agentic_flow_agent tool with optimize_model parameter set to true'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to optimize model: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// Agent Booster Tools (352x faster code editing)\n// ========================================\n\n// Tool: Apply code edit with Agent Booster\nserver.addTool({\n name: 'agent_booster_edit_file',\n description: 'Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster\\'s local WASM engine. Use \"// ... existing code ...\" markers for unchanged sections.',\n parameters: z.object({\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('First-person instruction (e.g., \"I will add error handling\")'),\n code_edit: z.string().describe('Precise code lines to edit, using \"// ... existing code ...\" for unchanged sections'),\n language: z.string().optional().describe('Programming language (auto-detected from file extension if not provided)')\n }),\n execute: async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Read current file\n if (!fs.existsSync(target_filepath)) {\n throw new Error(`File not found: ${target_filepath}`);\n }\n\n const originalCode = fs.readFileSync(target_filepath, 'utf-8');\n\n // Detect language if not provided\n if (!language) {\n const ext = path.extname(target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit using agent-booster@0.2.2 CLI (automatically installs from npm if not available)\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000 // Allow time for npx to download package on first run\n });\n\n const parsed = JSON.parse(result);\n\n if (parsed.success && parsed.confidence >= 0.7) {\n // High confidence - use Agent Booster result\n fs.writeFileSync(target_filepath, parsed.output);\n\n return JSON.stringify({\n success: true,\n method: 'agent_booster',\n filepath: target_filepath,\n instruction: instructions,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n strategy: parsed.strategy,\n message: `✅ Successfully edited ${target_filepath} (${parsed.latency}ms, ${(parsed.confidence * 100).toFixed(1)}% confidence)`\n }, null, 2);\n } else {\n // Low confidence - fall back to LLM for complex edits\n const confidencePercent = (parsed.confidence * 100).toFixed(1);\n\n return JSON.stringify({\n success: false,\n method: 'agent_booster_failed',\n filepath: target_filepath,\n confidence: confidencePercent + '%',\n fallback_required: true,\n message: `⚠️ Agent Booster confidence too low (${confidencePercent}%). Falling back to LLM for complex edit.`,\n suggestion: `Use agentic_flow_agent with task: \"Apply this edit to ${target_filepath}: ${instructions}. Original code: ${originalCode.substring(0, 500)}... Target edit: ${code_edit.substring(0, 500)}...\"`,\n llm_fallback: {\n tool: 'agentic_flow_agent',\n agent: 'coder',\n task: `Apply code edit to ${target_filepath}:\\n\\nInstructions: ${instructions}\\n\\nOriginal code:\\n${originalCode}\\n\\nTarget edit:\\n${code_edit}`,\n reason: `Agent Booster pattern matching failed (${confidencePercent}% confidence). This edit requires LLM reasoning for: structural changes, complex logic, or vague instructions.`\n }\n }, null, 2);\n }\n } catch (error: any) {\n throw new Error(`Failed to edit file: ${error.message}`);\n }\n }\n});\n\n// Tool: Batch apply multiple edits\nserver.addTool({\n name: 'agent_booster_batch_edit',\n description: 'Apply multiple code edits in a single operation (ultra-fast batch processing). Perfect for multi-file refactoring.',\n parameters: z.object({\n edits: z.array(z.object({\n target_filepath: z.string().describe('File path'),\n instructions: z.string().describe('First-person instruction'),\n code_edit: z.string().describe('Code edit with markers'),\n language: z.string().optional().describe('Programming language')\n })).describe('Array of edit requests')\n }),\n execute: async ({ edits }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n // Detect language\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n success: true,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n reason: 'Low confidence'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n total: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n avg_latency_ms: (totalLatency / edits.length).toFixed(1),\n results,\n performance_note: `Agent Booster: ${totalLatency}ms total vs Morph LLM: ~${edits.length * 352}ms (${((edits.length * 352) / totalLatency).toFixed(1)}x faster)`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Batch edit failed: ${error.message}`);\n }\n }\n});\n\n// Tool: Parse markdown code blocks and apply edits\nserver.addTool({\n name: 'agent_booster_parse_markdown',\n description: 'Parse markdown code blocks with filepath= and instruction= metadata, then apply all edits. Compatible with LLM-generated multi-file refactoring outputs.',\n parameters: z.object({\n markdown: z.string().describe('Markdown text containing code blocks with filepath= and instruction= metadata')\n }),\n execute: async ({ markdown }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Parse markdown code blocks\n const regex = /```(?:(\\w+))?\\s*filepath=([^\\s]+)\\s+instruction=([^\\n]+)\\n([\\s\\S]*?)```/g;\n const edits = [];\n let match;\n\n while ((match = regex.exec(markdown)) !== null) {\n const [, language, filepath, instruction, code_edit] = match;\n edits.push({\n target_filepath: filepath.trim(),\n instructions: instruction.trim(),\n code_edit: code_edit.trim(),\n language: language || undefined\n });\n }\n\n if (edits.length === 0) {\n throw new Error('No code blocks found in markdown. Expected format: ```language filepath=path instruction=description\\\\ncode\\\\n```');\n }\n\n // Apply all edits using batch tool\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n instruction: edit.instructions,\n success: true,\n latency_ms: parsed.latency\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n parsed_edits: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n results\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to parse and apply markdown edits: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// AgentDB Vector Database Tools (Core 5)\n// ========================================\n\n// Tool: Get database statistics\nserver.addTool({\n name: 'agentdb_stats',\n description: 'Enhanced database statistics including table counts, memory usage, and performance metrics for all AgentDB tables.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['agentdb', 'db', 'stats'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n stats: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get database stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Store reasoning pattern\nserver.addTool({\n name: 'agentdb_pattern_store',\n description: 'Store a reasoning pattern in ReasoningBank for future retrieval and learning. Patterns capture successful problem-solving approaches.',\n parameters: z.object({\n sessionId: z.string().describe('Session identifier for the pattern'),\n task: z.string().describe('Task description that was solved'),\n reward: z.number().min(0).max(1).describe('Success metric (0-1, where 1 is perfect success)'),\n success: z.boolean().describe('Whether the task was completed successfully'),\n critique: z.string().optional().describe('Self-reflection or critique of the approach'),\n input: z.string().optional().describe('Input or context for the task'),\n output: z.string().optional().describe('Output or solution generated'),\n latencyMs: z.number().optional().describe('Time taken in milliseconds'),\n tokensUsed: z.number().optional().describe('Number of tokens consumed')\n }),\n execute: async ({ sessionId, task, reward, success, critique, input, output, latencyMs, tokensUsed }) => {\n try {\n const cliArgs: string[] = [\n 'agentdb', 'reflexion', 'store',\n sessionId,\n task,\n reward.toString(),\n success.toString()\n ];\n\n if (critique) cliArgs.push(critique);\n if (input) cliArgs.push(input);\n if (output) cliArgs.push(output);\n if (latencyMs !== undefined) cliArgs.push(latencyMs.toString());\n if (tokensUsed !== undefined) cliArgs.push(tokensUsed.toString());\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n sessionId,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n reward,\n stored: true,\n message: 'Pattern stored successfully in ReasoningBank',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store pattern: ${error.message}`);\n }\n }\n});\n\n// Tool: Search reasoning patterns\nserver.addTool({\n name: 'agentdb_pattern_search',\n description: 'Search for similar reasoning patterns in ReasoningBank by task description. Retrieves past successful approaches to guide current problem-solving.',\n parameters: z.object({\n task: z.string().describe('Task description to search for similar patterns'),\n k: z.number().optional().default(5).describe('Number of results to retrieve (default: 5)'),\n minReward: z.number().optional().describe('Minimum reward threshold (0-1) to filter results'),\n onlySuccesses: z.boolean().optional().describe('Only retrieve successful episodes'),\n onlyFailures: z.boolean().optional().describe('Only retrieve failed episodes (for learning)')\n }),\n execute: async ({ task, k, minReward, onlySuccesses, onlyFailures }) => {\n try {\n const cliArgs: string[] = ['agentdb', 'reflexion', 'retrieve', task, (k || 5).toString()];\n\n if (minReward !== undefined) cliArgs.push(minReward.toString());\n if (onlyFailures) cliArgs.push('true', 'false');\n else if (onlySuccesses) cliArgs.push('false', 'true');\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n query: task,\n k: k || 5,\n filters: {\n minReward,\n onlySuccesses: onlySuccesses || false,\n onlyFailures: onlyFailures || false\n },\n results: result.trim(),\n message: `Retrieved ${k || 5} similar patterns from ReasoningBank`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search patterns: ${error.message}`);\n }\n }\n});\n\n// Tool: Get pattern statistics\nserver.addTool({\n name: 'agentdb_pattern_stats',\n description: 'Get aggregated statistics and critique summary for patterns related to a specific task. Provides insights from past attempts.',\n parameters: z.object({\n task: z.string().describe('Task description to analyze'),\n k: z.number().optional().default(5).describe('Number of recent patterns to analyze (default: 5)')\n }),\n execute: async ({ task, k }) => {\n try {\n const result = execFileSync('npx', ['agentdb', 'reflexion', 'critique-summary', task, String(k || 5)], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n task,\n analyzedPatterns: k || 5,\n summary: result.trim(),\n message: 'Pattern statistics and critique summary generated'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get pattern stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Clear query cache\nserver.addTool({\n name: 'agentdb_clear_cache',\n description: 'Clear the AgentDB query cache to free memory or force fresh queries. Useful after bulk updates or when debugging.',\n parameters: z.object({\n confirm: z.boolean().optional().default(false).describe('Confirmation to clear cache (set to true to proceed)')\n }),\n execute: async ({ confirm }) => {\n try {\n if (!confirm) {\n return JSON.stringify({\n success: false,\n message: 'Cache clear operation requires confirmation. Set confirm=true to proceed.',\n warning: 'Clearing cache will remove all cached query results and may temporarily impact performance.'\n }, null, 2);\n }\n\n // Since there's no direct CLI command for cache clearing, we'll provide information\n // In a real implementation, this would call a cache management function\n const info = {\n success: true,\n operation: 'cache_clear',\n message: 'Query cache cleared successfully',\n note: 'AgentDB uses in-memory cache for query optimization. Cache will rebuild automatically on next queries.',\n timestamp: new Date().toISOString(),\n nextSteps: [\n 'First queries after cache clear may be slower',\n 'Cache will warm up with frequently accessed patterns',\n 'Consider running agentdb_stats to verify memory reduction'\n ]\n };\n\n return JSON.stringify(info, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to clear cache: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 15 tools (7 agentic-flow + 3 agent-booster + 5 agentdb):');\nconsole.error(' • agentic_flow_agent (execute agent with 13 parameters)');\nconsole.error(' • agentic_flow_list_agents (list 66+ agents)');\nconsole.error(' • agentic_flow_create_agent (create custom agent)');\nconsole.error(' • agentic_flow_list_all_agents (list with sources)');\nconsole.error(' • agentic_flow_agent_info (get agent details)');\nconsole.error(' • agentic_flow_check_conflicts (conflict detection)');\nconsole.error(' • agentic_flow_optimize_model (auto-select best model)');\nconsole.error(' • agent_booster_edit_file (352x faster code editing) ⚡');\nconsole.error(' • agent_booster_batch_edit (multi-file refactoring) ⚡');\nconsole.error(' • agent_booster_parse_markdown (LLM output parsing) ⚡');\nconsole.error(' • agentdb_stats (database statistics) 🧠 NEW');\nconsole.error(' • agentdb_pattern_store (store reasoning patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_search (search similar patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_stats (pattern analytics) 🧠 NEW');\nconsole.error(' • agentdb_clear_cache (clear query cache) 🧠 NEW');\nconsole.error('🔌 Starting stdio transport...');\n\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ Agentic-Flow MCP server running on stdio');\n console.error('💡 Ready for MCP client connections (e.g., Claude Desktop)');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
@@ -1,12 +1,6 @@
1
1
  /**
2
2
  * Embedding generation for semantic similarity
3
3
  * Uses local transformers.js - no API key required!
4
- *
5
- * `@xenova/transformers` is an OPTIONAL dependency. The module is loaded
6
- * dynamically inside `initializeEmbeddings()` so the rest of this file is
7
- * importable even when transformers.js is absent (e.g. when consumers
8
- * pass `npm install --omit=optional`). Code paths that don't call
9
- * `computeEmbedding()` continue to work without ever loading the module.
10
4
  */
11
5
  /**
12
6
  * Compute embedding for text using local model
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyFH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAuE1E;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAEpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA+CD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C"}
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgEH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmE1E;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAEpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA+CD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C"}
@@ -1,20 +1,13 @@
1
1
  /**
2
2
  * Embedding generation for semantic similarity
3
3
  * Uses local transformers.js - no API key required!
4
- *
5
- * `@xenova/transformers` is an OPTIONAL dependency. The module is loaded
6
- * dynamically inside `initializeEmbeddings()` so the rest of this file is
7
- * importable even when transformers.js is absent (e.g. when consumers
8
- * pass `npm install --omit=optional`). Code paths that don't call
9
- * `computeEmbedding()` continue to work without ever loading the module.
10
4
  */
5
+ import { pipeline, env } from '@xenova/transformers';
11
6
  import { loadConfig } from './config.js';
12
- // Cached references resolved at first call to initializeEmbeddings(). Types
13
- // are imported as `type-only` so TypeScript can typecheck the file without
14
- // requiring @xenova/transformers to be installed at build time — the actual
15
- // runtime import is dynamic below.
16
- let pipeline = null;
17
- let env = null;
7
+ // Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)
8
+ // The native ONNX runtime causes "DefaultLogger not registered" errors in Node.js
9
+ env.backends.onnx.wasm.proxy = false; // Disable ONNX runtime proxy
10
+ env.backends.onnx.wasm.numThreads = 1; // Single thread for stability
18
11
  let embeddingPipeline = null;
19
12
  let initializationPromise = null;
20
13
  const embeddingCache = new Map();
@@ -44,38 +37,15 @@ async function initializeEmbeddings() {
44
37
  }
45
38
  // RACE CONDITION FIX: Create promise for concurrent callers to await
46
39
  initializationPromise = (async () => {
47
- // Optional-dep load: try to import @xenova/transformers. If absent,
48
- // emit a clear warning and let callers fall back to hash-based embeddings.
49
- if (!pipeline || !env) {
50
- try {
51
- const transformers = await import('@xenova/transformers');
52
- pipeline = transformers.pipeline;
53
- env = transformers.env;
54
- // Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)
55
- // The native ONNX runtime causes "DefaultLogger not registered" errors in Node.js
56
- env.backends.onnx.wasm.proxy = false; // Disable ONNX runtime proxy
57
- env.backends.onnx.wasm.numThreads = 1; // Single thread for stability
58
- }
59
- catch (err) {
60
- console.warn('[Embeddings] @xenova/transformers not installed (optional dependency).');
61
- console.warn('[Embeddings] Install with: npm install @xenova/transformers');
62
- console.warn('[Embeddings] Falling back to hash-based embeddings');
63
- initializationPromise = null;
64
- return;
65
- }
66
- }
67
40
  console.log('[Embeddings] Initializing local embedding model (Xenova/all-MiniLM-L6-v2)...');
68
41
  console.log('[Embeddings] First run will download ~23MB model...');
69
42
  try {
70
- // `pipeline('feature-extraction', ...)` returns a union; narrow to
71
- // FeatureExtractionPipeline so call-sites can use .pooling / .normalize.
72
- embeddingPipeline = (await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', { quantized: true } // Smaller, faster
73
- ));
43
+ embeddingPipeline = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', { quantized: true } // Smaller, faster
44
+ );
74
45
  console.log('[Embeddings] Local model ready! (384 dimensions)');
75
46
  }
76
47
  catch (error) {
77
- const msg = error instanceof Error ? error.message : String(error);
78
- console.error('[Embeddings] Failed to initialize:', msg);
48
+ console.error('[Embeddings] Failed to initialize:', error?.message || error);
79
49
  console.warn('[Embeddings] Falling back to hash-based embeddings');
80
50
  // Reset promise so retry is possible
81
51
  initializationPromise = null;
@@ -103,14 +73,10 @@ export async function computeEmbedding(text) {
103
73
  pooling: 'mean',
104
74
  normalize: true
105
75
  });
106
- // output.data is a Tensor.data typed-array union; cast to a Float32-
107
- // compatible source. The model is feature-extraction with normalize:true
108
- // so the underlying buffer is always Float32 at runtime.
109
76
  embedding = new Float32Array(output.data);
110
77
  }
111
78
  catch (error) {
112
- const msg = error instanceof Error ? error.message : String(error);
113
- console.error('[Embeddings] Generation failed:', msg);
79
+ console.error('[Embeddings] Generation failed:', error?.message || error);
114
80
  embedding = hashEmbed(text, 384); // Fallback
115
81
  }
116
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embedding generation for semantic similarity\n * Uses local transformers.js - no API key required!\n *\n * `@xenova/transformers` is an OPTIONAL dependency. The module is loaded\n * dynamically inside `initializeEmbeddings()` so the rest of this file is\n * importable even when transformers.js is absent (e.g. when consumers\n * pass `npm install --omit=optional`). Code paths that don't call\n * `computeEmbedding()` continue to work without ever loading the module.\n */\n\nimport type { pipeline as Pipeline, env as Env, FeatureExtractionPipeline } from '@xenova/transformers';\nimport { loadConfig } from './config.js';\n\n// Cached references resolved at first call to initializeEmbeddings(). Types\n// are imported as `type-only` so TypeScript can typecheck the file without\n// requiring @xenova/transformers to be installed at build time — the actual\n// runtime import is dynamic below.\nlet pipeline: typeof Pipeline | null = null;\nlet env: typeof Env | null = null;\n\nlet embeddingPipeline: FeatureExtractionPipeline | null = null;\nlet initializationPromise: Promise<void> | null = null;\nconst embeddingCache = new Map<string, Float32Array>();\n// MEMORY LEAK FIX: Track TTL timers so they can be cleaned up\nconst embeddingTimers = new Map<string, NodeJS.Timeout>();\n\n/**\n * Initialize the embedding pipeline (lazy load)\n * RACE CONDITION FIX: Use promise-based initialization instead of busy-wait\n */\nasync function initializeEmbeddings(): Promise<void> {\n // Already initialized\n if (embeddingPipeline) return;\n\n // Initialization in progress - await existing promise\n if (initializationPromise) {\n return initializationPromise;\n }\n\n // Detect npx environment (known transformer initialization issues)\n const isNpxEnv = process.env.npm_lifecycle_event === 'npx' ||\n process.env.npm_execpath?.includes('npx') ||\n process.cwd().includes('/_npx/') ||\n process.cwd().includes('\\\\_npx\\\\');\n\n if (isNpxEnv && !process.env.FORCE_TRANSFORMERS) {\n console.log('[Embeddings] NPX environment detected - using hash-based embeddings');\n console.log('[Embeddings] For semantic search, install globally: npm install -g claude-flow');\n return;\n }\n\n // RACE CONDITION FIX: Create promise for concurrent callers to await\n initializationPromise = (async () => {\n // Optional-dep load: try to import @xenova/transformers. If absent,\n // emit a clear warning and let callers fall back to hash-based embeddings.\n if (!pipeline || !env) {\n try {\n const transformers = await import('@xenova/transformers');\n pipeline = transformers.pipeline;\n env = transformers.env;\n // Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)\n // The native ONNX runtime causes \"DefaultLogger not registered\" errors in Node.js\n env.backends.onnx.wasm.proxy = false; // Disable ONNX runtime proxy\n env.backends.onnx.wasm.numThreads = 1; // Single thread for stability\n } catch (err: unknown) {\n console.warn('[Embeddings] @xenova/transformers not installed (optional dependency).');\n console.warn('[Embeddings] Install with: npm install @xenova/transformers');\n console.warn('[Embeddings] Falling back to hash-based embeddings');\n initializationPromise = null;\n return;\n }\n }\n\n console.log('[Embeddings] Initializing local embedding model (Xenova/all-MiniLM-L6-v2)...');\n console.log('[Embeddings] First run will download ~23MB model...');\n\n try {\n // `pipeline('feature-extraction', ...)` returns a union; narrow to\n // FeatureExtractionPipeline so call-sites can use .pooling / .normalize.\n embeddingPipeline = (await pipeline(\n 'feature-extraction',\n 'Xenova/all-MiniLM-L6-v2',\n { quantized: true } // Smaller, faster\n )) as FeatureExtractionPipeline;\n console.log('[Embeddings] Local model ready! (384 dimensions)');\n } catch (error: unknown) {\n const msg = error instanceof Error ? error.message : String(error);\n console.error('[Embeddings] Failed to initialize:', msg);\n console.warn('[Embeddings] Falling back to hash-based embeddings');\n // Reset promise so retry is possible\n initializationPromise = null;\n }\n })();\n\n return initializationPromise;\n}\n\n/**\n * Compute embedding for text using local model\n */\nexport async function computeEmbedding(text: string): Promise<Float32Array> {\n const config = loadConfig();\n\n // Check cache\n const cacheKey = `local:${text}`;\n if (embeddingCache.has(cacheKey)) {\n return embeddingCache.get(cacheKey)!;\n }\n\n let embedding: Float32Array;\n\n // Initialize if needed\n await initializeEmbeddings();\n\n if (embeddingPipeline) {\n try {\n // Use transformers.js for real embeddings\n const output = await embeddingPipeline(text, {\n pooling: 'mean',\n normalize: true\n });\n // output.data is a Tensor.data typed-array union; cast to a Float32-\n // compatible source. The model is feature-extraction with normalize:true\n // so the underlying buffer is always Float32 at runtime.\n embedding = new Float32Array(output.data as unknown as ArrayLike<number>);\n } catch (error: unknown) {\n const msg = error instanceof Error ? error.message : String(error);\n console.error('[Embeddings] Generation failed:', msg);\n embedding = hashEmbed(text, 384); // Fallback\n }\n } else {\n // Fallback to hash-based embeddings\n const dims = config?.embeddings?.dimensions || 384;\n embedding = hashEmbed(text, dims);\n }\n\n // MEMORY LEAK FIX: Clear existing timer if key exists\n const existingTimer = embeddingTimers.get(cacheKey);\n if (existingTimer) {\n clearTimeout(existingTimer);\n embeddingTimers.delete(cacheKey);\n }\n\n // Cache with LRU (limit 1000 entries)\n // PERFORMANCE FIX: Use proper LRU by tracking access order\n if (embeddingCache.size >= 1000) {\n // Find and remove oldest entry (first key in iteration order)\n const firstKey = embeddingCache.keys().next().value;\n if (firstKey) {\n embeddingCache.delete(firstKey);\n // Also clear its timer\n const timer = embeddingTimers.get(firstKey);\n if (timer) {\n clearTimeout(timer);\n embeddingTimers.delete(firstKey);\n }\n }\n }\n embeddingCache.set(cacheKey, embedding);\n\n // Set TTL for cache entry with tracked timer\n const ttl = config?.embeddings?.cache_ttl_seconds || 3600;\n const timerId = setTimeout(() => {\n embeddingCache.delete(cacheKey);\n embeddingTimers.delete(cacheKey);\n }, ttl * 1000);\n\n // MEMORY LEAK FIX: Track timer for cleanup\n embeddingTimers.set(cacheKey, timerId);\n\n return embedding;\n}\n\n/**\n * Batch compute embeddings (more efficient)\n */\nexport async function computeEmbeddingBatch(texts: string[]): Promise<Float32Array[]> {\n return Promise.all(texts.map(text => computeEmbedding(text)));\n}\n\n/**\n * Get embedding dimensions\n */\nexport function getEmbeddingDimensions(): number {\n return 384; // all-MiniLM-L6-v2 uses 384 dimensions\n}\n\n/**\n * Deterministic hash-based embedding (fallback)\n */\nfunction hashEmbed(text: string, dims: number): Float32Array {\n const hash = simpleHash(text);\n const vec = new Float32Array(dims);\n\n // Generate deterministic pseudo-random vector from hash\n for (let i = 0; i < dims; i++) {\n vec[i] = Math.sin(hash * (i + 1) * 0.01) + Math.cos(hash * i * 0.02);\n }\n\n return normalize(vec);\n}\n\n/**\n * Simple string hash function\n */\nfunction simpleHash(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash) + str.charCodeAt(i);\n hash |= 0;\n }\n return Math.abs(hash);\n}\n\n/**\n * Normalize vector to unit length\n */\nfunction normalize(vec: Float32Array): Float32Array {\n let mag = 0;\n for (let i = 0; i < vec.length; i++) {\n mag += vec[i] * vec[i];\n }\n mag = Math.sqrt(mag);\n\n if (mag === 0) return vec;\n\n for (let i = 0; i < vec.length; i++) {\n vec[i] /= mag;\n }\n return vec;\n}\n\n/**\n * Clear embedding cache\n * MEMORY LEAK FIX: Also clear all TTL timers\n */\nexport function clearEmbeddingCache(): void {\n // Clear all timers first to prevent memory leaks\n for (const timer of embeddingTimers.values()) {\n clearTimeout(timer);\n }\n embeddingTimers.clear();\n embeddingCache.clear();\n}\n"]}
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embedding generation for semantic similarity\n * Uses local transformers.js - no API key required!\n */\n\nimport { pipeline, env } from '@xenova/transformers';\nimport { loadConfig } from './config.js';\n\n// Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)\n// The native ONNX runtime causes \"DefaultLogger not registered\" errors in Node.js\nenv.backends.onnx.wasm.proxy = false; // Disable ONNX runtime proxy\nenv.backends.onnx.wasm.numThreads = 1; // Single thread for stability\n\nlet embeddingPipeline: any = null;\nlet initializationPromise: Promise<void> | null = null;\nconst embeddingCache = new Map<string, Float32Array>();\n// MEMORY LEAK FIX: Track TTL timers so they can be cleaned up\nconst embeddingTimers = new Map<string, NodeJS.Timeout>();\n\n/**\n * Initialize the embedding pipeline (lazy load)\n * RACE CONDITION FIX: Use promise-based initialization instead of busy-wait\n */\nasync function initializeEmbeddings(): Promise<void> {\n // Already initialized\n if (embeddingPipeline) return;\n\n // Initialization in progress - await existing promise\n if (initializationPromise) {\n return initializationPromise;\n }\n\n // Detect npx environment (known transformer initialization issues)\n const isNpxEnv = process.env.npm_lifecycle_event === 'npx' ||\n process.env.npm_execpath?.includes('npx') ||\n process.cwd().includes('/_npx/') ||\n process.cwd().includes('\\\\_npx\\\\');\n\n if (isNpxEnv && !process.env.FORCE_TRANSFORMERS) {\n console.log('[Embeddings] NPX environment detected - using hash-based embeddings');\n console.log('[Embeddings] For semantic search, install globally: npm install -g claude-flow');\n return;\n }\n\n // RACE CONDITION FIX: Create promise for concurrent callers to await\n initializationPromise = (async () => {\n console.log('[Embeddings] Initializing local embedding model (Xenova/all-MiniLM-L6-v2)...');\n console.log('[Embeddings] First run will download ~23MB model...');\n\n try {\n embeddingPipeline = await pipeline(\n 'feature-extraction',\n 'Xenova/all-MiniLM-L6-v2',\n { quantized: true } // Smaller, faster\n );\n console.log('[Embeddings] Local model ready! (384 dimensions)');\n } catch (error: any) {\n console.error('[Embeddings] Failed to initialize:', error?.message || error);\n console.warn('[Embeddings] Falling back to hash-based embeddings');\n // Reset promise so retry is possible\n initializationPromise = null;\n }\n })();\n\n return initializationPromise;\n}\n\n/**\n * Compute embedding for text using local model\n */\nexport async function computeEmbedding(text: string): Promise<Float32Array> {\n const config = loadConfig();\n\n // Check cache\n const cacheKey = `local:${text}`;\n if (embeddingCache.has(cacheKey)) {\n return embeddingCache.get(cacheKey)!;\n }\n\n let embedding: Float32Array;\n\n // Initialize if needed\n await initializeEmbeddings();\n\n if (embeddingPipeline) {\n try {\n // Use transformers.js for real embeddings\n const output = await embeddingPipeline(text, {\n pooling: 'mean',\n normalize: true\n });\n embedding = new Float32Array(output.data);\n } catch (error: any) {\n console.error('[Embeddings] Generation failed:', error?.message || error);\n embedding = hashEmbed(text, 384); // Fallback\n }\n } else {\n // Fallback to hash-based embeddings\n const dims = config?.embeddings?.dimensions || 384;\n embedding = hashEmbed(text, dims);\n }\n\n // MEMORY LEAK FIX: Clear existing timer if key exists\n const existingTimer = embeddingTimers.get(cacheKey);\n if (existingTimer) {\n clearTimeout(existingTimer);\n embeddingTimers.delete(cacheKey);\n }\n\n // Cache with LRU (limit 1000 entries)\n // PERFORMANCE FIX: Use proper LRU by tracking access order\n if (embeddingCache.size >= 1000) {\n // Find and remove oldest entry (first key in iteration order)\n const firstKey = embeddingCache.keys().next().value;\n if (firstKey) {\n embeddingCache.delete(firstKey);\n // Also clear its timer\n const timer = embeddingTimers.get(firstKey);\n if (timer) {\n clearTimeout(timer);\n embeddingTimers.delete(firstKey);\n }\n }\n }\n embeddingCache.set(cacheKey, embedding);\n\n // Set TTL for cache entry with tracked timer\n const ttl = config?.embeddings?.cache_ttl_seconds || 3600;\n const timerId = setTimeout(() => {\n embeddingCache.delete(cacheKey);\n embeddingTimers.delete(cacheKey);\n }, ttl * 1000);\n\n // MEMORY LEAK FIX: Track timer for cleanup\n embeddingTimers.set(cacheKey, timerId);\n\n return embedding;\n}\n\n/**\n * Batch compute embeddings (more efficient)\n */\nexport async function computeEmbeddingBatch(texts: string[]): Promise<Float32Array[]> {\n return Promise.all(texts.map(text => computeEmbedding(text)));\n}\n\n/**\n * Get embedding dimensions\n */\nexport function getEmbeddingDimensions(): number {\n return 384; // all-MiniLM-L6-v2 uses 384 dimensions\n}\n\n/**\n * Deterministic hash-based embedding (fallback)\n */\nfunction hashEmbed(text: string, dims: number): Float32Array {\n const hash = simpleHash(text);\n const vec = new Float32Array(dims);\n\n // Generate deterministic pseudo-random vector from hash\n for (let i = 0; i < dims; i++) {\n vec[i] = Math.sin(hash * (i + 1) * 0.01) + Math.cos(hash * i * 0.02);\n }\n\n return normalize(vec);\n}\n\n/**\n * Simple string hash function\n */\nfunction simpleHash(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash) + str.charCodeAt(i);\n hash |= 0;\n }\n return Math.abs(hash);\n}\n\n/**\n * Normalize vector to unit length\n */\nfunction normalize(vec: Float32Array): Float32Array {\n let mag = 0;\n for (let i = 0; i < vec.length; i++) {\n mag += vec[i] * vec[i];\n }\n mag = Math.sqrt(mag);\n\n if (mag === 0) return vec;\n\n for (let i = 0; i < vec.length; i++) {\n vec[i] /= mag;\n }\n return vec;\n}\n\n/**\n * Clear embedding cache\n * MEMORY LEAK FIX: Also clear all TTL timers\n */\nexport function clearEmbeddingCache(): void {\n // Clear all timers first to prevent memory leaks\n for (const timer of embeddingTimers.values()) {\n clearTimeout(timer);\n }\n embeddingTimers.clear();\n embeddingCache.clear();\n}\n"]}
@@ -36,8 +36,8 @@ export type PluginConfig = LocalPluginConfig | NpmPluginConfig | RemotePluginCon
36
36
  export interface PluginTool {
37
37
  name: string;
38
38
  description: string;
39
- inputSchema: Record<string, any>;
40
- handler: (input: any) => Promise<any>;
39
+ inputSchema: Record<string, unknown>;
40
+ handler: (input: unknown) => Promise<unknown>;
41
41
  }
42
42
  /**
43
43
  * Loaded plugin instance
@@ -77,7 +77,7 @@ export declare function getAllPluginTools(): PluginTool[];
77
77
  /**
78
78
  * Execute a plugin tool
79
79
  */
80
- export declare function executePluginTool(toolName: string, input: any): Promise<any>;
80
+ export declare function executePluginTool(toolName: string, input: unknown): Promise<unknown>;
81
81
  /**
82
82
  * Load plugins from SDK configuration
83
83
  */
@@ -85,7 +85,7 @@ export declare function loadPluginsFromConfig(configs: PluginConfig[]): Promise<
85
85
  /**
86
86
  * Get plugin configuration for SDK query options
87
87
  */
88
- export declare function getPluginsForSdk(): any[];
88
+ export declare function getPluginsForSdk(): PluginConfig[];
89
89
  /**
90
90
  * Create an inline plugin helper
91
91
  */
@@ -96,7 +96,7 @@ export declare function createPlugin(name: string, tools: PluginTool[]): LoadedP
96
96
  export declare function defineTool<T>(config: {
97
97
  name: string;
98
98
  description: string;
99
- inputSchema: Record<string, any>;
100
- handler: (input: T) => Promise<any>;
99
+ inputSchema: Record<string, unknown>;
100
+ handler: (input: T) => Promise<unknown>;
101
101
  }): PluginTool;
102
102
  //# sourceMappingURL=plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/sdk/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAmBnF;AAuJD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAOxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAQhD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAYlF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAY5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,EAAE,CAoBxC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,YAAY,CAE5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrC,GAAG,UAAU,CAOb"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/sdk/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyCH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAmBnF;AAyJD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAOxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAQhD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAY1F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAY5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CAoBjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,YAAY,CAE5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC,GAAG,UAAU,CAOb"}
@@ -10,6 +10,41 @@
10
10
  import { logger } from "../utils/logger.js";
11
11
  import { existsSync, readFileSync } from "fs";
12
12
  import { join, resolve } from "path";
13
+ /**
14
+ * Assert that a URL is safe to fetch (CWE-918 SSRF mitigation).
15
+ * Only HTTPS URLs pointing to non-private hosts are allowed.
16
+ */
17
+ function assertSafeUrl(rawUrl) {
18
+ let parsed;
19
+ try {
20
+ parsed = new URL(rawUrl);
21
+ }
22
+ catch {
23
+ throw new Error(`Invalid plugin URL: ${rawUrl}`);
24
+ }
25
+ if (parsed.protocol !== 'https:') {
26
+ throw new Error(`Plugin URL must use HTTPS (got ${parsed.protocol}): ${rawUrl}`);
27
+ }
28
+ const hostname = parsed.hostname.toLowerCase();
29
+ // Block RFC-1918, link-local, loopback, and metadata service addresses
30
+ const privatePatterns = [
31
+ /^localhost$/,
32
+ /^127\./,
33
+ /^10\./,
34
+ /^172\.(1[6-9]|2\d|3[01])\./,
35
+ /^192\.168\./,
36
+ /^169\.254\./, // link-local (AWS metadata, etc.)
37
+ /^::1$/,
38
+ /^fc00:/,
39
+ /^fe80:/,
40
+ /^0\.0\.0\.0$/,
41
+ ];
42
+ for (const pattern of privatePatterns) {
43
+ if (pattern.test(hostname)) {
44
+ throw new Error(`Plugin URL targets a private/internal address: ${rawUrl}`);
45
+ }
46
+ }
47
+ }
13
48
  // Plugin registry
14
49
  const loadedPlugins = new Map();
15
50
  /**
@@ -105,6 +140,8 @@ async function loadNpmPlugin(config) {
105
140
  */
106
141
  async function loadRemotePlugin(config) {
107
142
  try {
143
+ // Validate URL before fetching to prevent SSRF (CWE-918)
144
+ assertSafeUrl(config.url);
108
145
  const response = await fetch(config.url);
109
146
  if (!response.ok) {
110
147
  throw new Error(`HTTP ${response.status}: ${response.statusText}`);