gitextract__hz1lxah/ ├── .claude/ │ └── skills/ │ ├── agent-session-monitor/ │ │ ├── QUICKSTART.md │ │ ├── README.md │ │ ├── SKILL.md │ │ ├── example/ │ │ │ ├── clawdbot_demo.py │ │ │ ├── demo.sh │ │ │ ├── demo_v2.sh │ │ │ ├── test_access.log │ │ │ ├── test_access_v2.log │ │ │ └── test_rotation.sh │ │ ├── main.py │ │ └── scripts/ │ │ ├── cli.py │ │ └── webserver.py │ ├── higress-auto-router/ │ │ └── SKILL.md │ ├── higress-daily-report/ │ │ ├── README.md │ │ ├── SKILL.md │ │ └── scripts/ │ │ └── generate-report.sh │ ├── higress-openclaw-integration/ │ │ ├── SKILL.md │ │ ├── references/ │ │ │ └── TROUBLESHOOTING.md │ │ └── scripts/ │ │ ├── detect-region.sh │ │ └── plugin/ │ │ ├── README.md │ │ ├── index.ts │ │ ├── openclaw.plugin.json │ │ └── package.json │ ├── higress-wasm-go-plugin/ │ │ ├── SKILL.md │ │ └── references/ │ │ ├── advanced-patterns.md │ │ ├── http-client.md │ │ ├── local-testing.md │ │ └── redis-client.md │ └── nginx-to-higress-migration/ │ ├── README.md │ ├── README_CN.md │ ├── SKILL.md │ ├── references/ │ │ ├── annotation-mapping.md │ │ ├── builtin-plugins.md │ │ ├── plugin-deployment.md │ │ └── snippet-patterns.md │ └── scripts/ │ ├── analyze-ingress.sh │ ├── generate-migration-test.sh │ ├── generate-plugin-scaffold.sh │ └── install-harbor.sh ├── .cursor/ │ └── rules/ │ └── plugin-development.mdc ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── FEATURE_REQUEST.md │ │ ├── config.yml │ │ └── non--crash-security--bug.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── build-and-push-wasm-plugin-image.yaml │ ├── build-and-test-plugin.yaml │ ├── build-and-test.yaml │ ├── build-image-and-push.yaml │ ├── codeql-analysis.yaml │ ├── deploy-standalone-to-oss.yaml │ ├── deploy-to-oss.yaml │ ├── generate-release-notes.yaml │ ├── helm-docs.yaml │ ├── license-checker.yaml │ ├── release-crd.yaml │ ├── release-hgctl.yaml │ ├── sync-crds.yaml │ ├── sync-skills-to-oss.yaml │ ├── translate-readme.yaml │ ├── translate-test.yml │ └── wasm-plugin-unit-test.yml ├── .gitignore ├── .gitmodules ├── .licenserc.yaml ├── ADOPTERS.md ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING_CN.md ├── CONTRIBUTING_EN.md ├── CONTRIBUTING_JP.md ├── DEP_VERSION ├── LICENSE ├── Makefile ├── Makefile.core.mk ├── Makefile.overrides.mk ├── README.md ├── README_JP.md ├── README_ZH.md ├── SECURITY.md ├── VERSION ├── api/ │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cue.yaml │ ├── extensions/ │ │ └── v1alpha1/ │ │ ├── wasmplugin.pb.go │ │ ├── wasmplugin.proto │ │ ├── wasmplugin_deepcopy.gen.go │ │ └── wasmplugin_json.gen.go │ ├── gen.sh │ ├── kubernetes/ │ │ └── customresourcedefinitions.gen.yaml │ ├── networking/ │ │ └── v1/ │ │ ├── http_2_rpc.pb.go │ │ ├── http_2_rpc.proto │ │ ├── http_2_rpc_deepcopy.gen.go │ │ ├── http_2_rpc_json.gen.go │ │ ├── mcp_bridge.pb.go │ │ ├── mcp_bridge.proto │ │ ├── mcp_bridge_deepcopy.gen.go │ │ └── mcp_bridge_json.gen.go │ └── protocol.yaml ├── client/ │ ├── Makefile │ ├── header.go.txt │ └── pkg/ │ ├── apis/ │ │ ├── extensions/ │ │ │ └── v1alpha1/ │ │ │ ├── doc.go │ │ │ ├── register.gen.go │ │ │ ├── types.gen.go │ │ │ └── zz_generated.deepcopy.gen.go │ │ └── networking/ │ │ └── v1/ │ │ ├── doc.go │ │ ├── register.gen.go │ │ ├── types.gen.go │ │ └── zz_generated.deepcopy.gen.go │ ├── applyconfiguration/ │ │ ├── extensions/ │ │ │ └── v1alpha1/ │ │ │ └── wasmplugin.go │ │ ├── internal/ │ │ │ └── internal.go │ │ ├── meta/ │ │ │ └── v1/ │ │ │ ├── managedfieldsentry.go │ │ │ ├── objectmeta.go │ │ │ ├── ownerreference.go │ │ │ └── typemeta.go │ │ ├── networking/ │ │ │ └── v1/ │ │ │ ├── http2rpc.go │ │ │ └── mcpbridge.go │ │ └── utils.go │ ├── clientset/ │ │ └── versioned/ │ │ ├── clientset.gen.go │ │ ├── fake/ │ │ │ ├── clientset_generated.gen.go │ │ │ ├── doc.go │ │ │ └── register.gen.go │ │ ├── scheme/ │ │ │ ├── doc.go │ │ │ └── register.gen.go │ │ └── typed/ │ │ ├── extensions/ │ │ │ └── v1alpha1/ │ │ │ ├── doc.go │ │ │ ├── extensions_client.gen.go │ │ │ ├── fake/ │ │ │ │ ├── doc.go │ │ │ │ ├── fake_extensions_client.gen.go │ │ │ │ └── fake_wasmplugin.gen.go │ │ │ ├── generated_expansion.gen.go │ │ │ └── wasmplugin.gen.go │ │ └── networking/ │ │ └── v1/ │ │ ├── doc.go │ │ ├── fake/ │ │ │ ├── doc.go │ │ │ ├── fake_http2rpc.gen.go │ │ │ ├── fake_mcpbridge.gen.go │ │ │ └── fake_networking_client.gen.go │ │ ├── generated_expansion.gen.go │ │ ├── http2rpc.gen.go │ │ ├── mcpbridge.gen.go │ │ └── networking_client.gen.go │ ├── informers/ │ │ └── externalversions/ │ │ ├── extensions/ │ │ │ ├── interface.gen.go │ │ │ └── v1alpha1/ │ │ │ ├── interface.gen.go │ │ │ └── wasmplugin.gen.go │ │ ├── factory.gen.go │ │ ├── generic.gen.go │ │ ├── internalinterfaces/ │ │ │ └── factory_interfaces.gen.go │ │ └── networking/ │ │ ├── interface.gen.go │ │ └── v1/ │ │ ├── http2rpc.gen.go │ │ ├── interface.gen.go │ │ └── mcpbridge.gen.go │ └── listers/ │ ├── extensions/ │ │ └── v1alpha1/ │ │ ├── expansion_generated.gen.go │ │ └── wasmplugin.gen.go │ └── networking/ │ └── v1/ │ ├── expansion_generated.gen.go │ ├── http2rpc.gen.go │ └── mcpbridge.gen.go ├── cmd/ │ └── higress/ │ └── main.go ├── codecov.yml ├── docker/ │ ├── Dockerfile.base │ ├── Dockerfile.higress │ ├── docker-copy.sh │ └── docker.mk ├── docs/ │ └── architecture.md ├── get_helm.sh ├── go.mod ├── go.sum ├── helm/ │ ├── core/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── charts/ │ │ │ └── redis/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates/ │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── configmap.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── statefulset.yaml │ │ │ └── values.yaml │ │ ├── crds/ │ │ │ ├── customresourcedefinitions.gen.yaml │ │ │ ├── customresourcedefinitions.gen_lt1.16.yaml │ │ │ └── istio-envoyfilter.yaml │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── _pod.tpl │ │ │ ├── clusterrole.yaml │ │ │ ├── configmap.yaml │ │ │ ├── controller-clusterrole.yaml │ │ │ ├── controller-clusterrolebinding.yaml │ │ │ ├── controller-deployment.yaml │ │ │ ├── controller-role.yaml │ │ │ ├── controller-rolebinding.yaml │ │ │ ├── controller-service.yaml │ │ │ ├── controller-serviceaccont.yaml │ │ │ ├── daemonset.yaml │ │ │ ├── deployment.yaml │ │ │ ├── fallback-envoyfilter.yaml │ │ │ ├── hpa.yaml │ │ │ ├── ingressclass.yaml │ │ │ ├── plugin-server-deployment.yaml │ │ │ ├── plugin-server-service.yaml │ │ │ ├── podmonitor.yaml │ │ │ ├── promtail.yaml │ │ │ ├── role.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ └── values.yaml │ └── higress/ │ ├── Chart.yaml │ ├── LICENSE │ ├── README.md │ ├── README.md.gotmpl │ └── README.zh.md ├── hgctl/ │ ├── cmd/ │ │ └── hgctl/ │ │ ├── config/ │ │ │ ├── gateway_config.go │ │ │ ├── gateway_config_test.go │ │ │ └── testdata/ │ │ │ └── config/ │ │ │ ├── input/ │ │ │ │ └── in.all.json │ │ │ └── output/ │ │ │ ├── out.all.json │ │ │ ├── out.all.yaml │ │ │ ├── out.bootstrap.json │ │ │ ├── out.bootstrap.yaml │ │ │ ├── out.cluster.json │ │ │ ├── out.cluster.yaml │ │ │ ├── out.endpoints.json │ │ │ ├── out.endpoints.yaml │ │ │ ├── out.listener.json │ │ │ ├── out.listener.yaml │ │ │ ├── out.route.json │ │ │ └── out.route.yaml │ │ └── main.go │ ├── go.mod │ ├── go.sum │ └── pkg/ │ ├── agent/ │ │ ├── README.md │ │ ├── agent.go │ │ ├── base.go │ │ ├── common/ │ │ │ └── base.go │ │ ├── config.go │ │ ├── core.go │ │ ├── deploy.go │ │ ├── mcp.go │ │ ├── new.go │ │ ├── prompt/ │ │ │ ├── agent_guide.md │ │ │ └── base.go │ │ ├── services/ │ │ │ ├── client.go │ │ │ ├── service.go │ │ │ └── utils.go │ │ ├── types.go │ │ └── utils.go │ ├── code_debug.go │ ├── common.go │ ├── completion.go │ ├── config_bootstrap.go │ ├── config_cluster.go │ ├── config_cmd.go │ ├── config_endpoint.go │ ├── config_listener.go │ ├── config_route.go │ ├── dashboard.go │ ├── docker/ │ │ └── compose.go │ ├── helm/ │ │ ├── common.go │ │ ├── name/ │ │ │ └── name.go │ │ ├── object/ │ │ │ ├── objects.go │ │ │ └── objects_test.go │ │ ├── profile.go │ │ ├── render.go │ │ └── tpath/ │ │ ├── tree.go │ │ ├── tree_test.go │ │ ├── util.go │ │ └── util_test.go │ ├── install.go │ ├── installer/ │ │ ├── component.go │ │ ├── gateway_api.go │ │ ├── helm_agent.go │ │ ├── higress.go │ │ ├── installer.go │ │ ├── installer_docker.go │ │ ├── installer_k8s.go │ │ ├── istio.go │ │ ├── profile_store.go │ │ ├── server_info.go │ │ ├── standalone.go │ │ └── standalone_agent.go │ ├── kubernetes/ │ │ ├── client.go │ │ ├── common.go │ │ ├── port-forwarder.go │ │ └── wasmplugin.go │ ├── manifest.go │ ├── manifests/ │ │ ├── agent/ │ │ │ ├── agents/ │ │ │ │ ├── agentscope-test-runner.md │ │ │ │ ├── openapi-generator.md │ │ │ │ └── openapi-to-mcp-generator.md │ │ │ ├── commands/ │ │ │ │ └── gen-agent.md │ │ │ └── template/ │ │ │ ├── agent.tmpl │ │ │ ├── agentrun.tmpl │ │ │ ├── agentrun_s.tmpl │ │ │ ├── agentscope.tmpl │ │ │ └── toolkit.tmpl │ │ ├── gatewayapi/ │ │ │ └── experimental-install.yaml │ │ ├── istiobase/ │ │ │ ├── Chart.yaml │ │ │ ├── README.md │ │ │ ├── crds/ │ │ │ │ ├── crd-all.gen.yaml │ │ │ │ └── crd-operator.yaml │ │ │ ├── templates/ │ │ │ │ ├── NOTES.txt │ │ │ │ ├── clusterrole.yaml │ │ │ │ ├── clusterrolebinding.yaml │ │ │ │ ├── crds.yaml │ │ │ │ ├── default.yaml │ │ │ │ ├── endpoints.yaml │ │ │ │ ├── reader-serviceaccount.yaml │ │ │ │ ├── role.yaml │ │ │ │ ├── rolebinding.yaml │ │ │ │ ├── serviceaccount.yaml │ │ │ │ └── services.yaml │ │ │ └── values.yaml │ │ ├── manifest.go │ │ └── profiles/ │ │ ├── _all.yaml │ │ ├── k8s.yaml │ │ ├── local-docker.yaml │ │ └── local-k8s.yaml │ ├── plugin/ │ │ ├── build/ │ │ │ ├── build.go │ │ │ ├── signal.go │ │ │ ├── signal_windows.go │ │ │ └── templates.go │ │ ├── config/ │ │ │ ├── config.go │ │ │ ├── create.go │ │ │ ├── edit.go │ │ │ └── templates.go │ │ ├── init/ │ │ │ ├── init.go │ │ │ └── templates.go │ │ ├── install/ │ │ │ ├── asker.go │ │ │ └── install.go │ │ ├── ls/ │ │ │ └── ls.go │ │ ├── option/ │ │ │ ├── option.go │ │ │ └── template.go │ │ ├── plugin.go │ │ ├── test/ │ │ │ ├── clean.go │ │ │ ├── create.go │ │ │ ├── ls.go │ │ │ ├── start.go │ │ │ ├── stop.go │ │ │ ├── templates.go │ │ │ └── test.go │ │ ├── types/ │ │ │ ├── annotation.go │ │ │ ├── marshal.go │ │ │ ├── meta.go │ │ │ ├── model_parser.go │ │ │ ├── model_parser_test.go │ │ │ ├── schema.go │ │ │ └── testdata/ │ │ │ ├── doc_tag/ │ │ │ │ └── main.go │ │ │ └── types/ │ │ │ ├── ext/ │ │ │ │ ├── ext.go │ │ │ │ └── nested/ │ │ │ │ └── nested.go │ │ │ └── main.go │ │ ├── uninstall/ │ │ │ └── uninstall.go │ │ └── utils/ │ │ ├── common.go │ │ ├── debugger.go │ │ ├── printer.go │ │ └── survey_wrapper.go │ ├── profile.go │ ├── profile_dump.go │ ├── profile_list.go │ ├── root.go │ ├── uninstall.go │ ├── upgrade.go │ ├── util/ │ │ ├── env.go │ │ ├── filter.go │ │ ├── filter_test.go │ │ ├── http_fetcher.go │ │ ├── path.go │ │ ├── path_test.go │ │ ├── reflect.go │ │ ├── util.go │ │ ├── yaml.go │ │ └── yaml_test.go │ ├── utils.go │ └── version.go ├── pkg/ │ ├── bootstrap/ │ │ ├── server.go │ │ └── server_test.go │ ├── cert/ │ │ ├── certmgr.go │ │ ├── config.go │ │ ├── config_test.go │ │ ├── controller.go │ │ ├── ingress.go │ │ ├── log.go │ │ ├── secret.go │ │ ├── server.go │ │ ├── storage.go │ │ ├── storage_test.go │ │ └── util.go │ ├── cmd/ │ │ ├── options/ │ │ │ └── global.go │ │ ├── root.go │ │ ├── server.go │ │ ├── server_test.go │ │ ├── version/ │ │ │ └── version.go │ │ └── version.go │ ├── common/ │ │ ├── protocol.go │ │ ├── proxy.go │ │ └── symbol.go │ ├── config/ │ │ ├── constants/ │ │ │ └── constants.go │ │ └── envs.go │ ├── ingress/ │ │ ├── config/ │ │ │ ├── ingress_config.go │ │ │ ├── ingress_config_test.go │ │ │ ├── ingress_template.go │ │ │ ├── ingress_template_test.go │ │ │ ├── kingress_config.go │ │ │ ├── kingress_config_test.go │ │ │ ├── secret_config_mgr.go │ │ │ └── secret_config_mgr_test.go │ │ ├── kube/ │ │ │ ├── annotations/ │ │ │ │ ├── annotations.go │ │ │ │ ├── annotations_test.go │ │ │ │ ├── auth.go │ │ │ │ ├── canary.go │ │ │ │ ├── canary_test.go │ │ │ │ ├── cors.go │ │ │ │ ├── cors_test.go │ │ │ │ ├── default_backend.go │ │ │ │ ├── default_backend_test.go │ │ │ │ ├── destination.go │ │ │ │ ├── destination_test.go │ │ │ │ ├── downstreamtls.go │ │ │ │ ├── downstreamtls_test.go │ │ │ │ ├── header_control.go │ │ │ │ ├── header_control_test.go │ │ │ │ ├── http2rpc.go │ │ │ │ ├── http2rpc_test.go │ │ │ │ ├── ignore_case.go │ │ │ │ ├── ignore_case_test.go │ │ │ │ ├── interface.go │ │ │ │ ├── ip_access_control.go │ │ │ │ ├── ip_access_control_test.go │ │ │ │ ├── loadbalance.go │ │ │ │ ├── loadbalance_test.go │ │ │ │ ├── local_rate_limit.go │ │ │ │ ├── local_rate_limit_test.go │ │ │ │ ├── match.go │ │ │ │ ├── match_test.go │ │ │ │ ├── mcpserver.go │ │ │ │ ├── mcpserver_test.go │ │ │ │ ├── mirror.go │ │ │ │ ├── mirror_test.go │ │ │ │ ├── parser.go │ │ │ │ ├── redirect.go │ │ │ │ ├── redirect_test.go │ │ │ │ ├── retry.go │ │ │ │ ├── retry_test.go │ │ │ │ ├── rewrite.go │ │ │ │ ├── rewrite_test.go │ │ │ │ ├── timeout.go │ │ │ │ ├── timeout_test.go │ │ │ │ ├── upstreamtls.go │ │ │ │ ├── upstreamtls_test.go │ │ │ │ ├── util.go │ │ │ │ └── util_test.go │ │ │ ├── common/ │ │ │ │ ├── controller.go │ │ │ │ ├── metrics.go │ │ │ │ ├── model.go │ │ │ │ ├── model_test.go │ │ │ │ ├── schema.go │ │ │ │ ├── tool.go │ │ │ │ └── tool_test.go │ │ │ ├── configmap/ │ │ │ │ ├── config.go │ │ │ │ ├── controller.go │ │ │ │ ├── global.go │ │ │ │ ├── global_test.go │ │ │ │ ├── gzip.go │ │ │ │ ├── gzip_test.go │ │ │ │ ├── mcp_server.go │ │ │ │ ├── mcp_server_test.go │ │ │ │ └── tracing.go │ │ │ ├── controller/ │ │ │ │ └── model.go │ │ │ ├── gateway/ │ │ │ │ ├── controller.go │ │ │ │ └── istio/ │ │ │ │ ├── backend_policies.go │ │ │ │ ├── conditions.go │ │ │ │ ├── conditions_test.go │ │ │ │ ├── context.go │ │ │ │ ├── controller.go │ │ │ │ ├── controller_test.go │ │ │ │ ├── conversion.go │ │ │ │ ├── conversion_test.go │ │ │ │ ├── deploymentcontroller.go │ │ │ │ ├── gateway_collection.go │ │ │ │ ├── gatewayclass.go │ │ │ │ ├── gatewayclass_collection.go │ │ │ │ ├── gatewayclass_test.go │ │ │ │ ├── inferencepool_collection.go │ │ │ │ ├── inferencepool_status_test.go │ │ │ │ ├── inferencepool_test.go │ │ │ │ ├── leak_test.go │ │ │ │ ├── references.go │ │ │ │ ├── references_collection.go │ │ │ │ ├── route_collections.go │ │ │ │ ├── status_test.go │ │ │ │ ├── supported_features.go │ │ │ │ └── testdata/ │ │ │ │ ├── backend-lb-policy.status.yaml.golden │ │ │ │ ├── backend-lb-policy.yaml │ │ │ │ ├── backend-lb-policy.yaml.golden │ │ │ │ ├── backend-tls-policy.status.yaml.golden │ │ │ │ ├── backend-tls-policy.yaml │ │ │ │ ├── backend-tls-policy.yaml.golden │ │ │ │ ├── benchmark-httproute.yaml │ │ │ │ ├── delegated.status.yaml.golden │ │ │ │ ├── delegated.yaml │ │ │ │ ├── delegated.yaml.golden │ │ │ │ ├── east-west-ambient.status.yaml.golden │ │ │ │ ├── east-west-ambient.yaml │ │ │ │ ├── east-west-ambient.yaml.golden │ │ │ │ ├── eastwest-labelport.status.yaml.golden │ │ │ │ ├── eastwest-labelport.yaml │ │ │ │ ├── eastwest-labelport.yaml.golden │ │ │ │ ├── eastwest-remote.status.yaml.golden │ │ │ │ ├── eastwest-remote.yaml │ │ │ │ ├── eastwest-remote.yaml.golden │ │ │ │ ├── eastwest-tlsoption.status.yaml.golden │ │ │ │ ├── eastwest-tlsoption.yaml │ │ │ │ ├── eastwest-tlsoption.yaml.golden │ │ │ │ ├── eastwest.status.yaml.golden │ │ │ │ ├── eastwest.yaml │ │ │ │ ├── eastwest.yaml.golden │ │ │ │ ├── grpc.status.yaml.golden │ │ │ │ ├── grpc.yaml │ │ │ │ ├── grpc.yaml.golden │ │ │ │ ├── http.status.yaml.golden │ │ │ │ ├── http.yaml │ │ │ │ ├── http.yaml.golden │ │ │ │ ├── invalid.status.yaml.golden │ │ │ │ ├── invalid.yaml │ │ │ │ ├── invalid.yaml.golden │ │ │ │ ├── isolation.status.yaml.golden │ │ │ │ ├── isolation.yaml │ │ │ │ ├── isolation.yaml.golden │ │ │ │ ├── listenerset-cross-namespace.status.yaml.golden │ │ │ │ ├── listenerset-cross-namespace.yaml │ │ │ │ ├── listenerset-cross-namespace.yaml.golden │ │ │ │ ├── listenerset-empty-listeners.status.yaml.golden │ │ │ │ ├── listenerset-empty-listeners.yaml │ │ │ │ ├── listenerset-empty-listeners.yaml.golden │ │ │ │ ├── listenerset-invalid.status.yaml.golden │ │ │ │ ├── listenerset-invalid.yaml │ │ │ │ ├── listenerset-invalid.yaml.golden │ │ │ │ ├── listenerset.status.yaml.golden │ │ │ │ ├── listenerset.yaml │ │ │ │ ├── listenerset.yaml.golden │ │ │ │ ├── mcs.status.yaml.golden │ │ │ │ ├── mcs.yaml │ │ │ │ ├── mcs.yaml.golden │ │ │ │ ├── mesh.status.yaml.golden │ │ │ │ ├── mesh.yaml │ │ │ │ ├── mesh.yaml.golden │ │ │ │ ├── mismatch.status.yaml.golden │ │ │ │ ├── mismatch.yaml │ │ │ │ ├── mismatch.yaml.golden │ │ │ │ ├── mix-backend-policy.status.yaml.golden │ │ │ │ ├── mix-backend-policy.yaml │ │ │ │ ├── mix-backend-policy.yaml.golden │ │ │ │ ├── multi-gateway.status.yaml.golden │ │ │ │ ├── multi-gateway.yaml │ │ │ │ ├── multi-gateway.yaml.golden │ │ │ │ ├── reference-policy-inferencepool.status.yaml.golden │ │ │ │ ├── reference-policy-inferencepool.yaml │ │ │ │ ├── reference-policy-inferencepool.yaml.golden │ │ │ │ ├── reference-policy-service.status.yaml.golden │ │ │ │ ├── reference-policy-service.yaml │ │ │ │ ├── reference-policy-service.yaml.golden │ │ │ │ ├── reference-policy-tcp.status.yaml.golden │ │ │ │ ├── reference-policy-tcp.yaml │ │ │ │ ├── reference-policy-tcp.yaml.golden │ │ │ │ ├── reference-policy-tls.status.yaml.golden │ │ │ │ ├── reference-policy-tls.yaml │ │ │ │ ├── reference-policy-tls.yaml.golden │ │ │ │ ├── route-binding.status.yaml.golden │ │ │ │ ├── route-binding.yaml │ │ │ │ ├── route-binding.yaml.golden │ │ │ │ ├── route-precedence.status.yaml.golden │ │ │ │ ├── route-precedence.yaml │ │ │ │ ├── route-precedence.yaml.golden │ │ │ │ ├── serviceentry.status.yaml.golden │ │ │ │ ├── serviceentry.yaml │ │ │ │ ├── serviceentry.yaml.golden │ │ │ │ ├── status.status.yaml.golden │ │ │ │ ├── status.yaml │ │ │ │ ├── status.yaml.golden │ │ │ │ ├── tcp.status.yaml.golden │ │ │ │ ├── tcp.yaml │ │ │ │ ├── tcp.yaml.golden │ │ │ │ ├── tls.status.yaml.golden │ │ │ │ ├── tls.yaml │ │ │ │ ├── tls.yaml.golden │ │ │ │ ├── valid-invalid-parent-ref.status.yaml.golden │ │ │ │ ├── valid-invalid-parent-ref.yaml │ │ │ │ ├── valid-invalid-parent-ref.yaml.golden │ │ │ │ ├── waypoint.status.yaml.golden │ │ │ │ ├── waypoint.yaml │ │ │ │ ├── waypoint.yaml.golden │ │ │ │ ├── weighted.status.yaml.golden │ │ │ │ ├── weighted.yaml │ │ │ │ ├── weighted.yaml.golden │ │ │ │ ├── zero.status.yaml.golden │ │ │ │ ├── zero.yaml │ │ │ │ └── zero.yaml.golden │ │ │ ├── http2rpc/ │ │ │ │ └── controller.go │ │ │ ├── ingress/ │ │ │ │ ├── controller.go │ │ │ │ ├── controller_test.go │ │ │ │ └── status.go │ │ │ ├── ingressv1/ │ │ │ │ ├── controller.go │ │ │ │ ├── controller_test.go │ │ │ │ └── status.go │ │ │ ├── kingress/ │ │ │ │ ├── controller.go │ │ │ │ ├── controller_test.go │ │ │ │ ├── resources/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── virtual_service.go │ │ │ │ │ └── virtual_service_test.go │ │ │ │ └── status.go │ │ │ ├── mcpbridge/ │ │ │ │ └── controller.go │ │ │ ├── mcpserver/ │ │ │ │ ├── model.go │ │ │ │ ├── provider.go │ │ │ │ └── provider_test.go │ │ │ ├── secret/ │ │ │ │ ├── controller.go │ │ │ │ └── controller_test.go │ │ │ ├── util/ │ │ │ │ ├── transformer.go │ │ │ │ ├── util.go │ │ │ │ └── util_test.go │ │ │ └── wasmplugin/ │ │ │ └── controller.go │ │ ├── log/ │ │ │ └── log.go │ │ ├── mcp/ │ │ │ ├── generator.go │ │ │ └── generator_test.go │ │ └── translation/ │ │ └── translation.go │ └── kube/ │ └── client.go ├── plugins/ │ ├── README.md │ ├── golang-filter/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_en.md │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ ├── mcp-server/ │ │ │ ├── README.md │ │ │ ├── README_en.md │ │ │ ├── config.go │ │ │ ├── filter.go │ │ │ ├── registry/ │ │ │ │ ├── nacos/ │ │ │ │ │ ├── nacos.go │ │ │ │ │ └── server.go │ │ │ │ ├── registry.go │ │ │ │ └── remote.go │ │ │ └── servers/ │ │ │ ├── gorm/ │ │ │ │ ├── db.go │ │ │ │ ├── server.go │ │ │ │ └── tools.go │ │ │ ├── higress/ │ │ │ │ ├── client.go │ │ │ │ ├── higress-api/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── README_en.md │ │ │ │ │ ├── server.go │ │ │ │ │ └── tools/ │ │ │ │ │ ├── ai_provider.go │ │ │ │ │ ├── ai_route.go │ │ │ │ │ ├── mcp_server.go │ │ │ │ │ ├── plugins/ │ │ │ │ │ │ ├── common.go │ │ │ │ │ │ ├── custom-response.go │ │ │ │ │ │ ├── request-block.go │ │ │ │ │ │ ├── types.go │ │ │ │ │ │ └── util.go │ │ │ │ │ ├── route.go │ │ │ │ │ └── service.go │ │ │ │ ├── higress-ops/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── README_en.md │ │ │ │ │ ├── client.go │ │ │ │ │ ├── server.go │ │ │ │ │ └── tools/ │ │ │ │ │ ├── client.go │ │ │ │ │ ├── envoy.go │ │ │ │ │ ├── istiod.go │ │ │ │ │ └── utils.go │ │ │ │ ├── nginx-migration/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── QUICKSTART.md │ │ │ │ │ ├── README.md │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── rag.json.example │ │ │ │ │ ├── go.mod │ │ │ │ │ ├── go.sum │ │ │ │ │ ├── integration/ │ │ │ │ │ │ ├── mcptools/ │ │ │ │ │ │ │ ├── adapter.go │ │ │ │ │ │ │ ├── context.go │ │ │ │ │ │ │ ├── lua_tools.go │ │ │ │ │ │ │ ├── nginx_tools.go │ │ │ │ │ │ │ ├── rag_integration.go │ │ │ │ │ │ │ └── tool_chain.go │ │ │ │ │ │ └── server.go │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── rag/ │ │ │ │ │ │ │ ├── client.go │ │ │ │ │ │ │ ├── config.go │ │ │ │ │ │ │ └── manager.go │ │ │ │ │ │ └── standalone/ │ │ │ │ │ │ └── server.go │ │ │ │ │ ├── mcp-tools.json │ │ │ │ │ ├── standalone/ │ │ │ │ │ │ ├── cmd/ │ │ │ │ │ │ │ └── main.go │ │ │ │ │ │ ├── config.go │ │ │ │ │ │ ├── server.go │ │ │ │ │ │ └── types.go │ │ │ │ │ └── tools/ │ │ │ │ │ ├── lua_converter.go │ │ │ │ │ ├── mcp_tools.go │ │ │ │ │ ├── nginx_parser.go │ │ │ │ │ └── tool_chain.go │ │ │ │ └── types.go │ │ │ ├── rag/ │ │ │ │ ├── README.md │ │ │ │ ├── common/ │ │ │ │ │ └── httpclient.go │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── embedding/ │ │ │ │ │ ├── openai.go │ │ │ │ │ └── provider.go │ │ │ │ ├── llm/ │ │ │ │ │ ├── openai.go │ │ │ │ │ ├── prompt.go │ │ │ │ │ └── provider.go │ │ │ │ ├── rag_client.go │ │ │ │ ├── rag_client_test.go │ │ │ │ ├── schema/ │ │ │ │ │ └── document.go │ │ │ │ ├── server.go │ │ │ │ ├── server_test.go │ │ │ │ ├── textsplitter/ │ │ │ │ │ ├── options.go │ │ │ │ │ ├── recursive_character.go │ │ │ │ │ ├── recursive_character_test.go │ │ │ │ │ ├── splitter_document.go │ │ │ │ │ └── text_splitter.go │ │ │ │ ├── tools.go │ │ │ │ └── vectordb/ │ │ │ │ ├── mapper.go │ │ │ │ ├── milvus.go │ │ │ │ ├── milvus_test.go │ │ │ │ └── provider.go │ │ │ └── tool-search/ │ │ │ ├── README.md │ │ │ ├── config-example.json │ │ │ ├── embedding.go │ │ │ ├── milvus.go │ │ │ ├── search.go │ │ │ ├── server.go │ │ │ ├── server_test.go │ │ │ └── tools.go │ │ └── mcp-session/ │ │ ├── common/ │ │ │ ├── auth.go │ │ │ ├── crypto.go │ │ │ ├── match.go │ │ │ ├── redis.go │ │ │ ├── registry.go │ │ │ ├── server.go │ │ │ ├── sse.go │ │ │ └── utils.go │ │ ├── config.go │ │ ├── filter.go │ │ ├── filter_test.go │ │ └── handler/ │ │ ├── config_handler.go │ │ ├── config_store.go │ │ └── rate_limit_handler.go │ ├── wasm-assemblyscript/ │ │ ├── README.md │ │ ├── asconfig.json │ │ ├── assembly/ │ │ │ ├── cluster_wrapper.ts │ │ │ ├── http_wrapper.ts │ │ │ ├── index.ts │ │ │ ├── log_wrapper.ts │ │ │ ├── plugin_wrapper.ts │ │ │ ├── request_wrapper.ts │ │ │ ├── rule_matcher.ts │ │ │ └── tsconfig.json │ │ ├── extensions/ │ │ │ ├── custom-response/ │ │ │ │ ├── README.md │ │ │ │ ├── asconfig.json │ │ │ │ ├── assembly/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ └── package.json │ │ │ └── hello-world/ │ │ │ ├── asconfig.json │ │ │ ├── assembly/ │ │ │ │ ├── index.ts │ │ │ │ └── tsconfig.json │ │ │ └── package.json │ │ └── package.json │ ├── wasm-cpp/ │ │ ├── .bazelrc │ │ ├── .bazelversion │ │ ├── .clang-format │ │ ├── BUILD │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_EN.md │ │ ├── WORKSPACE │ │ ├── bazel/ │ │ │ ├── BUILD │ │ │ ├── absl.patch │ │ │ ├── boringssl.patch │ │ │ ├── re2.patch │ │ │ ├── third_party.bzl │ │ │ └── wasm.bzl │ │ ├── common/ │ │ │ ├── BUILD │ │ │ ├── base64.h │ │ │ ├── common_util.h │ │ │ ├── crypt_blowfish.c │ │ │ ├── crypto_util.cc │ │ │ ├── crypto_util.h │ │ │ ├── http_util.cc │ │ │ ├── http_util.h │ │ │ ├── json_util.cc │ │ │ ├── json_util.h │ │ │ ├── nlohmann_json.hpp │ │ │ ├── regex.h │ │ │ └── route_rule_matcher.h │ │ ├── extensions/ │ │ │ ├── basic_auth/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── bot_detect/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── custom_response/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── hmac_auth/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── jwt_auth/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── extractor.cc │ │ │ │ ├── extractor.h │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── key_auth/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── key_rate_limit/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── bucket.cc │ │ │ │ ├── bucket.h │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── model_mapper/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── model_router/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── oauth/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ ├── request_block/ │ │ │ │ ├── BUILD │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── plugin.cc │ │ │ │ ├── plugin.h │ │ │ │ └── plugin_test.cc │ │ │ └── sni_misdirect/ │ │ │ ├── BUILD │ │ │ ├── README.md │ │ │ ├── VERSION │ │ │ ├── plugin.cc │ │ │ ├── plugin.h │ │ │ └── plugin_test.cc │ │ └── scripts/ │ │ └── build_and_push.sh │ ├── wasm-go/ │ │ ├── .devcontainer/ │ │ │ ├── Dockerfile │ │ │ ├── devcontainer.json │ │ │ └── gen_config.py │ │ ├── Dockerfile │ │ ├── DockerfileBuilder │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_EN.md │ │ ├── examples/ │ │ │ ├── custom-log/ │ │ │ │ ├── config.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ ├── custom-span-attribute/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ └── test-foreign-function/ │ │ │ ├── README.md │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── extensions/ │ │ │ ├── ai-agent/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config.go │ │ │ │ ├── dashscope/ │ │ │ │ │ ├── message.go │ │ │ │ │ └── types.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── promptTpl/ │ │ │ │ └── prompt.go │ │ │ ├── ai-cache/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── cache/ │ │ │ │ │ ├── provider.go │ │ │ │ │ └── redis.go │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── core.go │ │ │ │ ├── embedding/ │ │ │ │ │ ├── azure.go │ │ │ │ │ ├── cohere.go │ │ │ │ │ ├── dashscope.go │ │ │ │ │ ├── huggingface.go │ │ │ │ │ ├── ollama.go │ │ │ │ │ ├── openai.go │ │ │ │ │ ├── provider.go │ │ │ │ │ ├── textin.go │ │ │ │ │ └── xfyun.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── option.yaml │ │ │ │ ├── util.go │ │ │ │ └── vector/ │ │ │ │ ├── chroma.go │ │ │ │ ├── dashvector.go │ │ │ │ ├── elasticsearch.go │ │ │ │ ├── milvus.go │ │ │ │ ├── pinecone.go │ │ │ │ ├── provider.go │ │ │ │ ├── qdrant.go │ │ │ │ └── weaviate.go │ │ │ ├── ai-history/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── option.yaml │ │ │ ├── ai-image-reader/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── dashscope.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── provider.go │ │ │ ├── ai-intent/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── ai-json-resp/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── model.go │ │ │ │ └── util.go │ │ │ ├── ai-load-balancer/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── cluster_metrics/ │ │ │ │ │ └── lb_policy.go │ │ │ │ ├── endpoint_metrics/ │ │ │ │ │ ├── backend/ │ │ │ │ │ │ ├── types.go │ │ │ │ │ │ └── vllm/ │ │ │ │ │ │ └── metrics.go │ │ │ │ │ ├── lb_policy.go │ │ │ │ │ └── scheduling/ │ │ │ │ │ ├── filter.go │ │ │ │ │ ├── scheduler.go │ │ │ │ │ └── types.go │ │ │ │ ├── global_least_request/ │ │ │ │ │ ├── lb_policy.go │ │ │ │ │ ├── lb_script_test.lua │ │ │ │ │ └── rate_limit.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── prefix_cache/ │ │ │ │ │ └── lb_policy.go │ │ │ │ └── utils/ │ │ │ │ ├── queue.go │ │ │ │ └── utils.go │ │ │ ├── ai-prompt-decorator/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── ai-prompt-template/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── ai-proxy/ │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── README_dev.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── option.yaml │ │ │ │ ├── provider/ │ │ │ │ │ ├── ai360.go │ │ │ │ │ ├── azure.go │ │ │ │ │ ├── baichuan.go │ │ │ │ │ ├── baidu.go │ │ │ │ │ ├── bedrock.go │ │ │ │ │ ├── bedrock_sigv4_path_test.go │ │ │ │ │ ├── claude.go │ │ │ │ │ ├── claude_test.go │ │ │ │ │ ├── claude_to_openai.go │ │ │ │ │ ├── claude_to_openai_test.go │ │ │ │ │ ├── cloudflare.go │ │ │ │ │ ├── cohere.go │ │ │ │ │ ├── context.go │ │ │ │ │ ├── coze.go │ │ │ │ │ ├── custom_setting.go │ │ │ │ │ ├── deepl.go │ │ │ │ │ ├── deepseek.go │ │ │ │ │ ├── dify.go │ │ │ │ │ ├── doubao.go │ │ │ │ │ ├── failover.go │ │ │ │ │ ├── fireworks.go │ │ │ │ │ ├── gemini.go │ │ │ │ │ ├── generic.go │ │ │ │ │ ├── github.go │ │ │ │ │ ├── grok.go │ │ │ │ │ ├── groq.go │ │ │ │ │ ├── hunyuan.go │ │ │ │ │ ├── longcat.go │ │ │ │ │ ├── longcat_test.go │ │ │ │ │ ├── minimax.go │ │ │ │ │ ├── mistral.go │ │ │ │ │ ├── model.go │ │ │ │ │ ├── moonshot.go │ │ │ │ │ ├── multipart_helper.go │ │ │ │ │ ├── ollama.go │ │ │ │ │ ├── openai.go │ │ │ │ │ ├── openrouter.go │ │ │ │ │ ├── provider.go │ │ │ │ │ ├── provider_test.go │ │ │ │ │ ├── qwen.go │ │ │ │ │ ├── request_helper.go │ │ │ │ │ ├── request_helper_test.go │ │ │ │ │ ├── retry.go │ │ │ │ │ ├── spark.go │ │ │ │ │ ├── stepfun.go │ │ │ │ │ ├── together_ai.go │ │ │ │ │ ├── triton.go │ │ │ │ │ ├── vertex.go │ │ │ │ │ ├── vllm.go │ │ │ │ │ ├── yi.go │ │ │ │ │ └── zhipuai.go │ │ │ │ ├── test/ │ │ │ │ │ ├── ai360.go │ │ │ │ │ ├── api_paths.go │ │ │ │ │ ├── azure.go │ │ │ │ │ ├── bedrock.go │ │ │ │ │ ├── claude-test/ │ │ │ │ │ │ └── claude-message-api.yaml │ │ │ │ │ ├── claude.go │ │ │ │ │ ├── consumer_affinity.go │ │ │ │ │ ├── fireworks.go │ │ │ │ │ ├── gemini.go │ │ │ │ │ ├── generic.go │ │ │ │ │ ├── minimax.go │ │ │ │ │ ├── mock_context.go │ │ │ │ │ ├── openai.go │ │ │ │ │ ├── qwen.go │ │ │ │ │ ├── util.go │ │ │ │ │ └── vertex.go │ │ │ │ └── util/ │ │ │ │ ├── http.go │ │ │ │ ├── json.go │ │ │ │ ├── json_test.go │ │ │ │ ├── ptr.go │ │ │ │ ├── string.go │ │ │ │ └── string_test.go │ │ │ ├── ai-quota/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── plugin.yaml │ │ │ │ └── util/ │ │ │ │ ├── http.go │ │ │ │ └── http_test.go │ │ │ ├── ai-rag/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── dashscope/ │ │ │ │ │ └── types.go │ │ │ │ ├── dashvector/ │ │ │ │ │ └── types.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── ai-search/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── engine/ │ │ │ │ │ ├── arxiv/ │ │ │ │ │ │ └── arxiv.go │ │ │ │ │ ├── bing/ │ │ │ │ │ │ └── bing.go │ │ │ │ │ ├── elasticsearch/ │ │ │ │ │ │ └── elasticsearch.go │ │ │ │ │ ├── google/ │ │ │ │ │ │ └── google.go │ │ │ │ │ ├── quark/ │ │ │ │ │ │ └── quark.go │ │ │ │ │ └── types.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── guide.md │ │ │ │ ├── main.go │ │ │ │ └── prompts/ │ │ │ │ ├── arxiv.md │ │ │ │ ├── chinese-internet.md │ │ │ │ ├── full.md │ │ │ │ ├── internet.md │ │ │ │ ├── private.md │ │ │ │ └── test_ai_search.py │ │ │ ├── ai-security-guard/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── lvwang/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ ├── request_builder.go │ │ │ │ │ │ ├── request_builder_test.go │ │ │ │ │ │ └── text/ │ │ │ │ │ │ └── openai.go │ │ │ │ │ ├── multi_modal_guard/ │ │ │ │ │ │ ├── handler.go │ │ │ │ │ │ ├── image/ │ │ │ │ │ │ │ ├── common.go │ │ │ │ │ │ │ ├── openai.go │ │ │ │ │ │ │ └── qwen.go │ │ │ │ │ │ ├── mcp/ │ │ │ │ │ │ │ └── mcp.go │ │ │ │ │ │ └── text/ │ │ │ │ │ │ └── openai.go │ │ │ │ │ └── text_moderation_plus/ │ │ │ │ │ ├── handler.go │ │ │ │ │ └── text/ │ │ │ │ │ └── openai.go │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── utils/ │ │ │ │ └── utils.go │ │ │ ├── ai-statistics/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── fix_tool_calls.patch │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── ai-token-ratelimit/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ ├── config.go │ │ │ │ │ └── config_test.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── util/ │ │ │ │ └── utils.go │ │ │ ├── ai-transformer/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── api-workflow/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── utils/ │ │ │ │ │ ├── conditional.go │ │ │ │ │ ├── conditional_test.go │ │ │ │ │ ├── http.go │ │ │ │ │ └── tools.go │ │ │ │ └── workflow/ │ │ │ │ └── workflow.go │ │ │ ├── basic-auth/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── bot-detect/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── botdetect.yaml │ │ │ │ ├── config/ │ │ │ │ │ ├── bot_detect_config.go │ │ │ │ │ └── bot_detect_config_test.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── cache-control/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── chatgpt-proxy/ │ │ │ │ ├── README.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── cluster-key-rate-limit/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ ├── config.go │ │ │ │ │ └── config_test.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── util/ │ │ │ │ └── utils.go │ │ │ ├── cors/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ ├── cors_config.go │ │ │ │ │ └── cors_config_test.go │ │ │ │ ├── cors.yaml │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── custom-response/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── docker-compose.yaml │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── de-graphql/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ ├── degraphql_config.go │ │ │ │ │ └── degraphql_config_test.go │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── graphql.yaml │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── ext-auth/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ ├── config.go │ │ │ │ │ └── config_test.go │ │ │ │ ├── expr/ │ │ │ │ │ ├── match_rules.go │ │ │ │ │ ├── match_rules_test.go │ │ │ │ │ ├── matcher.go │ │ │ │ │ ├── matcher_test.go │ │ │ │ │ ├── repeated_string_matcher.go │ │ │ │ │ └── repeated_string_matcher_test.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── util/ │ │ │ │ └── utils.go │ │ │ ├── frontend-gray/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ ├── config.go │ │ │ │ │ └── config_test.go │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── util/ │ │ │ │ ├── utils.go │ │ │ │ └── utils_test.go │ │ │ ├── gc-test/ │ │ │ │ ├── README.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ ├── geo-ip/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── generateCidr/ │ │ │ │ │ ├── ip.merge.txt │ │ │ │ │ ├── ipRange2Cidr.go │ │ │ │ │ └── ipRange2Cidr_test.go │ │ │ │ ├── geoCidr.txt │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ ├── gw-error-format/ │ │ │ │ ├── README.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── gw-error-format.yaml │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── hello-world/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── hmac-auth-apisix/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── config/ │ │ │ │ │ ├── config.go │ │ │ │ │ └── config_test.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── http-call/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── ip-restriction/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── utils.go │ │ │ │ └── utils_test.go │ │ │ ├── jsonrpc-converter/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── jwt-auth/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── Makefile │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ ├── checker.go │ │ │ │ │ ├── config.go │ │ │ │ │ └── parser.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── go.work.sum │ │ │ │ ├── handler/ │ │ │ │ │ ├── claims.go │ │ │ │ │ ├── extractor.go │ │ │ │ │ ├── handler.go │ │ │ │ │ ├── verify.go │ │ │ │ │ └── verify_test.go │ │ │ │ ├── main.go │ │ │ │ ├── option.yaml │ │ │ │ └── test/ │ │ │ │ ├── jwt_test.go │ │ │ │ ├── jwts.json │ │ │ │ └── keys.json │ │ │ ├── key-auth/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── keyauth.yaml │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── log-request-response/ │ │ │ │ ├── README.md │ │ │ │ ├── VERSION │ │ │ │ ├── docker-compose.yaml │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── mcp-router/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ ├── mcp-server/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── model-mapper/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── model-router/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── oidc/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ ├── opa/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config.go │ │ │ │ ├── docker-compose.yaml │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── replay-protection/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── util/ │ │ │ │ └── utils.go │ │ │ ├── request-block/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── request-validation/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── response-cache/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── cache/ │ │ │ │ │ ├── provider.go │ │ │ │ │ └── redis.go │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── core.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── option.yaml │ │ │ ├── simple-jwt-auth/ │ │ │ │ ├── README.md │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── sni-misdirect/ │ │ │ │ ├── VERSION │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── streaming-body-example/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── traffic-editor/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── config.go │ │ │ │ ├── docker-compose.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── http.go │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ └── pkg/ │ │ │ │ ├── command.go │ │ │ │ ├── command_test.go │ │ │ │ ├── condition.go │ │ │ │ ├── condition_test.go │ │ │ │ ├── context.go │ │ │ │ ├── context_test.go │ │ │ │ ├── mock_test.go │ │ │ │ └── ref.go │ │ │ ├── traffic-tag/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── SampleConfig.yaml │ │ │ │ ├── VERSION │ │ │ │ ├── config.yaml │ │ │ │ ├── content.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── parse.go │ │ │ │ ├── utils.go │ │ │ │ └── weight.go │ │ │ ├── transformer/ │ │ │ │ ├── README.md │ │ │ │ ├── README_EN.md │ │ │ │ ├── VERSION │ │ │ │ ├── docker-compose.yaml │ │ │ │ ├── envoy.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ ├── utils.go │ │ │ │ └── utils_test.go │ │ │ └── waf/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── README_EN.md │ │ │ ├── VERSION │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── init_tinygo.go │ │ │ ├── local/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── docker-compose.yaml │ │ │ │ └── envoy-config.yaml │ │ │ ├── mage.go │ │ │ ├── magefiles/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── magefile.go │ │ │ ├── main.go │ │ │ └── wasmplugin/ │ │ │ ├── fs.go │ │ │ ├── logger.go │ │ │ ├── plugin.go │ │ │ ├── rules/ │ │ │ │ ├── coraza-demo.conf │ │ │ │ ├── coraza.conf-recommended.conf │ │ │ │ ├── crs/ │ │ │ │ │ ├── REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example │ │ │ │ │ ├── REQUEST-901-INITIALIZATION.conf │ │ │ │ │ ├── REQUEST-905-COMMON-EXCEPTIONS.conf │ │ │ │ │ ├── REQUEST-911-METHOD-ENFORCEMENT.conf │ │ │ │ │ ├── REQUEST-913-SCANNER-DETECTION.conf │ │ │ │ │ ├── REQUEST-920-PROTOCOL-ENFORCEMENT.conf │ │ │ │ │ ├── REQUEST-921-PROTOCOL-ATTACK.conf │ │ │ │ │ ├── REQUEST-922-MULTIPART-ATTACK.conf │ │ │ │ │ ├── REQUEST-930-APPLICATION-ATTACK-LFI.conf │ │ │ │ │ ├── REQUEST-931-APPLICATION-ATTACK-RFI.conf │ │ │ │ │ ├── REQUEST-932-APPLICATION-ATTACK-RCE.conf │ │ │ │ │ ├── REQUEST-933-APPLICATION-ATTACK-PHP.conf │ │ │ │ │ ├── REQUEST-934-APPLICATION-ATTACK-GENERIC.conf │ │ │ │ │ ├── REQUEST-941-APPLICATION-ATTACK-XSS.conf │ │ │ │ │ ├── REQUEST-942-APPLICATION-ATTACK-SQLI.conf │ │ │ │ │ ├── REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf │ │ │ │ │ ├── REQUEST-944-APPLICATION-ATTACK-JAVA.conf │ │ │ │ │ ├── REQUEST-949-BLOCKING-EVALUATION.conf │ │ │ │ │ ├── RESPONSE-950-DATA-LEAKAGES.conf │ │ │ │ │ ├── RESPONSE-951-DATA-LEAKAGES-SQL.conf │ │ │ │ │ ├── RESPONSE-952-DATA-LEAKAGES-JAVA.conf │ │ │ │ │ ├── RESPONSE-953-DATA-LEAKAGES-PHP.conf │ │ │ │ │ ├── RESPONSE-954-DATA-LEAKAGES-IIS.conf │ │ │ │ │ ├── RESPONSE-955-WEB-SHELLS.conf │ │ │ │ │ ├── RESPONSE-959-BLOCKING-EVALUATION.conf │ │ │ │ │ ├── RESPONSE-980-CORRELATION.conf │ │ │ │ │ ├── RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example │ │ │ │ │ ├── crawlers-user-agents.data │ │ │ │ │ ├── iis-errors.data │ │ │ │ │ ├── java-classes.data │ │ │ │ │ ├── java-code-leakages.data │ │ │ │ │ ├── java-errors.data │ │ │ │ │ ├── lfi-os-files.data │ │ │ │ │ ├── php-config-directives.data │ │ │ │ │ ├── php-errors-pl2.data │ │ │ │ │ ├── php-errors.data │ │ │ │ │ ├── php-function-names-933150.data │ │ │ │ │ ├── php-function-names-933151.data │ │ │ │ │ ├── php-variables.data │ │ │ │ │ ├── restricted-files.data │ │ │ │ │ ├── restricted-upload.data │ │ │ │ │ ├── scanners-headers.data │ │ │ │ │ ├── scanners-urls.data │ │ │ │ │ ├── scanners-user-agents.data │ │ │ │ │ ├── scripting-user-agents.data │ │ │ │ │ ├── sql-errors.data │ │ │ │ │ ├── ssrf.data │ │ │ │ │ ├── unix-shell.data │ │ │ │ │ ├── web-shells-php.data │ │ │ │ │ └── windows-powershell-commands.data │ │ │ │ ├── crs-setup-demo.conf │ │ │ │ ├── crs-setup.conf.example │ │ │ │ └── ftw-config.conf │ │ │ └── utils.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── mcp-servers/ │ │ │ ├── Dockerfile │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── amap-tools/ │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── main.go │ │ │ │ └── tools/ │ │ │ │ ├── load_tools.go │ │ │ │ ├── maps_around_search.go │ │ │ │ ├── maps_bicycling.go │ │ │ │ ├── maps_direction_driving.go │ │ │ │ ├── maps_direction_transit_integrated.go │ │ │ │ ├── maps_direction_walking.go │ │ │ │ ├── maps_distance.go │ │ │ │ ├── maps_geo.go │ │ │ │ ├── maps_ip_location.go │ │ │ │ ├── maps_regeocode.go │ │ │ │ ├── maps_search_detail.go │ │ │ │ ├── maps_text_search.go │ │ │ │ └── maps_weather.go │ │ │ ├── mcp-agricultural-product-price-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-bid-tools/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-blockscout/ │ │ │ │ ├── README.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-book-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-bravesearch/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-business-credit-rating/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-business-info-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-business-patent-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-calendar-holiday-helper/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-chatppt/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-context7/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-deadbeat-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-document-conversion/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-e2bdev/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-exchange-rate-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-firecrawl/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-fund-data-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-github/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-global-financial-news/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-hackmd/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-heavenly-stems-and-earthly-branches-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-hot-news/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-invoice-verification/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-ip-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-jd-hot-words/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-librechat/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-logistics-tracking-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-national-bid-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-notion/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-oil-price-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-openweather/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-parking-lot-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-plate-quote/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-product-barcode-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-recipe-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-resume-analysis/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-route-planning/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-scripts/ │ │ │ │ ├── create_api_directories.sh │ │ │ │ ├── mcp-server-docs.md │ │ │ │ ├── translate_readme.py │ │ │ │ ├── yaml_to_markdown.py │ │ │ │ └── yunmarket-tmpl.yaml │ │ │ ├── mcp-shebao-tools/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── city_data.xls │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-stock-helper/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-stock-history-data/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-taobao-hot-words/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-time/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-today-in-history/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-tourist-attraction-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-traditional-chinese-medicine-tongue-diagnosis/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-train-ticket-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-vehicle-info-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-vehicle-restriction-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-weather-query/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-wolframalpha/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-yuque/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ └── mcp-server.yaml │ │ │ ├── mcp-zodiac-analysis/ │ │ │ │ ├── README.md │ │ │ │ ├── README_ZH.md │ │ │ │ ├── api.json │ │ │ │ └── mcp-server.yaml │ │ │ └── quark-search/ │ │ │ ├── config/ │ │ │ │ └── config.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── main.go │ │ │ └── tools/ │ │ │ ├── load_tools.go │ │ │ ├── web_search.go │ │ │ └── web_search_test.go │ │ └── pkg/ │ │ └── mcp/ │ │ ├── consts/ │ │ │ └── vars.go │ │ ├── filter/ │ │ │ └── plugin.go │ │ ├── go.mod │ │ ├── mcp.go │ │ ├── server/ │ │ │ ├── auth_utils.go │ │ │ ├── base_server.go │ │ │ ├── composed_server.go │ │ │ ├── config_validator_test.go │ │ │ ├── plugin.go │ │ │ ├── proxy_auth_test.go │ │ │ ├── proxy_integration_test.go │ │ │ ├── proxy_server.go │ │ │ ├── proxy_server_test.go │ │ │ ├── proxy_tool.go │ │ │ ├── proxy_tools_test.go │ │ │ ├── rest_server.go │ │ │ ├── rest_server_test.go │ │ │ ├── sse_proxy.go │ │ │ └── sse_proxy_test.go │ │ ├── utils/ │ │ │ ├── json_rpc.go │ │ │ ├── json_rpc_test.go │ │ │ ├── log.go │ │ │ ├── mcp_rpc.go │ │ │ └── session.go │ │ └── validator/ │ │ ├── README.md │ │ ├── config_validator.go │ │ ├── config_validator_test.go │ │ └── example_usage.go │ └── wasm-rust/ │ ├── .dockerignore │ ├── Cargo.toml │ ├── Dockerfile │ ├── DockerfileBuilder │ ├── Makefile │ ├── README.md │ ├── example/ │ │ ├── sse-timing/ │ │ │ ├── Cargo.toml │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── docker-compose.yaml │ │ │ ├── envoy.yaml │ │ │ ├── src/ │ │ │ │ └── lib.rs │ │ │ └── sse-server/ │ │ │ ├── Dockerfile │ │ │ ├── go.mod │ │ │ └── main.go │ │ └── wrapper-say-hello/ │ │ ├── Cargo.toml │ │ ├── docker-compose.yaml │ │ ├── envoy.yaml │ │ └── src/ │ │ └── lib.rs │ ├── extensions/ │ │ ├── ai-data-masking/ │ │ │ ├── .prebuild │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── README_EN.md │ │ │ ├── res/ │ │ │ │ └── sensitive_word_dict.txt │ │ │ ├── src/ │ │ │ │ ├── ai_data_masking.rs │ │ │ │ ├── deny_word.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── msg_win_openai.rs │ │ │ │ ├── msg_window.rs │ │ │ │ └── number_merge.rs │ │ │ └── test/ │ │ │ └── raw_message.txt │ │ ├── ai-intent/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── README_EN.md │ │ │ └── src/ │ │ │ └── lib.rs │ │ ├── demo-wasm/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ └── lib.rs │ │ ├── request-block/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ └── lib.rs │ │ └── say-hello/ │ │ ├── Cargo.toml │ │ ├── docker-compose.yaml │ │ ├── envoy.yaml │ │ └── src/ │ │ └── lib.rs │ └── src/ │ ├── cluster_wrapper.rs │ ├── error.rs │ ├── event_stream.rs │ ├── internal.rs │ ├── lib.rs │ ├── log.rs │ ├── plugin_wrapper.rs │ ├── redis_wrapper.rs │ ├── request_wrapper.rs │ └── rule_matcher.rs ├── registry/ │ ├── auth_option.go │ ├── consul/ │ │ └── watcher.go │ ├── direct/ │ │ └── watcher.go │ ├── eureka/ │ │ ├── client/ │ │ │ ├── http_client.go │ │ │ ├── plan.go │ │ │ └── struct.go │ │ └── watcher.go │ ├── mcp_model.go │ ├── memory/ │ │ └── cache.go │ ├── nacos/ │ │ ├── address/ │ │ │ ├── address_discovery.go │ │ │ └── address_discovery_test.go │ │ ├── mcpserver/ │ │ │ ├── client.go │ │ │ ├── client_test.go │ │ │ ├── watcher.go │ │ │ └── watcher_test.go │ │ ├── v2/ │ │ │ ├── watcher.go │ │ │ └── watcher_test.go │ │ ├── watcher.go │ │ └── watcher_test.go │ ├── proxy/ │ │ └── factory.go │ ├── reconcile/ │ │ └── reconcile.go │ ├── watcher.go │ └── zookeeper/ │ ├── types.go │ ├── watcher.go │ └── watcher_test.go ├── release-notes/ │ ├── 2.1.10/ │ │ ├── README.md │ │ └── README_ZH.md │ ├── 2.1.11/ │ │ ├── README.md │ │ └── README_ZH.md │ ├── 2.1.4/ │ │ ├── README.md │ │ └── README_ZH.md │ ├── 2.1.5/ │ │ ├── README.md │ │ └── README_ZH.md │ ├── 2.1.6/ │ │ ├── README.md │ │ └── README_ZH.md │ ├── 2.1.7/ │ │ ├── README.md │ │ └── README_ZH.md │ ├── 2.1.8/ │ │ ├── README.md │ │ └── README_ZH.md │ ├── 2.1.9/ │ │ ├── README.md │ │ └── README_ZH.md │ └── 2.2.0/ │ ├── README.md │ └── README_ZH.md ├── samples/ │ ├── gateway-api/ │ │ └── demo.yaml │ ├── hello-world/ │ │ └── quickstart.yaml │ ├── loadbalance/ │ │ └── useSourceIp-example.yaml │ ├── nacos-discovery/ │ │ ├── canary.yaml │ │ ├── multi-destination.yaml │ │ └── quickstart.yaml │ ├── quickstart.yaml │ └── wasmplugin/ │ ├── default-config.yaml │ ├── ingress-level-config.yaml │ └── waf.yaml ├── test/ │ ├── README.md │ ├── README_CN.md │ ├── e2e/ │ │ ├── conformance/ │ │ │ ├── base/ │ │ │ │ ├── consul.yaml │ │ │ │ ├── dubbo.yaml │ │ │ │ ├── eureka.yaml │ │ │ │ ├── llm-mock.yaml │ │ │ │ ├── manifests.yaml │ │ │ │ ├── nacos.yaml │ │ │ │ └── opa.yaml │ │ │ ├── embed.go │ │ │ ├── tests/ │ │ │ │ ├── configmap-global.go │ │ │ │ ├── configmap-global.yaml │ │ │ │ ├── configmap-gzip.go │ │ │ │ ├── configmap-gzip.yaml │ │ │ │ ├── configmap-https.go │ │ │ │ ├── configmap-https.yaml │ │ │ │ ├── configmap-mcp-redis-secret.go │ │ │ │ ├── configmap-mcp-redis-secret.yaml │ │ │ │ ├── cpp-wasm-basic-auth.go │ │ │ │ ├── cpp-wasm-basic-auth.yaml │ │ │ │ ├── cpp-wasm-key-auth.go │ │ │ │ ├── cpp-wasm-key-auth.yaml │ │ │ │ ├── cpp-wasm-request-block.go │ │ │ │ ├── cpp-wasm-request-block.yaml │ │ │ │ ├── go-wasm-ai-cache.go │ │ │ │ ├── go-wasm-ai-cache.yaml │ │ │ │ ├── go-wasm-ai-proxy.go │ │ │ │ ├── go-wasm-ai-proxy.yaml │ │ │ │ ├── go-wasm-basic-auth-template.go │ │ │ │ ├── go-wasm-basic-auth-template.yaml │ │ │ │ ├── go-wasm-basic-auth.go │ │ │ │ ├── go-wasm-basic-auth.yaml │ │ │ │ ├── go-wasm-bot-detect.go │ │ │ │ ├── go-wasm-bot-detect.yaml │ │ │ │ ├── go-wasm-cache-control.go │ │ │ │ ├── go-wasm-cache-control.yaml │ │ │ │ ├── go-wasm-custom-response.go │ │ │ │ ├── go-wasm-custom-response.yaml │ │ │ │ ├── go-wasm-geo-ip.go │ │ │ │ ├── go-wasm-geo-ip.yaml │ │ │ │ ├── go-wasm-ip-restriction-allow.yaml │ │ │ │ ├── go-wasm-ip-restriction-deny.yaml │ │ │ │ ├── go-wasm-ip-restriction.go │ │ │ │ ├── go-wasm-jwt-auth-allow.yaml │ │ │ │ ├── go-wasm-jwt-auth-deny.yaml │ │ │ │ ├── go-wasm-jwt-auth-single-consumer.yaml │ │ │ │ ├── go-wasm-jwt-auth.go │ │ │ │ ├── go-wasm-key-auth.go │ │ │ │ ├── go-wasm-key-auth.yaml │ │ │ │ ├── go-wasm-opa.go │ │ │ │ ├── go-wasm-opa.yaml │ │ │ │ ├── go-wasm-replay-protection.go │ │ │ │ ├── go-wasm-replay-protection.yaml │ │ │ │ ├── go-wasm-request-block.go │ │ │ │ ├── go-wasm-request-block.yaml │ │ │ │ ├── go-wasm-request-validation.go │ │ │ │ ├── go-wasm-request-validation.yaml │ │ │ │ ├── go-wasm-simple-jwt-auth.go │ │ │ │ ├── go-wasm-simple-jwt-auth.yaml │ │ │ │ ├── go-wasm-sni-misdirect.go │ │ │ │ ├── go-wasm-sni-misdirect.yaml │ │ │ │ ├── go-wasm-transformer.go │ │ │ │ ├── go-wasm-transformer.yaml │ │ │ │ ├── httproute-app-root.go │ │ │ │ ├── httproute-app-root.yaml │ │ │ │ ├── httproute-canary-header-with-customized-header.go │ │ │ │ ├── httproute-canary-header-with-customized-header.yaml │ │ │ │ ├── httproute-canary-header.go │ │ │ │ ├── httproute-canary-header.yaml │ │ │ │ ├── httproute-canary-weight.go │ │ │ │ ├── httproute-canary-weight.yaml │ │ │ │ ├── httproute-consul-httpbin.go │ │ │ │ ├── httproute-consul-httpbin.yaml │ │ │ │ ├── httproute-default-backend.go │ │ │ │ ├── httproute-default-backend.yaml │ │ │ │ ├── httproute-dns-registry.go │ │ │ │ ├── httproute-dns-registry.yaml │ │ │ │ ├── httproute-downstream-encryption.go │ │ │ │ ├── httproute-downstream-encryption.yaml │ │ │ │ ├── httproute-enable-cors.go │ │ │ │ ├── httproute-enable-cors.yaml │ │ │ │ ├── httproute-enable-ignore-case.go │ │ │ │ ├── httproute-enable-ignore-case.yaml │ │ │ │ ├── httproute-eureka-registry.go │ │ │ │ ├── httproute-eureka-registry.yaml │ │ │ │ ├── httproute-exact-domain-fallback.go │ │ │ │ ├── httproute-exact-domain-fallback.yaml │ │ │ │ ├── httproute-force-redirect-https.go │ │ │ │ ├── httproute-force-redirect-https.yaml │ │ │ │ ├── httproute-full-path-regex.go │ │ │ │ ├── httproute-full-path-regex.yaml │ │ │ │ ├── httproute-hostname-same-namespace.go │ │ │ │ ├── httproute-hostname-same-namespace.yaml │ │ │ │ ├── httproute-http2rpc-0-create.yaml │ │ │ │ ├── httproute-http2rpc-1-update.yaml │ │ │ │ ├── httproute-http2rpc.go │ │ │ │ ├── httproute-https-without-sni.go │ │ │ │ ├── httproute-https-without-sni.yaml │ │ │ │ ├── httproute-limit.go │ │ │ │ ├── httproute-limit.yaml │ │ │ │ ├── httproute-match-headers.go │ │ │ │ ├── httproute-match-headers.yaml │ │ │ │ ├── httproute-match-methods.go │ │ │ │ ├── httproute-match-methods.yaml │ │ │ │ ├── httproute-match-path.go │ │ │ │ ├── httproute-match-path.yaml │ │ │ │ ├── httproute-match-pseudo-headers.go │ │ │ │ ├── httproute-match-pseudo-headers.yaml │ │ │ │ ├── httproute-match-query-params.go │ │ │ │ ├── httproute-match-query-params.yaml │ │ │ │ ├── httproute-mirror-target-service.go │ │ │ │ ├── httproute-mirror-target-service.yaml │ │ │ │ ├── httproute-permanent-redirect-code.go │ │ │ │ ├── httproute-permanent-redirect-code.yaml │ │ │ │ ├── httproute-permanent-redirect.go │ │ │ │ ├── httproute-permanent-redirect.yaml │ │ │ │ ├── httproute-redirct-as-https.yaml │ │ │ │ ├── httproute-redirect-as-https.go │ │ │ │ ├── httproute-request-header-control.go │ │ │ │ ├── httproute-request-header-control.yaml │ │ │ │ ├── httproute-response-header-control.go │ │ │ │ ├── httproute-response-header-control.yaml │ │ │ │ ├── httproute-rewrite-host.go │ │ │ │ ├── httproute-rewrite-host.yaml │ │ │ │ ├── httproute-rewrite-path.go │ │ │ │ ├── httproute-rewrite-path.yaml │ │ │ │ ├── httproute-same-host-and-path.go │ │ │ │ ├── httproute-same-host-and-path.yaml │ │ │ │ ├── httproute-simple-same-namespace.go │ │ │ │ ├── httproute-simple-same-namespace.yaml │ │ │ │ ├── httproute-static-registry.go │ │ │ │ ├── httproute-static-registry.yaml │ │ │ │ ├── httproute-temporal-redirect.go │ │ │ │ ├── httproute-temporal-redirect.yaml │ │ │ │ ├── httproute-timeout.go │ │ │ │ ├── httproute-timeout.yaml │ │ │ │ ├── httproute-whitelist-source-range.go │ │ │ │ ├── httproute-whitelist-source-range.yaml │ │ │ │ ├── ingress-loadbalance-mcp-sse.go │ │ │ │ ├── ingress-loadbalance-mcp-sse.yaml │ │ │ │ ├── rust-wasm-ai-data-masking.go │ │ │ │ ├── rust-wasm-ai-data-masking.yaml │ │ │ │ ├── rust-wasm-request-block.go │ │ │ │ ├── rust-wasm-request-block.yaml │ │ │ │ └── tests.go │ │ │ └── utils/ │ │ │ ├── cert/ │ │ │ │ └── cert.go │ │ │ ├── config/ │ │ │ │ └── timeout.go │ │ │ ├── envoy/ │ │ │ │ ├── envoy.go │ │ │ │ └── envoy_test.go │ │ │ ├── flags/ │ │ │ │ └── flags.go │ │ │ ├── http/ │ │ │ │ ├── http.go │ │ │ │ └── http_test.go │ │ │ ├── kubernetes/ │ │ │ │ ├── apply.go │ │ │ │ ├── apply_test.go │ │ │ │ ├── cert.go │ │ │ │ └── helpers.go │ │ │ ├── roundtripper/ │ │ │ │ ├── roundtripper.go │ │ │ │ └── roundtripper_test.go │ │ │ └── suite/ │ │ │ ├── features.go │ │ │ └── suite.go │ │ └── e2e_test.go │ └── gateway/ │ ├── e2e.go │ └── e2e_test.go └── tools/ ├── hack/ │ ├── build-envoy.patch │ ├── build-envoy.sh │ ├── build-golang-filters.sh │ ├── build-istio-image.sh │ ├── build-istio-pilot.sh │ ├── build-wasm-plugins.sh │ ├── create-cluster.sh │ ├── docker-pull-image.sh │ ├── get-hgctl.sh │ ├── gobuild.sh │ ├── kind-load-image.sh │ ├── prebuild.sh │ ├── report_build_info.sh │ ├── run.sh │ ├── setup-istio-env.sh │ └── setup_env.sh ├── lint.mk ├── linter/ │ ├── codespell/ │ │ ├── .codespell.ignorewords │ │ ├── .codespell.skip │ │ └── matcher.json │ ├── golangci-lint/ │ │ └── .golangci.yml │ └── yamllint/ │ └── .yamllint ├── src/ │ ├── codespell/ │ │ └── requirements.txt │ ├── controller-gen/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── pin.go │ ├── golangci-lint/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── pin.go │ ├── kind/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── pin.go │ ├── kustomize/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── pin.go │ ├── setup-envtest/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── pin.go │ └── yamllint/ │ └── requirements.txt └── tools.mk