cf 0.0.6 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -4
- package/bin/cf +11 -0
- package/dist/_meta/agent-context.json +89 -89
- package/dist/_meta/commands.json +12866 -4982
- package/dist/_meta/schemas.json +33572 -1148
- package/dist/abuse-reports-KtfZhi6j.mjs +8 -0
- package/dist/accounts-BopMfODC.mjs +21 -0
- package/dist/acm-BT4vlnEJ.mjs +3 -0
- package/dist/addressing-B3uFxHst.mjs +13 -0
- package/dist/{agent-context-BBJnI_Q7.mjs → agent-context-D26woB9J.mjs} +1 -1
- package/dist/ai-DWHqwMap.mjs +2 -0
- package/dist/ai-gateway-CbKEO-3o.mjs +8 -0
- package/dist/ai-search-VnOQ5n--.mjs +7 -0
- package/dist/alerting-BmmgIlIO.mjs +6 -0
- package/dist/analytics-isY03taL.mjs +20 -0
- package/dist/api-gateway-DXurEbA-.mjs +33 -0
- package/dist/argo-B02BL_hp.mjs +2 -0
- package/dist/audit-logs-DcgR9xUc.mjs +2 -0
- package/dist/auth-CQcAgnOy.mjs +135 -0
- package/dist/auth-DenWm_X0.mjs +6 -0
- package/dist/autorag-CmrwnGVj.mjs +2 -0
- package/dist/billing-CaW1ZAB1.mjs +2 -0
- package/dist/body-parser-Br-BoYk-.mjs +2 -0
- package/dist/bot-management-CeBsFx68.mjs +5 -0
- package/dist/botnet-feed-B396vQeQ.mjs +3 -0
- package/dist/brand-protection-D4V1v5Kl.mjs +3 -0
- package/dist/browser-rendering-GF7rNtKI.mjs +4 -0
- package/dist/build-5jmmOZhm.mjs +1054 -0
- package/dist/{builds-B5sC8Gh_.mjs → builds-C_ySULja.mjs} +1 -1
- package/dist/cache-DmXizSMi.mjs +5 -0
- package/dist/calls-x4KQpTB4.mjs +4 -0
- package/dist/certificate-authorities-hC0SG-Ga.mjs +2 -0
- package/dist/chunk-DH-VkVmc.mjs +2 -0
- package/dist/client-certificates-BGVsDyeJ.mjs +3 -0
- package/dist/cloud-connector-BClQpEzI.mjs +2 -0
- package/dist/cloudforce-one-BfhFrO6M.mjs +21 -0
- package/dist/{completions-BSRqbcrz.mjs → completions-BKrxcfhN.mjs} +1 -1
- package/dist/config-DYzlVxcB.mjs +2 -0
- package/dist/connectivity-G0NP6LtW.mjs +3 -0
- package/dist/content-scanning-DEtPJ7aF.mjs +4 -0
- package/dist/context-CC0Rhkhy.mjs +2 -0
- package/dist/custom-certificates-rJXFpUWu.mjs +5 -0
- package/dist/custom-hostnames-Be5mgLeF.mjs +5 -0
- package/dist/custom-nameservers-CoFdy6hD.mjs +3 -0
- package/dist/custom-pages-D-oErw57.mjs +4 -0
- package/dist/d1-C95ckPKI.mjs +3 -0
- package/dist/dcv-delegation-CWSkbGuc.mjs +2 -0
- package/dist/delegate.mjs +2 -0
- package/dist/deploy-DbkiIzUr.mjs +2 -0
- package/dist/dev-C6iSuQZm.mjs +6 -0
- package/dist/diagnostics-DEEhPnXj.mjs +3 -0
- package/dist/dispatch-namespaces-BzXeV7PH.mjs +7 -0
- package/dist/dist-CnSubA1Z.mjs +82 -0
- package/dist/dist-DNBSHor6.mjs +301 -0
- package/dist/dns-firewall-BQXD_NxG.mjs +57 -0
- package/dist/dns-qW-3TZOT.mjs +29 -0
- package/dist/durable-objects-CgWFYEJJ.mjs +2 -0
- package/dist/email-routing-tdNJaCpJ.mjs +10 -0
- package/dist/email-security-DTVHNr2h.mjs +60 -0
- package/dist/email-sending-DsFTvE31.mjs +3 -0
- package/dist/filters-DO1Is_tI.mjs +4 -0
- package/dist/firewall-DbUhVTCg.mjs +11 -0
- package/dist/fraud-Bzr4njYb.mjs +8 -0
- package/dist/google-tag-gateway-BQxkA90M.mjs +2 -0
- package/dist/healthchecks-BBAs-lS_.mjs +4 -0
- package/dist/hostnames-Dz9PEUKS.mjs +3 -0
- package/dist/hyperdrive-B1iUJddG.mjs +18 -0
- package/dist/iam-CJM8gHpG.mjs +6 -0
- package/dist/images-DEoBmtFS.mjs +5 -0
- package/dist/index.mjs +1 -1
- package/dist/input-validation-zEO81MWN.mjs +2 -0
- package/dist/intel-BM6xkZ0C.mjs +3 -0
- package/dist/ips-B8fwxKZD.mjs +2 -0
- package/dist/keyless-certificates-DffYnd4b.mjs +3 -0
- package/dist/kv-BTceLtWZ.mjs +5 -0
- package/dist/leaked-credential-checks-CALfvoCo.mjs +3 -0
- package/dist/lib-Eu1wXxuh.mjs +68 -0
- package/dist/load-balancers-C1Ho1gCF.mjs +6 -0
- package/dist/local-VJaJ3BZ1.mjs +2 -0
- package/dist/logpush-CSYhgevA.mjs +4 -0
- package/dist/logs-DlIwmMpt.mjs +3 -0
- package/dist/magic-cloud-networking-Czu0pZ0a.mjs +5 -0
- package/dist/magic-network-monitoring-d7GJE5Yt.mjs +4 -0
- package/dist/magic-transit-qQmA-981.mjs +89 -0
- package/dist/managed-transforms-Dd6AnbWE.mjs +3 -0
- package/dist/mtls-certificates-C0rlCRGs.mjs +3 -0
- package/dist/network-interconnects-CxG2deY0.mjs +36 -0
- package/dist/organizations-DyEAiGiR.mjs +41 -0
- package/dist/origin-ca-certificates-S8RcoMF6.mjs +3 -0
- package/dist/origin-post-quantum-encryption-B8ZcpLu5.mjs +2 -0
- package/dist/origin-tls-client-auth-BlxMmQrE.mjs +5 -0
- package/dist/{output-CqGQp2r6.mjs → output-D7_yAFVR.mjs} +1 -1
- package/dist/page-rules-DP-w6TAm.mjs +18 -0
- package/dist/page-shield-Bf7kFp8c.mjs +37 -0
- package/dist/pages-D0Y_XRqW.mjs +10 -0
- package/dist/pipelines-C-SPESAk.mjs +6 -0
- package/dist/progress-CjcQ6ato.mjs +2 -0
- package/dist/queues-wv6CZsi8.mjs +6 -0
- package/dist/r2-DuXjp9n5.mjs +21 -0
- package/dist/r2-data-catalog-DQCMrmNO.mjs +14 -0
- package/dist/radar-BW_ZHP8X.mjs +2 -0
- package/dist/rate-limits-DLTkIvwr.mjs +5 -0
- package/dist/raw-fetch-hRv-6P3D.mjs +2 -0
- package/dist/realtime-kit-Ch7Vg3vj.mjs +6 -0
- package/dist/registrar-DIIv6fWd.mjs +46 -0
- package/dist/request-tracers-DMej0Drs.mjs +2 -0
- package/dist/resolve-BuJRWSk0.mjs +2 -0
- package/dist/resource-sharing-CYJ7cMWq.mjs +5 -0
- package/dist/resource-tagging-Dnz65MgH.mjs +16 -0
- package/dist/rules-DLJpOYbC.mjs +4 -0
- package/dist/rulesets-D9nqEJT5.mjs +8 -0
- package/dist/rum-DBVmdPkp.mjs +4 -0
- package/dist/{schema-qJlCfmo8.mjs → schema-CHBfkARI.mjs} +1 -1
- package/dist/schema-validation-MCd3xdtX.mjs +4 -0
- package/dist/scim-DZA3VXog.mjs +3 -0
- package/dist/{scm-C872x0C2.mjs → scm-CilfPOue.mjs} +1 -1
- package/dist/secrets-store-BrvcZSOM.mjs +21 -0
- package/dist/security-center-BU6f3Cm1.mjs +2 -0
- package/dist/security-txt-BPIbP3dG.mjs +3 -0
- package/dist/session-H7IV2BrM.mjs +2 -0
- package/dist/shared-DEzmTsEC.mjs +2 -0
- package/dist/smart-shield-e8XFBkiF.mjs +3 -0
- package/dist/snippets-B4M3MMb8.mjs +4 -0
- package/dist/spawn-13QQ0IwO.mjs +10 -0
- package/dist/spectrum-B0adfSRI.mjs +59 -0
- package/dist/speed-BVcUtkAz.mjs +4 -0
- package/dist/src-B9cKsgsg.mjs +108 -0
- package/dist/ssl-BAa91gsc.mjs +15 -0
- package/dist/stream-D53sxKb3.mjs +14 -0
- package/dist/tenants-bH5pt3dJ.mjs +2 -0
- package/dist/{theme-BKCxTQTe.mjs → theme-BklJDrb2.mjs} +2 -2
- package/dist/token-validation-M61Vx_Tw.mjs +4 -0
- package/dist/{tools-CawscCBu.mjs → tools-B7QiNu-d.mjs} +1 -1
- package/dist/turnstile-wAU0Gc2Z.mjs +23 -0
- package/dist/{ui-Dj3No2vN.mjs → ui-BXjU1dX1.mjs} +1 -1
- package/dist/url-normalization-DZrWDgB5.mjs +3 -0
- package/dist/url-scanner-Zo49edNp.mjs +2 -0
- package/dist/user-DbXlVReB.mjs +10 -0
- package/dist/vectorize-CUnTM0DT.mjs +4 -0
- package/dist/versions-DzyrlUAi.mjs +2 -0
- package/dist/{vuln-scanner-B1VwCIko.mjs → vuln-scanner-Br_2lQp1.mjs} +1 -1
- package/dist/waiting-rooms-BZW0X69-.mjs +11 -0
- package/dist/web3-DueyOQtx.mjs +4 -0
- package/dist/workers-builds-BM_aoeUR.mjs +7 -0
- package/dist/workers-nV_vBCfV.mjs +16 -0
- package/dist/workflows-CQITmo-s.mjs +4 -0
- package/dist/zaraz-DIbpF5Op.mjs +2 -0
- package/dist/zero-trust-CKp8j512.mjs +119 -0
- package/dist/zones-BZ5tZDbH.mjs +28 -0
- package/package.json +13 -3
- package/dist/abuse-reports-DR0yMg-Q.mjs +0 -2
- package/dist/accounts-BjGtCB8T.mjs +0 -6
- package/dist/acm-h4YPDN7k.mjs +0 -3
- package/dist/addressing-BiEnQ1o1.mjs +0 -11
- package/dist/ai-BPln2Yka.mjs +0 -2
- package/dist/ai-gateway-DgD9nKyd.mjs +0 -8
- package/dist/ai-search-EjrONI5a.mjs +0 -7
- package/dist/alerting-CPWMKr-m.mjs +0 -6
- package/dist/analytics-3dX9-scQ.mjs +0 -2
- package/dist/api-gateway-7FKFHdI-.mjs +0 -9
- package/dist/argo-Dxz9P37E.mjs +0 -2
- package/dist/audit-logs-D_Xw5x8Y.mjs +0 -2
- package/dist/auth-BHD_B2p9.mjs +0 -277
- package/dist/auth-caVo2j1K.mjs +0 -6
- package/dist/autorag-D7nMweNF.mjs +0 -2
- package/dist/billing-yaIBp1Xq.mjs +0 -2
- package/dist/body-parser-iA3vRFmh.mjs +0 -2
- package/dist/bot-management-C0H6U0t4.mjs +0 -2
- package/dist/botnet-feed-BXV9GVwF.mjs +0 -3
- package/dist/brand-protection-CI0NQa_l.mjs +0 -3
- package/dist/browser-rendering-DnKNRJJe.mjs +0 -4
- package/dist/cache-B6M_pm_D.mjs +0 -5
- package/dist/calls-C5XCC0i1.mjs +0 -4
- package/dist/certificate-authorities-BQuHL4dm.mjs +0 -2
- package/dist/client-certificates-CwpzEnCT.mjs +0 -3
- package/dist/cloud-connector-CU3PLNLe.mjs +0 -2
- package/dist/cloudforce-one-DzrArr1o.mjs +0 -21
- package/dist/config-BmTd_qeU.mjs +0 -2
- package/dist/connectivity-C4tXPkW_.mjs +0 -3
- package/dist/content-scanning-CH_YXdlZ.mjs +0 -4
- package/dist/context-6lBIck1r.mjs +0 -2
- package/dist/custom-certificates-pllRyU2y.mjs +0 -3
- package/dist/custom-hostnames-GmF0DfYA.mjs +0 -5
- package/dist/custom-nameservers-DPVHUlUQ.mjs +0 -3
- package/dist/custom-pages-XWwfn7hV.mjs +0 -4
- package/dist/d1-c_zhZGWf.mjs +0 -3
- package/dist/dcv-delegation-pXpU48A8.mjs +0 -2
- package/dist/dev-Bu26u5Jm.mjs +0 -14
- package/dist/diagnostics-BU07Jnku.mjs +0 -3
- package/dist/dispatch-namespaces-D_Kq_2gX.mjs +0 -7
- package/dist/dns-CrvIxztB.mjs +0 -11
- package/dist/dns-firewall-CLtGAQ9x.mjs +0 -3
- package/dist/dry-run-FV0pZwdg.mjs +0 -2
- package/dist/durable-objects-Y5rLFSQX.mjs +0 -2
- package/dist/email-routing-CxU5JlXT.mjs +0 -10
- package/dist/email-security-CnpAHWpj.mjs +0 -8
- package/dist/email-sending-MeCKsktR.mjs +0 -3
- package/dist/filters-Sx2Po1UP.mjs +0 -4
- package/dist/firewall-B0_012XO.mjs +0 -9
- package/dist/fraud-CG0G_VG-.mjs +0 -2
- package/dist/google-tag-gateway-BLbj1y3h.mjs +0 -2
- package/dist/healthchecks-C0LgExxa.mjs +0 -4
- package/dist/hostnames-D4K6s9EX.mjs +0 -3
- package/dist/hyperdrive-D7XvTRys.mjs +0 -3
- package/dist/iam-4LhJianW.mjs +0 -6
- package/dist/images-BqXyIycX.mjs +0 -5
- package/dist/input-validation-BpVQi9rR.mjs +0 -2
- package/dist/intel-CiO3Sy4x.mjs +0 -3
- package/dist/ips-DLuGN7Mr.mjs +0 -2
- package/dist/keyless-certificates-x-87T5SM.mjs +0 -3
- package/dist/kv-CVYCrk7L.mjs +0 -5
- package/dist/leaked-credential-checks-FvhVCL23.mjs +0 -3
- package/dist/load-balancers-cxodJuI2.mjs +0 -6
- package/dist/local-OqhVQbv0.mjs +0 -2
- package/dist/logpush-BX7z2xWz.mjs +0 -4
- package/dist/logs-C7vxr6Kp.mjs +0 -3
- package/dist/magic-cloud-networking-C3grROf-.mjs +0 -5
- package/dist/magic-network-monitoring-DiZ5ZXxh.mjs +0 -4
- package/dist/magic-transit-troGMFb9.mjs +0 -30
- package/dist/managed-transforms-B5w_LlVN.mjs +0 -3
- package/dist/mtls-certificates-C1S9MciH.mjs +0 -3
- package/dist/network-interconnects-CVSiv1fF.mjs +0 -4
- package/dist/organizations-BtlEchi-.mjs +0 -4
- package/dist/origin-ca-certificates-0XCi4dO6.mjs +0 -3
- package/dist/origin-post-quantum-encryption-CTvkdYDG.mjs +0 -2
- package/dist/origin-tls-client-auth-qAvRD1BQ.mjs +0 -5
- package/dist/page-rules-CcMmrvY4.mjs +0 -3
- package/dist/page-shield-Dxh4bJ-w.mjs +0 -3
- package/dist/pages-F1vdzqgC.mjs +0 -6
- package/dist/pipelines-DsF1HHMY.mjs +0 -6
- package/dist/progress-5sHFvwez.mjs +0 -2
- package/dist/queues-BuvkxFPX.mjs +0 -6
- package/dist/r2-Du-fgHiT.mjs +0 -9
- package/dist/r2-data-catalog-BUiMNSwc.mjs +0 -3
- package/dist/radar-C0eqNmWR.mjs +0 -2
- package/dist/rate-limits-CUv2cxXV.mjs +0 -3
- package/dist/raw-fetch-CxFs4i0R.mjs +0 -2
- package/dist/realtime-kit-C-jix3I_.mjs +0 -6
- package/dist/registrar-B7V7i89n.mjs +0 -2
- package/dist/request-tracers-D2V7QUrC.mjs +0 -2
- package/dist/resolve-GtphSYWh.mjs +0 -2
- package/dist/resource-sharing-BgH0w9wm.mjs +0 -5
- package/dist/resource-tagging-BOknFugv.mjs +0 -4
- package/dist/rolldown-runtime-CR7SCCRW.mjs +0 -2
- package/dist/rules-DzJFHGW1.mjs +0 -4
- package/dist/rulesets-BzI1dUiq.mjs +0 -8
- package/dist/rum-CQ_rJ96u.mjs +0 -4
- package/dist/schema-validation-TmikfxS9.mjs +0 -4
- package/dist/scim-ByZ5kqXS.mjs +0 -3
- package/dist/secrets-store-D7HL4VXw.mjs +0 -8
- package/dist/security-center-OUrILUnx.mjs +0 -2
- package/dist/security-txt-Ca13oCJ8.mjs +0 -3
- package/dist/session-Dxi_LbAk.mjs +0 -2
- package/dist/smart-shield-foPT0J9L.mjs +0 -3
- package/dist/snippets-FDPiBMWc.mjs +0 -4
- package/dist/spectrum-DPoh_BPx.mjs +0 -3
- package/dist/speed-BuEappVX.mjs +0 -4
- package/dist/src-D8_cWUwt.mjs +0 -104
- package/dist/ssl-bJbzEoRv.mjs +0 -3
- package/dist/stream-DuYGiGk6.mjs +0 -13
- package/dist/tenants-BYqEutrr.mjs +0 -2
- package/dist/token-validation-DwmtbWUB.mjs +0 -4
- package/dist/turnstile-Dy91RVTn.mjs +0 -3
- package/dist/url-normalization-DoD9iHWH.mjs +0 -3
- package/dist/url-scanner-qwL64FIo.mjs +0 -2
- package/dist/user-Cduf3VRi.mjs +0 -7
- package/dist/vectorize-CMLobU9V.mjs +0 -4
- package/dist/waiting-rooms-B4-IAJeT.mjs +0 -5
- package/dist/web3-Bcx68Kq3.mjs +0 -4
- package/dist/workers-D5fOQsUA.mjs +0 -16
- package/dist/workers-builds-2kdzxjlN.mjs +0 -7
- package/dist/workflows-qFD80noW.mjs +0 -4
- package/dist/zaraz-C0iJimA4.mjs +0 -2
- package/dist/zero-trust-Btix6zOy.mjs +0 -73
- package/dist/zones-Nu3wMtds.mjs +0 -5
- /package/dist/{metadata-DhSO1vle.mjs → metadata-DGdCpUxn.mjs} +0 -0
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{d as e,h as t,o as n,p as r,t as i}from"./auth-BHD_B2p9.mjs";import{n as a,r as o}from"./input-validation-BpVQi9rR.mjs";import{n as s,t as c}from"./body-parser-iA3vRFmh.mjs";import{t as l}from"./output-CqGQp2r6.mjs";import{t as u}from"./dry-run-FV0pZwdg.mjs";import{t as d}from"./local-OqhVQbv0.mjs";import{t as f}from"./progress-5sHFvwez.mjs";const p={command:`create`,describe:`Creates a new AI Gateway.`,builder:e=>e.option(`authentication`,{type:`boolean`,description:`The authentication field`}).option(`cache-invalidate-on-update`,{type:`boolean`,description:`The cache_invalidate_on_update field`}).option(`cache-ttl`,{type:`number`,description:`The cache_ttl field`}).option(`collect-logs`,{type:`boolean`,description:`The collect_logs field`}).option(`id`,{type:`string`,description:`gateway id`}).option(`log-management`,{type:`number`,description:`The log_management field`}).option(`log-management-strategy`,{type:`string`,description:`The log_management_strategy field`,choices:[`STOP_INSERTING`,`DELETE_OLDEST`]}).option(`logpush`,{type:`boolean`,description:`The logpush field`}).option(`logpush-public-key`,{type:`string`,description:`The logpush_public_key field`}).option(`rate-limiting-interval`,{type:`number`,description:`The rate_limiting_interval field`}).option(`rate-limiting-limit`,{type:`number`,description:`The rate_limiting_limit field`}).option(`rate-limiting-technique`,{type:`string`,description:`The rate_limiting_technique field`,choices:[`fixed`,`sliding`]}).option(`retry-backoff`,{type:`string`,description:`Backoff strategy for retry delays`,choices:[`constant`,`linear`,`exponential`]}).option(`retry-delay`,{type:`number`,description:`Delay between retry attempts in milliseconds (0-5000)`}).option(`retry-max-attempts`,{type:`number`,description:`Maximum number of retry attempts for failed requests (1-5)`}).option(`workers-ai-billing-mode`,{type:`string`,description:`Controls how Workers AI inference calls routed through this gateway are billed. Only 'postpaid' is currently supported.`,choices:[`postpaid`],default:`postpaid`}).option(`zdr`,{type:`boolean`,description:`The zdr field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways`,pathParams:{},bodyKind:`json`,body:{authentication:r.authentication,cacheInvalidateOnUpdate:r.cacheInvalidateOnUpdate,cacheTtl:r.cacheTtl,collectLogs:r.collectLogs,id:r.id,logManagement:r.logManagement,logManagementStrategy:r.logManagementStrategy,logpush:r.logpush,logpushPublicKey:r.logpushPublicKey,rateLimitingInterval:r.rateLimitingInterval,rateLimitingLimit:r.rateLimitingLimit,rateLimitingTechnique:r.rateLimitingTechnique,retryBackoff:r.retryBackoff,retryDelay:r.retryDelay,retryMaxAttempts:r.retryMaxAttempts,workersAiBillingMode:r.workersAiBillingMode,zdr:r.zdr,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Creating ai gateway`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways`,{body:e})),{successLabel:`Created ai gateway`});return}if(r.cacheInvalidateOnUpdate===void 0)throw Error(`--cache-invalidate-on-update is required (or pass --body with this field set).`);if(r.cacheTtl===void 0)throw Error(`--cache-ttl is required (or pass --body with this field set).`);if(r.collectLogs===void 0)throw Error(`--collect-logs is required (or pass --body with this field set).`);if(r.id===void 0&&(r.id=await t(`id`,`gateway id`)),r.rateLimitingInterval===void 0)throw Error(`--rate-limiting-interval is required (or pass --body with this field set).`);if(r.rateLimitingLimit===void 0)throw Error(`--rate-limiting-limit is required (or pass --body with this field set).`);let h={};r.authentication!==void 0&&s(h,[`authentication`],r.authentication),r.cacheInvalidateOnUpdate!==void 0&&s(h,[`cache_invalidate_on_update`],r.cacheInvalidateOnUpdate),r.cacheTtl!==void 0&&s(h,[`cache_ttl`],r.cacheTtl),r.collectLogs!==void 0&&s(h,[`collect_logs`],r.collectLogs),r.id!==void 0&&s(h,[`id`],a(r.id,`id`,`text`)),r.logManagement!==void 0&&s(h,[`log_management`],r.logManagement),r.logManagementStrategy!==void 0&&s(h,[`log_management_strategy`],a(r.logManagementStrategy,`logManagementStrategy`,`text`)),r.logpush!==void 0&&s(h,[`logpush`],r.logpush),r.logpushPublicKey!==void 0&&s(h,[`logpush_public_key`],a(r.logpushPublicKey,`logpushPublicKey`,`text`)),r.rateLimitingInterval!==void 0&&s(h,[`rate_limiting_interval`],r.rateLimitingInterval),r.rateLimitingLimit!==void 0&&s(h,[`rate_limiting_limit`],r.rateLimitingLimit),r.rateLimitingTechnique!==void 0&&s(h,[`rate_limiting_technique`],a(r.rateLimitingTechnique,`rateLimitingTechnique`,`text`)),r.retryBackoff!==void 0&&s(h,[`retry_backoff`],a(r.retryBackoff,`retryBackoff`,`text`)),r.retryDelay!==void 0&&s(h,[`retry_delay`],r.retryDelay),r.retryMaxAttempts!==void 0&&s(h,[`retry_max_attempts`],r.retryMaxAttempts),r.workersAiBillingMode!==void 0&&s(h,[`workers_ai_billing_mode`],a(r.workersAiBillingMode,`workersAiBillingMode`,`text`)),r.zdr!==void 0&&s(h,[`zdr`],r.zdr),l(await f(`Creating ai gateway`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created ai gateway`})}},m={command:`create <gatewayId>`,describe:`Creates a new AI Gateway.`,builder:e=>e.positional(`gatewayId`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`enable`,{type:`boolean`,description:`The enable field`}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.gatewayId,`gatewayId`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway datasets create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/datasets`,pathParams:{gatewayId:String(r.gatewayId??``)},bodyKind:`json`,body:{enable:r.enable,name:r.name,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Creating dataset`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/datasets`,{body:e})),{successLabel:`Created dataset`});return}if(r.enable===void 0)throw Error(`--enable is required (or pass --body with this field set).`);r.name===void 0&&(r.name=await t(`name`,``));let h={};r.enable!==void 0&&s(h,[`enable`],r.enable),r.name!==void 0&&s(h,[`name`],a(r.name,`name`,`text`)),l(await f(`Creating dataset`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/datasets`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created dataset`})}},h={command:`delete <id>`,describe:`Deletes an AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway datasets delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.gatewayId??`<gatewayId>`}/datasets/${t.id??`<id>`}`,pathParams:{gatewayId:String(t.gatewayId??``),id:String(t.id??``)},bodyKind:`none`,validation:`passed`});return}let a=await i(t),s=t.local?d:await n(a);if(t.accountId=s,!await r(`dataset`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
3
|
-
`);return}l(await f(`Deleting dataset`,async()=>a.aiGateway.datasets.delete(s,t.gatewayId,t.id)),{successLabel:`Deleted dataset`})}},g={command:`get <id>`,describe:`Retrieves details for a specific AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading dataset`,async()=>t.aiGateway.datasets.get(r,e.gatewayId,e.id)),{successLabel:`Loaded dataset`})}},_={command:`list`,describe:`Lists all AI Gateway evaluator types configured for the account.`,builder:e=>e.option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`name`,{type:`string`,description:`Name`}).option(`enable`,{type:`boolean`,description:`Enable`,default:!1}).option(`search`,{type:`string`,description:`Search by id, name, filters`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.name!==void 0&&(t.name=e.name),e.enable!==void 0&&(t.enable=e.enable),e.search!==void 0&&(t.search=e.search);let r=await i(e),a=e.local?d:await n(r);e.accountId=a,l(await f(`Loading datasets`,async()=>r.aiGateway.datasets.list(a,e.gatewayId,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded datasets`})}},v={command:`update <id>`,describe:`Updates an existing AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`enable`,{type:`boolean`,description:`The enable field`}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.id,`id`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway datasets update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/datasets/${r.id??`<id>`}`,pathParams:{gatewayId:String(r.gatewayId??``),id:String(r.id??``)},bodyKind:`json`,body:{enable:r.enable,name:r.name,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Updating dataset`,async()=>p.put(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/datasets/${r.id}`,{body:e})),{successLabel:`Updated dataset`});return}if(r.enable===void 0)throw Error(`--enable is required (or pass --body with this field set).`);r.name===void 0&&(r.name=await t(`name`,``));let h={};r.enable!==void 0&&s(h,[`enable`],r.enable),r.name!==void 0&&s(h,[`name`],a(r.name,`name`,`text`)),l(await f(`Updating dataset`,async()=>p.put(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/datasets/${r.id}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated dataset`})}},y={command:`datasets`,describe:`Curated collections of gateway logs used as inputs for evaluations and fine-tuning`,builder:e=>e.command(m).command(h).command(g).command(_).command(v).demandCommand(1),handler:()=>{}},b={command:`delete <id>`,describe:`Deletes an AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.id??`<id>`}`,pathParams:{id:String(t.id??``)},bodyKind:`none`,validation:`passed`});return}let a=await i(t),s=t.local?d:await n(a);if(t.accountId=s,!await r(`ai gateway`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
4
|
-
`);return}l(await f(`Deleting ai gateway`,async()=>a.aiGateway.delete(s,t.id)),{successLabel:`Deleted ai gateway`})}},x={command:`create-deployment <id>`,describe:`Create a new AI Gateway Dynamic Route Deployment.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}).option(`version-id`,{type:`string`,description:`The version_id field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.id,`id`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway dynamic-routing create-deployment`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/routes/${r.id??`<id>`}/deployments`,pathParams:{gatewayId:String(r.gatewayId??``),id:String(r.id??``)},bodyKind:`json`,body:{versionId:r.versionId,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Creating dynamic routing`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/routes/${r.id}/deployments`,{body:e})),{successLabel:`Created dynamic routing`});return}r.versionId===void 0&&(r.versionId=await t(`version-id`,``));let h={};r.versionId!==void 0&&s(h,[`version_id`],a(r.versionId,`versionId`,`text`)),l(await f(`Creating dynamic routing`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/routes/${r.id}/deployments`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created dynamic routing`})}},S={command:`create-version <id>`,describe:`Create a new AI Gateway Dynamic Route Version.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway dynamic-routing create-version`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.gatewayId??`<gatewayId>`}/routes/${t.id??`<id>`}/versions`,pathParams:{gatewayId:String(t.gatewayId??``),id:String(t.id??``)},bodyKind:`json`,body:{body:t.body},validation:`passed`});return}let r=await i(t),a=t.local?d:await n(r);if(t.accountId=a,t.body){let e=c(t.body);l(await f(`Creating dynamic routing`,async()=>r.post(`/accounts/${a}/ai-gateway/gateways/${t.gatewayId}/routes/${t.id}/versions`,{body:e})),{successLabel:`Created dynamic routing`});return}l(await f(`Creating dynamic routing`,async()=>r.aiGateway.dynamicRouting.createVersion(a,t.gatewayId,t.id)),{successLabel:`Created dynamic routing`})}},C={command:`create <gatewayId>`,describe:`Create a new AI Gateway Dynamic Route.`,builder:e=>e.positional(`gatewayId`,{type:`string`,description:`Gateway ID`,demandOption:!0}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.gatewayId,`gatewayId`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway dynamic-routing create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/routes`,pathParams:{gatewayId:String(r.gatewayId??``)},bodyKind:`json`,body:{name:r.name,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Creating dynamic routing`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/routes`,{body:e})),{successLabel:`Created dynamic routing`});return}r.name===void 0&&(r.name=await t(`name`,``));let h={};r.name!==void 0&&s(h,[`name`],a(r.name,`name`,`text`)),l(await f(`Creating dynamic routing`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/routes`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created dynamic routing`})}},w={command:`delete <id>`,describe:`Delete an AI Gateway Dynamic Route.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway dynamic-routing delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.gatewayId??`<gatewayId>`}/routes/${t.id??`<id>`}`,pathParams:{gatewayId:String(t.gatewayId??``),id:String(t.id??``)},bodyKind:`none`,validation:`passed`});return}let a=await i(t),s=t.local?d:await n(a);if(t.accountId=s,!await r(`dynamic routing`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
5
|
-
`);return}l(await f(`Deleting dynamic routing`,async()=>a.aiGateway.dynamicRouting.delete(s,t.gatewayId,t.id)),{successLabel:`Deleted dynamic routing`})}},T={command:`get-version <versionId>`,describe:`Get an AI Gateway Dynamic Route Version.`,builder:e=>e.positional(`versionId`,{type:`string`,description:`Version ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}).option(`id`,{type:`string`,description:`ID`,demandOption:!0}),handler:async e=>{o(e.versionId,`versionId`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading dynamic routing`,async()=>t.aiGateway.dynamicRouting.getVersion(r,e.gatewayId,e.id,e.versionId)),{successLabel:`Loaded dynamic routing`})}},E={command:`get <id>`,describe:`Get an AI Gateway Dynamic Route.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading dynamic routing`,async()=>t.aiGateway.dynamicRouting.get(r,e.gatewayId,e.id)),{successLabel:`Loaded dynamic routing`})}},D={command:`list-deployments <id>`,describe:`List all AI Gateway Dynamic Route Deployments.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading dynamic routing`,async()=>t.aiGateway.dynamicRouting.listDeployments(r,e.gatewayId,e.id)),{successLabel:`Loaded dynamic routing`})}},O={command:`list-versions <id>`,describe:`List all AI Gateway Dynamic Route Versions.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading dynamic routing`,async()=>t.aiGateway.dynamicRouting.listVersions(r,e.gatewayId,e.id)),{successLabel:`Loaded dynamic routing`})}},k={command:`list`,describe:`List all AI Gateway Dynamic Routes.`,builder:e=>e.option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}),handler:async e=>{let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading dynamic routing`,async()=>t.aiGateway.dynamicRouting.list(r,e.gatewayId)),{successLabel:`Loaded dynamic routing`})}},A={command:`update <id>`,describe:`Update an AI Gateway Dynamic Route.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`Gateway ID`,demandOption:!0}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.id,`id`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway dynamic-routing update`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/routes/${r.id??`<id>`}`,pathParams:{gatewayId:String(r.gatewayId??``),id:String(r.id??``)},bodyKind:`json`,body:{name:r.name,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Updating dynamic routing`,async()=>p.patch(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/routes/${r.id}`,{body:e})),{successLabel:`Updated dynamic routing`});return}r.name===void 0&&(r.name=await t(`name`,``));let h={};r.name!==void 0&&s(h,[`name`],a(r.name,`name`,`text`)),l(await f(`Updating dynamic routing`,async()=>p.patch(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/routes/${r.id}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated dynamic routing`})}},j={command:`dynamic-routing`,describe:`Route requests across multiple AI providers with fallback, load-balancing, and versioned deployments`,builder:e=>e.command(C).command(x).command(S).command(w).command(E).command(T).command(k).command(D).command(O).command(A).demandCommand(1),handler:()=>{}},M={command:`list`,describe:`Lists all available evaluator types for scoring AI gateway responses.`,builder:e=>e.option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`order-by`,{type:`string`,description:`Order by`}).option(`order-by-direction`,{type:`string`,description:`Order by direction`,choices:[`asc`,`desc`]}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.orderBy!==void 0&&(t.order_by=e.orderBy),e.orderByDirection!==void 0&&(t.order_by_direction=e.orderByDirection);let r=await i(e),a=e.local?d:await n(r);e.accountId=a,l(await f(`Loading evaluation types`,async()=>r.aiGateway.evaluationTypes.list(a,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded evaluation types`})}},N={command:`evaluation-types`,describe:`Available evaluator types for scoring AI gateway responses (accuracy, toxicity, etc.)`,builder:e=>e.command(M).demandCommand(1),handler:()=>{}},P={command:`create <gatewayId>`,describe:`Creates a new AI Gateway.`,builder:e=>e.positional(`gatewayId`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`dataset-ids`,{type:`string`,array:!0,description:`The dataset_ids field`}).option(`evaluation-type-ids`,{type:`string`,array:!0,description:`The evaluation_type_ids field`}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.gatewayId,`gatewayId`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway evaluations create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/evaluations`,pathParams:{gatewayId:String(r.gatewayId??``)},bodyKind:`json`,body:{datasetIds:r.datasetIds,evaluationTypeIds:r.evaluationTypeIds,name:r.name,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Creating evaluation`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/evaluations`,{body:e})),{successLabel:`Created evaluation`});return}if(r.datasetIds===void 0)throw Error(`--dataset-ids is required (or pass --body with this field set).`);if(r.evaluationTypeIds===void 0)throw Error(`--evaluation-type-ids is required (or pass --body with this field set).`);r.name===void 0&&(r.name=await t(`name`,``));let h={};r.datasetIds!==void 0&&s(h,[`dataset_ids`],r.datasetIds),r.evaluationTypeIds!==void 0&&s(h,[`evaluation_type_ids`],r.evaluationTypeIds),r.name!==void 0&&s(h,[`name`],a(r.name,`name`,`text`)),l(await f(`Creating evaluation`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/evaluations`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created evaluation`})}},F={command:`delete <id>`,describe:`Deletes an AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway evaluations delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.gatewayId??`<gatewayId>`}/evaluations/${t.id??`<id>`}`,pathParams:{gatewayId:String(t.gatewayId??``),id:String(t.id??``)},bodyKind:`none`,validation:`passed`});return}let a=await i(t),s=t.local?d:await n(a);if(t.accountId=s,!await r(`evaluation`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
6
|
-
`);return}l(await f(`Deleting evaluation`,async()=>a.aiGateway.evaluations.delete(s,t.gatewayId,t.id)),{successLabel:`Deleted evaluation`})}},I={command:`get <id>`,describe:`Retrieves details for a specific AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading evaluation`,async()=>t.aiGateway.evaluations.get(r,e.gatewayId,e.id)),{successLabel:`Loaded evaluation`})}},ee={command:`list`,describe:`Lists all AI Gateway evaluator types configured for the account.`,builder:e=>e.option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`name`,{type:`string`,description:`Name`}).option(`processed`,{type:`boolean`,description:`Processed`,default:!1}).option(`search`,{type:`string`,description:`Search by id, name`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.name!==void 0&&(t.name=e.name),e.processed!==void 0&&(t.processed=e.processed),e.search!==void 0&&(t.search=e.search);let r=await i(e),a=e.local?d:await n(r);e.accountId=a,l(await f(`Loading evaluations`,async()=>r.aiGateway.evaluations.list(a,e.gatewayId,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded evaluations`})}},L={command:`evaluations`,describe:`Run quality evaluations against gateway logs or datasets to score model outputs`,builder:e=>e.command(P).command(F).command(I).command(ee).demandCommand(1),handler:()=>{}},R={command:`get <id>`,describe:`Retrieves details for a specific AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`gateway id`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading ai gateway`,async()=>t.aiGateway.get(r,e.id)),{successLabel:`Loaded ai gateway`})}},z={command:`list`,describe:`Lists all AI Gateway evaluator types configured for the account.`,builder:e=>e.option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`search`,{type:`string`,description:`Search by id`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.search!==void 0&&(t.search=e.search);let r=await i(e),a=e.local?d:await n(r);e.accountId=a,l(await f(`Loading ai gateway`,async()=>r.aiGateway.list(a,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ai gateway`})}},B={command:`delete <gatewayId>`,describe:`Deletes gateway log entries matching the specified criteria.`,builder:e=>e.positional(`gatewayId`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`order-by`,{type:`string`,description:`Order by`,choices:[`created_at`,`provider`,`model`,`model_type`,`success`,`cached`,`cost`,`tokens_in`,`tokens_out`,`duration`,`feedback`]}).option(`order-by-direction`,{type:`string`,description:`Order by direction`,choices:[`asc`,`desc`]}).option(`filters`,{type:`string`,description:`Filters`}).option(`limit`,{type:`number`,description:`Limit`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{o(t.gatewayId,`gatewayId`);let a={};if(t.orderBy!==void 0&&(a.order_by=t.orderBy),t.orderByDirection!==void 0&&(a.order_by_direction=t.orderByDirection),t.filters!==void 0&&(a.filters=t.filters),t.limit!==void 0&&(a.limit=t.limit),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway logs delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.gatewayId??`<gatewayId>`}/logs`,pathParams:{gatewayId:String(t.gatewayId??``)},bodyKind:`json`,body:{...a},validation:`passed`});return}let s=await i(t),c=t.local?d:await n(s);if(t.accountId=c,!await r(`log`,String(t.gatewayId??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
7
|
-
`);return}l(await f(`Deleting log`,async()=>s.aiGateway.logs.delete(c,t.gatewayId,Object.keys(a).length>0?a:void 0)),{successLabel:`Deleted log`})}},V={command:`edit <id>`,describe:`Updates metadata for an AI Gateway log entry.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`feedback`,{type:`number`,description:`The feedback field`}).option(`score`,{type:`number`,description:`The score field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway logs edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.gatewayId??`<gatewayId>`}/logs/${t.id??`<id>`}`,pathParams:{id:String(t.id??``),gatewayId:String(t.gatewayId??``)},bodyKind:`json`,body:{feedback:t.feedback,score:t.score,body:t.body},validation:`passed`});return}let r=await i(t),a=t.local?d:await n(r);if(t.accountId=a,t.body){let e=c(t.body);l(await f(`Updating log`,async()=>r.patch(`/accounts/${a}/ai-gateway/gateways/${t.gatewayId}/logs/${t.id}`,{body:e})),{successLabel:`Updated log`});return}let p={};t.feedback!==void 0&&s(p,[`feedback`],t.feedback),t.score!==void 0&&s(p,[`score`],t.score),l(await f(`Updating log`,async()=>r.patch(`/accounts/${a}/ai-gateway/gateways/${t.gatewayId}/logs/${t.id}`,{body:Object.keys(p).length>0?p:void 0})),{successLabel:`Updated log`})}},H={command:`get <id>`,describe:`Retrieves detailed information for a specific AI Gateway log entry.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading log`,async()=>t.aiGateway.logs.get(e.id,e.gatewayId,r)),{successLabel:`Loaded log`})}},U={command:`list`,describe:`Lists request/response log entries for the AI gateway with filtering and pagination.`,builder:e=>e.option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`search`,{type:`string`,description:`Search`}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`order-by`,{type:`string`,description:`Order by`,choices:[`created_at`,`provider`,`model`,`model_type`,`success`,`cached`]}).option(`order-by-direction`,{type:`string`,description:`Order by direction`,choices:[`asc`,`desc`]}).option(`filters`,{type:`string`,description:`Filters`}).option(`meta-info`,{type:`boolean`,description:`Meta info`,default:!1}).option(`direction`,{type:`string`,description:`Direction`,choices:[`asc`,`desc`]}).option(`start-date`,{type:`string`,description:`Start date`}).option(`end-date`,{type:`string`,description:`End date`}).option(`min-cost`,{type:`number`,description:`Min cost`}).option(`max-cost`,{type:`number`,description:`Max cost`}).option(`min-tokens-in`,{type:`number`,description:`Min tokens in`}).option(`max-tokens-in`,{type:`number`,description:`Max tokens in`}).option(`min-tokens-out`,{type:`number`,description:`Min tokens out`}).option(`max-tokens-out`,{type:`number`,description:`Max tokens out`}).option(`min-total-tokens`,{type:`number`,description:`Min total tokens`}).option(`max-total-tokens`,{type:`number`,description:`Max total tokens`}).option(`min-duration`,{type:`number`,description:`Min duration`}).option(`max-duration`,{type:`number`,description:`Max duration`}).option(`feedback`,{type:`string`,description:`Feedback`}).option(`success`,{type:`boolean`,description:`Success`,default:!1}).option(`cached`,{type:`boolean`,description:`Cached`,default:!1}).option(`model`,{type:`string`,description:`Model`}).option(`model-type`,{type:`string`,description:`Model type`}).option(`provider`,{type:`string`,description:`Provider`}).option(`request-content-type`,{type:`string`,description:`Request content type`}).option(`response-content-type`,{type:`string`,description:`Response content type`}),handler:async e=>{let t={};e.search!==void 0&&(t.search=e.search),e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.orderBy!==void 0&&(t.order_by=e.orderBy),e.orderByDirection!==void 0&&(t.order_by_direction=e.orderByDirection),e.filters!==void 0&&(t.filters=e.filters),e.metaInfo!==void 0&&(t.meta_info=e.metaInfo),e.direction!==void 0&&(t.direction=e.direction),e.startDate!==void 0&&(t.start_date=e.startDate),e.endDate!==void 0&&(t.end_date=e.endDate),e.minCost!==void 0&&(t.min_cost=e.minCost),e.maxCost!==void 0&&(t.max_cost=e.maxCost),e.minTokensIn!==void 0&&(t.min_tokens_in=e.minTokensIn),e.maxTokensIn!==void 0&&(t.max_tokens_in=e.maxTokensIn),e.minTokensOut!==void 0&&(t.min_tokens_out=e.minTokensOut),e.maxTokensOut!==void 0&&(t.max_tokens_out=e.maxTokensOut),e.minTotalTokens!==void 0&&(t.min_total_tokens=e.minTotalTokens),e.maxTotalTokens!==void 0&&(t.max_total_tokens=e.maxTotalTokens),e.minDuration!==void 0&&(t.min_duration=e.minDuration),e.maxDuration!==void 0&&(t.max_duration=e.maxDuration),e.feedback!==void 0&&(t.feedback=e.feedback),e.success!==void 0&&(t.success=e.success),e.cached!==void 0&&(t.cached=e.cached),e.model!==void 0&&(t.model=e.model),e.modelType!==void 0&&(t.model_type=e.modelType),e.provider!==void 0&&(t.provider=e.provider),e.requestContentType!==void 0&&(t.request_content_type=e.requestContentType),e.responseContentType!==void 0&&(t.response_content_type=e.responseContentType);let r=await i(e),a=e.local?d:await n(r);e.accountId=a,l(await f(`Loading logs`,async()=>r.aiGateway.logs.list(a,e.gatewayId,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded logs`})}},W={command:`request <id>`,describe:`Retrieves the original request payload for an AI Gateway log entry.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading log`,async()=>t.aiGateway.logs.request(e.id,e.gatewayId,r)),{successLabel:`Loaded log`})}},G={command:`response <id>`,describe:`Retrieves the response payload for an AI Gateway log entry.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}),handler:async e=>{o(e.id,`id`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading log`,async()=>t.aiGateway.logs.response(e.id,e.gatewayId,r)),{successLabel:`Loaded log`})}},K={command:`logs`,describe:`Inspect individual request/response pairs that passed through the gateway`,builder:e=>e.command(B).command(V).command(H).command(U).command(W).command(G).demandCommand(1),handler:()=>{}},q={command:`create <gatewayId>`,describe:`Creates a new AI Gateway.`,builder:e=>e.positional(`gatewayId`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`alias`,{type:`string`,description:`The alias field`}).option(`default-config`,{type:`boolean`,description:`The default_config field`}).option(`provider-slug`,{type:`string`,description:`The provider_slug field`}).option(`rate-limit`,{type:`number`,description:`The rate_limit field`}).option(`rate-limit-period`,{type:`number`,description:`The rate_limit_period field`,default:60}).option(`secret`,{type:`string`,description:`The secret field`}).option(`secret-id`,{type:`string`,description:`The secret_id field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.gatewayId,`gatewayId`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway provider-configs create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/provider_configs`,pathParams:{gatewayId:String(r.gatewayId??``)},bodyKind:`json`,body:{alias:r.alias,defaultConfig:r.defaultConfig,providerSlug:r.providerSlug,rateLimit:r.rateLimit,rateLimitPeriod:r.rateLimitPeriod,secret:r.secret,secretId:r.secretId,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Creating provider config`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/provider_configs`,{body:e})),{successLabel:`Created provider config`});return}if(r.alias===void 0&&(r.alias=await t(`alias`,``)),r.defaultConfig===void 0)throw Error(`--default-config is required (or pass --body with this field set).`);r.providerSlug===void 0&&(r.providerSlug=await t(`provider-slug`,``)),r.secret===void 0&&(r.secret=await t(`secret`,``)),r.secretId===void 0&&(r.secretId=await t(`secret-id`,``));let h={};r.alias!==void 0&&s(h,[`alias`],a(r.alias,`alias`,`text`)),r.defaultConfig!==void 0&&s(h,[`default_config`],r.defaultConfig),r.providerSlug!==void 0&&s(h,[`provider_slug`],a(r.providerSlug,`providerSlug`,`text`)),r.rateLimit!==void 0&&s(h,[`rate_limit`],r.rateLimit),r.rateLimitPeriod!==void 0&&s(h,[`rate_limit_period`],r.rateLimitPeriod),r.secret!==void 0&&s(h,[`secret`],a(r.secret,`secret`,`text`)),r.secretId!==void 0&&s(h,[`secret_id`],a(r.secretId,`secretId`,`text`)),l(await f(`Creating provider config`,async()=>p.post(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/provider_configs`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created provider config`})}},J={command:`delete <id>`,describe:`Deletes an AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway provider-configs delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.gatewayId??`<gatewayId>`}/provider_configs/${t.id??`<id>`}`,pathParams:{gatewayId:String(t.gatewayId??``),id:String(t.id??``)},bodyKind:`none`,validation:`passed`});return}let a=await i(t),s=t.local?d:await n(a);if(t.accountId=s,!await r(`provider config`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
8
|
-
`);return}l(await f(`Deleting provider config`,async()=>a.aiGateway.providerConfigs.delete(s,t.gatewayId,t.id)),{successLabel:`Deleted provider config`})}},Y={command:`list`,describe:`Lists all AI Gateway evaluator types configured for the account.`,builder:e=>e.option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage);let r=await i(e),a=e.local?d:await n(r);e.accountId=a,l(await f(`Loading provider configs`,async()=>r.aiGateway.providerConfigs.list(a,e.gatewayId,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded provider configs`})}},X={command:`update <id>`,describe:`Updates an existing AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`secret`,{type:`string`,description:`The secret field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async r=>{if(o(r.id,`id`),r.dryRun){let t=e();t&&o(t,`accountId`),u({command:`cf ai-gateway provider-configs update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-gateway/gateways/${r.gatewayId??`<gatewayId>`}/provider_configs/${r.id??`<id>`}`,pathParams:{gatewayId:String(r.gatewayId??``),id:String(r.id??``)},bodyKind:`json`,body:{secret:r.secret,body:r.body},validation:`passed`});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=c(r.body);l(await f(`Updating provider config`,async()=>p.put(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/provider_configs/${r.id}`,{body:e})),{successLabel:`Updated provider config`});return}r.secret===void 0&&(r.secret=await t(`secret`,``));let h={};r.secret!==void 0&&s(h,[`secret`],a(r.secret,`secret`,`text`)),l(await f(`Updating provider config`,async()=>p.put(`/accounts/${m}/ai-gateway/gateways/${r.gatewayId}/provider_configs/${r.id}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated provider config`})}},Z={command:`provider-configs`,describe:`Store API keys and endpoint settings for each upstream AI provider`,builder:e=>e.command(q).command(J).command(Y).command(X).demandCommand(1),handler:()=>{}},Q={command:`update <id>`,describe:`Updates an existing AI Gateway dataset.`,builder:e=>e.positional(`id`,{type:`string`,description:`gateway id`,demandOption:!0}).option(`authentication`,{type:`boolean`,description:`The authentication field`}).option(`cache-invalidate-on-update`,{type:`boolean`,description:`The cache_invalidate_on_update field`}).option(`cache-ttl`,{type:`number`,description:`The cache_ttl field`}).option(`collect-logs`,{type:`boolean`,description:`The collect_logs field`}).option(`log-management`,{type:`number`,description:`The log_management field`}).option(`log-management-strategy`,{type:`string`,description:`The log_management_strategy field`,choices:[`STOP_INSERTING`,`DELETE_OLDEST`]}).option(`logpush`,{type:`boolean`,description:`The logpush field`}).option(`logpush-public-key`,{type:`string`,description:`The logpush_public_key field`}).option(`rate-limiting-interval`,{type:`number`,description:`The rate_limiting_interval field`}).option(`rate-limiting-limit`,{type:`number`,description:`The rate_limiting_limit field`}).option(`rate-limiting-technique`,{type:`string`,description:`The rate_limiting_technique field`,choices:[`fixed`,`sliding`]}).option(`retry-backoff`,{type:`string`,description:`Backoff strategy for retry delays`,choices:[`constant`,`linear`,`exponential`]}).option(`retry-delay`,{type:`number`,description:`Delay between retry attempts in milliseconds (0-5000)`}).option(`retry-max-attempts`,{type:`number`,description:`Maximum number of retry attempts for failed requests (1-5)`}).option(`store-id`,{type:`string`,description:`The store_id field`}).option(`stripe-authorization`,{type:`string`,description:`The stripe.authorization field`}).option(`workers-ai-billing-mode`,{type:`string`,description:`Controls how Workers AI inference calls routed through this gateway are billed. Only 'postpaid' is currently supported.`,choices:[`postpaid`]}).option(`zdr`,{type:`boolean`,description:`The zdr field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).check(e=>{if([`stripe-authorization`].some(t=>e[t]!==void 0)){let t=[`stripe-authorization`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --stripe-* flag is set`)}return!0}),handler:async t=>{if(o(t.id,`id`),t.dryRun){let n=e();n&&o(n,`accountId`),u({command:`cf ai-gateway update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-gateway/gateways/${t.id??`<id>`}`,pathParams:{id:String(t.id??``)},bodyKind:`json`,body:{authentication:t.authentication,cacheInvalidateOnUpdate:t.cacheInvalidateOnUpdate,cacheTtl:t.cacheTtl,collectLogs:t.collectLogs,logManagement:t.logManagement,logManagementStrategy:t.logManagementStrategy,logpush:t.logpush,logpushPublicKey:t.logpushPublicKey,rateLimitingInterval:t.rateLimitingInterval,rateLimitingLimit:t.rateLimitingLimit,rateLimitingTechnique:t.rateLimitingTechnique,retryBackoff:t.retryBackoff,retryDelay:t.retryDelay,retryMaxAttempts:t.retryMaxAttempts,storeId:t.storeId,stripeAuthorization:t.stripeAuthorization,workersAiBillingMode:t.workersAiBillingMode,zdr:t.zdr,body:t.body},validation:`passed`});return}let r=await i(t),p=t.local?d:await n(r);if(t.accountId=p,t.body){let e=c(t.body);l(await f(`Updating ai gateway`,async()=>r.put(`/accounts/${p}/ai-gateway/gateways/${t.id}`,{body:e})),{successLabel:`Updated ai gateway`});return}if(t.cacheInvalidateOnUpdate===void 0)throw Error(`--cache-invalidate-on-update is required (or pass --body with this field set).`);if(t.cacheTtl===void 0)throw Error(`--cache-ttl is required (or pass --body with this field set).`);if(t.collectLogs===void 0)throw Error(`--collect-logs is required (or pass --body with this field set).`);if(t.rateLimitingInterval===void 0)throw Error(`--rate-limiting-interval is required (or pass --body with this field set).`);if(t.rateLimitingLimit===void 0)throw Error(`--rate-limiting-limit is required (or pass --body with this field set).`);let m={};t.authentication!==void 0&&s(m,[`authentication`],t.authentication),t.cacheInvalidateOnUpdate!==void 0&&s(m,[`cache_invalidate_on_update`],t.cacheInvalidateOnUpdate),t.cacheTtl!==void 0&&s(m,[`cache_ttl`],t.cacheTtl),t.collectLogs!==void 0&&s(m,[`collect_logs`],t.collectLogs),t.logManagement!==void 0&&s(m,[`log_management`],t.logManagement),t.logManagementStrategy!==void 0&&s(m,[`log_management_strategy`],a(t.logManagementStrategy,`logManagementStrategy`,`text`)),t.logpush!==void 0&&s(m,[`logpush`],t.logpush),t.logpushPublicKey!==void 0&&s(m,[`logpush_public_key`],a(t.logpushPublicKey,`logpushPublicKey`,`text`)),t.rateLimitingInterval!==void 0&&s(m,[`rate_limiting_interval`],t.rateLimitingInterval),t.rateLimitingLimit!==void 0&&s(m,[`rate_limiting_limit`],t.rateLimitingLimit),t.rateLimitingTechnique!==void 0&&s(m,[`rate_limiting_technique`],a(t.rateLimitingTechnique,`rateLimitingTechnique`,`text`)),t.retryBackoff!==void 0&&s(m,[`retry_backoff`],a(t.retryBackoff,`retryBackoff`,`text`)),t.retryDelay!==void 0&&s(m,[`retry_delay`],t.retryDelay),t.retryMaxAttempts!==void 0&&s(m,[`retry_max_attempts`],t.retryMaxAttempts),t.storeId!==void 0&&s(m,[`store_id`],a(t.storeId,`storeId`,`text`)),t.stripeAuthorization!==void 0&&s(m,[`stripe`,`authorization`],a(t.stripeAuthorization,`stripeAuthorization`,`text`)),t.workersAiBillingMode!==void 0&&s(m,[`workers_ai_billing_mode`],a(t.workersAiBillingMode,`workersAiBillingMode`,`text`)),t.zdr!==void 0&&s(m,[`zdr`],t.zdr),l(await f(`Updating ai gateway`,async()=>r.put(`/accounts/${p}/ai-gateway/gateways/${t.id}`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Updated ai gateway`})}},$={command:`get <provider>`,describe:`Retrieves the endpoint URL for an AI Gateway.`,builder:e=>e.positional(`provider`,{type:`string`,description:`Provider`,demandOption:!0}).option(`gateway-id`,{type:`string`,description:`gateway id`,demandOption:!0}),handler:async e=>{o(e.provider,`provider`);let t=await i(e),r=e.local?d:await n(t);e.accountId=r,l(await f(`Loading url`,async()=>t.aiGateway.urls.get(e.gatewayId,r,e.provider)),{successLabel:`Loaded url`})}},te={command:`urls`,describe:`Retrieve the gateway's proxy URL used by clients to send inference requests`,builder:e=>e.command($).demandCommand(1),handler:()=>{}},ne={command:`ai-gateway`,describe:`Proxy, cache, rate-limit, and observe requests to AI providers — OpenAI, Anthropic, Workers AI, and more`,builder:e=>e.command(p).command(b).command(R).command(z).command(Q).command(y).command(j).command(N).command(L).command(K).command(Z).command(te).demandCommand(1),handler:()=>{}};export{ne as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{d as e,h as t,m as n,o as r,p as i,t as a}from"./auth-BHD_B2p9.mjs";import{n as o,r as s}from"./input-validation-BpVQi9rR.mjs";import{n as c,t as l}from"./body-parser-iA3vRFmh.mjs";import{t as u}from"./output-CqGQp2r6.mjs";import{t as d}from"./dry-run-FV0pZwdg.mjs";import{t as f}from"./local-OqhVQbv0.mjs";import{t as p}from"./progress-5sHFvwez.mjs";import{n as m,t as h}from"./raw-fetch-CxFs4i0R.mjs";const g={command:`chat-completions <id>`,describe:`Performs a chat completion request against an AI Search instance, using indexed content as context for generating responses.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`ai-search-options-cache-cache-threshold`,{type:`string`,description:`The ai_search_options.cache.cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`ai-search-options-cache-enabled`,{type:`boolean`,description:`The ai_search_options.cache.enabled field`}).option(`ai-search-options-query-rewrite-enabled`,{type:`boolean`,description:`The ai_search_options.query_rewrite.enabled field`}).option(`ai-search-options-query-rewrite-rewrite-prompt`,{type:`string`,description:`The ai_search_options.query_rewrite.rewrite_prompt field`}).option(`ai-search-options-reranking-enabled`,{type:`boolean`,description:`The ai_search_options.reranking.enabled field`}).option(`ai-search-options-reranking-match-threshold`,{type:`number`,description:`The ai_search_options.reranking.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-context-expansion`,{type:`number`,description:`The ai_search_options.retrieval.context_expansion field`,default:0}).option(`ai-search-options-retrieval-fusion-method`,{type:`string`,description:`The ai_search_options.retrieval.fusion_method field`,choices:[`max`,`rrf`]}).option(`ai-search-options-retrieval-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`ai-search-options-retrieval-match-threshold`,{type:`number`,description:`The ai_search_options.retrieval.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-max-num-results`,{type:`number`,description:`The ai_search_options.retrieval.max_num_results field`,default:10}).option(`ai-search-options-retrieval-retrieval-type`,{type:`string`,description:`The ai_search_options.retrieval.retrieval_type field`,choices:[`vector`,`keyword`,`hybrid`]}).option(`ai-search-options-retrieval-return-on-failure`,{type:`boolean`,description:`The ai_search_options.retrieval.return_on_failure field`,default:!0}).option(`stream`,{type:`boolean`,description:`The stream field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search chat-completions`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/instances/${t.id??`<id>`}/chat/completions`,pathParams:{id:String(t.id??``)},bodyKind:`json`,body:{aiSearchOptionsCacheCacheThreshold:t.aiSearchOptionsCacheCacheThreshold,aiSearchOptionsCacheEnabled:t.aiSearchOptionsCacheEnabled,aiSearchOptionsQueryRewriteEnabled:t.aiSearchOptionsQueryRewriteEnabled,aiSearchOptionsQueryRewriteRewritePrompt:t.aiSearchOptionsQueryRewriteRewritePrompt,aiSearchOptionsRerankingEnabled:t.aiSearchOptionsRerankingEnabled,aiSearchOptionsRerankingMatchThreshold:t.aiSearchOptionsRerankingMatchThreshold,aiSearchOptionsRetrievalContextExpansion:t.aiSearchOptionsRetrievalContextExpansion,aiSearchOptionsRetrievalFusionMethod:t.aiSearchOptionsRetrievalFusionMethod,aiSearchOptionsRetrievalKeywordMatchMode:t.aiSearchOptionsRetrievalKeywordMatchMode,aiSearchOptionsRetrievalMatchThreshold:t.aiSearchOptionsRetrievalMatchThreshold,aiSearchOptionsRetrievalMaxNumResults:t.aiSearchOptionsRetrievalMaxNumResults,aiSearchOptionsRetrievalRetrievalType:t.aiSearchOptionsRetrievalRetrievalType,aiSearchOptionsRetrievalReturnOnFailure:t.aiSearchOptionsRetrievalReturnOnFailure,stream:t.stream,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Creating completion`,async()=>n.post(`/accounts/${i}/ai-search/instances/${t.id}/chat/completions`,{body:e})),{successLabel:`Created completion`});return}let m={};t.aiSearchOptionsCacheCacheThreshold!==void 0&&c(m,[`ai_search_options`,`cache`,`cache_threshold`],o(t.aiSearchOptionsCacheCacheThreshold,`aiSearchOptionsCacheCacheThreshold`,`text`)),t.aiSearchOptionsCacheEnabled!==void 0&&c(m,[`ai_search_options`,`cache`,`enabled`],t.aiSearchOptionsCacheEnabled),t.aiSearchOptionsQueryRewriteEnabled!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`enabled`],t.aiSearchOptionsQueryRewriteEnabled),t.aiSearchOptionsQueryRewriteRewritePrompt!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`rewrite_prompt`],o(t.aiSearchOptionsQueryRewriteRewritePrompt,`aiSearchOptionsQueryRewriteRewritePrompt`,`text`)),t.aiSearchOptionsRerankingEnabled!==void 0&&c(m,[`ai_search_options`,`reranking`,`enabled`],t.aiSearchOptionsRerankingEnabled),t.aiSearchOptionsRerankingMatchThreshold!==void 0&&c(m,[`ai_search_options`,`reranking`,`match_threshold`],t.aiSearchOptionsRerankingMatchThreshold),t.aiSearchOptionsRetrievalContextExpansion!==void 0&&c(m,[`ai_search_options`,`retrieval`,`context_expansion`],t.aiSearchOptionsRetrievalContextExpansion),t.aiSearchOptionsRetrievalFusionMethod!==void 0&&c(m,[`ai_search_options`,`retrieval`,`fusion_method`],o(t.aiSearchOptionsRetrievalFusionMethod,`aiSearchOptionsRetrievalFusionMethod`,`text`)),t.aiSearchOptionsRetrievalKeywordMatchMode!==void 0&&c(m,[`ai_search_options`,`retrieval`,`keyword_match_mode`],o(t.aiSearchOptionsRetrievalKeywordMatchMode,`aiSearchOptionsRetrievalKeywordMatchMode`,`text`)),t.aiSearchOptionsRetrievalMatchThreshold!==void 0&&c(m,[`ai_search_options`,`retrieval`,`match_threshold`],t.aiSearchOptionsRetrievalMatchThreshold),t.aiSearchOptionsRetrievalMaxNumResults!==void 0&&c(m,[`ai_search_options`,`retrieval`,`max_num_results`],t.aiSearchOptionsRetrievalMaxNumResults),t.aiSearchOptionsRetrievalRetrievalType!==void 0&&c(m,[`ai_search_options`,`retrieval`,`retrieval_type`],o(t.aiSearchOptionsRetrievalRetrievalType,`aiSearchOptionsRetrievalRetrievalType`,`text`)),t.aiSearchOptionsRetrievalReturnOnFailure!==void 0&&c(m,[`ai_search_options`,`retrieval`,`return_on_failure`],t.aiSearchOptionsRetrievalReturnOnFailure),t.stream!==void 0&&c(m,[`stream`],t.stream),u(await p(`Creating completion`,async()=>n.post(`/accounts/${i}/ai-search/instances/${t.id}/chat/completions`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Created completion`})}},ee={command:`create`,describe:`Create a new instances.`,builder:e=>e.option(`ai-gateway-id`,{type:`string`,description:`The ai_gateway_id field`}).option(`ai-search-model`,{type:`string`,description:`The ai_search_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`cache`,{type:`boolean`,description:`The cache field`,default:!0}).option(`cache-threshold`,{type:`string`,description:`The cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`],default:`close_enough`}).option(`chunk`,{type:`boolean`,description:`The chunk field`,default:!0}).option(`chunk-overlap`,{type:`number`,description:`The chunk_overlap field`,default:10}).option(`chunk-size`,{type:`number`,description:`The chunk_size field`}).option(`embedding-model`,{type:`string`,description:`The embedding_model field`,choices:[`@cf/qwen/qwen3-embedding-0.6b`,`@cf/baai/bge-m3`,`@cf/baai/bge-large-en-v1.5`,`@cf/google/embeddinggemma-300m`,`google-ai-studio/gemini-embedding-001`,`google-ai-studio/gemini-embedding-2-preview`,`openai/text-embedding-3-small`,`openai/text-embedding-3-large`]}).option(`fusion-method`,{type:`string`,description:`The fusion_method field`,choices:[`max`,`rrf`],default:`rrf`}).option(`hybrid-search-enabled`,{type:`boolean`,description:`Deprecated — use index_method instead.`,default:!1}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`}).option(`index-method-keyword`,{type:`boolean`,description:`Enable keyword (BM25) storage backend.`,default:!1}).option(`index-method-vector`,{type:`boolean`,description:`Enable vector (embedding) storage backend.`,default:!1}).option(`indexing-options-keyword-tokenizer`,{type:`string`,description:`Tokenizer used for keyword search indexing. porter provides word-level tokenization with Porter stemming (good for natural language queries). trigram enables character-level substring matching (good for partial matches, code, identifiers). Changing this triggers a full re-index. Defaults to porter.`,choices:[`porter`,`trigram`],default:`porter`}).option(`max-num-results`,{type:`number`,description:`The max_num_results field`,default:10}).option(`metadata-created-from-aisearch-wizard`,{type:`boolean`,description:`The metadata.created_from_aisearch_wizard field`}).option(`metadata-search-for-agents-hostname`,{type:`string`,description:`The metadata.search_for_agents.hostname field`}).option(`metadata-search-for-agents-zone-id`,{type:`string`,description:`The metadata.search_for_agents.zone_id field`}).option(`metadata-search-for-agents-zone-name`,{type:`string`,description:`The metadata.search_for_agents.zone_name field`}).option(`metadata-worker-domain`,{type:`string`,description:`The metadata.worker_domain field`}).option(`public-endpoint-params-authorized-hosts`,{type:`string`,array:!0,description:`The public_endpoint_params.authorized_hosts field`}).option(`public-endpoint-params-chat-completions-endpoint-disabled`,{type:`boolean`,description:`Disable chat completions endpoint for this public endpoint`,default:!1}).option(`public-endpoint-params-enabled`,{type:`boolean`,description:`The public_endpoint_params.enabled field`,default:!1}).option(`public-endpoint-params-mcp-description`,{type:`string`,description:`The public_endpoint_params.mcp.description field`,default:`Finds exactly what you're looking for`}).option(`public-endpoint-params-mcp-disabled`,{type:`boolean`,description:`Disable MCP endpoint for this public endpoint`,default:!1}).option(`public-endpoint-params-rate-limit-period-ms`,{type:`number`,description:`The public_endpoint_params.rate_limit.period_ms field`}).option(`public-endpoint-params-rate-limit-requests`,{type:`number`,description:`The public_endpoint_params.rate_limit.requests field`}).option(`public-endpoint-params-rate-limit-technique`,{type:`string`,description:`The public_endpoint_params.rate_limit.technique field`,choices:[`fixed`,`sliding`]}).option(`public-endpoint-params-search-endpoint-disabled`,{type:`boolean`,description:`Disable search endpoint for this public endpoint`,default:!1}).option(`reranking`,{type:`boolean`,description:`The reranking field`,default:!1}).option(`reranking-model`,{type:`string`,description:`The reranking_model field`,choices:[`@cf/baai/bge-reranker-base`]}).option(`retrieval-options-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`rewrite-model`,{type:`string`,description:`The rewrite_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`rewrite-query`,{type:`boolean`,description:`The rewrite_query field`,default:!1}).option(`score-threshold`,{type:`number`,description:`The score_threshold field`,default:.4}).option(`source`,{type:`string`,description:`The source field`}).option(`source-params-exclude-items`,{type:`string`,array:!0,description:`List of path patterns to exclude. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /admin/** matches /admin/users and /admin/settings/advanced)`}).option(`source-params-include-items`,{type:`string`,array:!0,description:`List of path patterns to include. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /blog/** matches /blog/post and /blog/2024/post)`}).option(`source-params-prefix`,{type:`string`,description:`The source_params.prefix field`}).option(`source-params-r2-jurisdiction`,{type:`string`,description:`The source_params.r2_jurisdiction field`,default:`default`}).option(`source-params-web-crawler-crawl-options-depth`,{type:`number`,description:`The source_params.web_crawler.crawl_options.depth field`}).option(`source-params-web-crawler-crawl-options-include-external-links`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_external_links field`,default:!1}).option(`source-params-web-crawler-crawl-options-include-subdomains`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_subdomains field`,default:!1}).option(`source-params-web-crawler-crawl-options-max-age`,{type:`number`,description:`The source_params.web_crawler.crawl_options.max_age field`}).option(`source-params-web-crawler-crawl-options-source`,{type:`string`,description:`The source_params.web_crawler.crawl_options.source field`,choices:[`all`,`sitemaps`,`links`],default:`all`}).option(`source-params-web-crawler-parse-options-include-images`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.include_images field`,default:!1}).option(`source-params-web-crawler-parse-options-specific-sitemaps`,{type:`string`,array:!0,description:`List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'.`}).option(`source-params-web-crawler-parse-options-use-browser-rendering`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.use_browser_rendering field`,default:!1}).option(`source-params-web-crawler-parse-type`,{type:`string`,description:`The source_params.web_crawler.parse_type field`,choices:[`sitemap`,`feed-rss`,`crawl`],default:`sitemap`}).option(`source-params-web-crawler-store-options-r2-jurisdiction`,{type:`string`,description:`The source_params.web_crawler.store_options.r2_jurisdiction field`,default:`default`}).option(`source-params-web-crawler-store-options-storage-id`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_id field`}).option(`source-params-web-crawler-store-options-storage-type`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_type field`,choices:[`r2`],default:`r2`}).option(`token-id`,{type:`string`,description:`The token_id field`}).option(`type`,{type:`string`,description:`The type field`,choices:[`r2`,`web-crawler`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).check(e=>{if([`index-method-keyword`,`index-method-vector`].some(t=>e[t]!==void 0)){let t=[`index-method-keyword`,`index-method-vector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --index_method-* flag is set`)}return!0}).check(e=>{if([`metadata-created-from-aisearch-wizard`,`metadata-search-for-agents-hostname`,`metadata-search-for-agents-zone-id`,`metadata-search-for-agents-zone-name`,`metadata-worker-domain`].some(t=>e[t]!==void 0)){let t=[`metadata-search-for-agents-hostname`,`metadata-search-for-agents-zone-id`,`metadata-search-for-agents-zone-name`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --metadata-* flag is set`)}return!0}).check(e=>{if([`source-params-exclude-items`,`source-params-include-items`,`source-params-prefix`,`source-params-web-crawler-crawl-options-depth`,`source-params-web-crawler-crawl-options-max-age`,`source-params-web-crawler-parse-options-specific-sitemaps`,`source-params-web-crawler-store-options-storage-id`].some(t=>e[t]!==void 0)){let t=[`source-params-web-crawler-store-options-storage-id`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --source_params-* flag is set`)}return!0}),handler:async n=>{if(n.dryRun){let t=e();t&&s(t,`accountId`),d({command:`cf ai-search create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-search/instances`,pathParams:{},bodyKind:`json`,body:{aiGatewayId:n.aiGatewayId,aiSearchModel:n.aiSearchModel,cache:n.cache,cacheThreshold:n.cacheThreshold,chunk:n.chunk,chunkOverlap:n.chunkOverlap,chunkSize:n.chunkSize,embeddingModel:n.embeddingModel,fusionMethod:n.fusionMethod,hybridSearchEnabled:n.hybridSearchEnabled,id:n.id,indexMethodKeyword:n.indexMethodKeyword,indexMethodVector:n.indexMethodVector,indexingOptionsKeywordTokenizer:n.indexingOptionsKeywordTokenizer,maxNumResults:n.maxNumResults,metadataCreatedFromAisearchWizard:n.metadataCreatedFromAisearchWizard,metadataSearchForAgentsHostname:n.metadataSearchForAgentsHostname,metadataSearchForAgentsZoneId:n.metadataSearchForAgentsZoneId,metadataSearchForAgentsZoneName:n.metadataSearchForAgentsZoneName,metadataWorkerDomain:n.metadataWorkerDomain,publicEndpointParamsAuthorizedHosts:n.publicEndpointParamsAuthorizedHosts,publicEndpointParamsChatCompletionsEndpointDisabled:n.publicEndpointParamsChatCompletionsEndpointDisabled,publicEndpointParamsEnabled:n.publicEndpointParamsEnabled,publicEndpointParamsMcpDescription:n.publicEndpointParamsMcpDescription,publicEndpointParamsMcpDisabled:n.publicEndpointParamsMcpDisabled,publicEndpointParamsRateLimitPeriodMs:n.publicEndpointParamsRateLimitPeriodMs,publicEndpointParamsRateLimitRequests:n.publicEndpointParamsRateLimitRequests,publicEndpointParamsRateLimitTechnique:n.publicEndpointParamsRateLimitTechnique,publicEndpointParamsSearchEndpointDisabled:n.publicEndpointParamsSearchEndpointDisabled,reranking:n.reranking,rerankingModel:n.rerankingModel,retrievalOptionsKeywordMatchMode:n.retrievalOptionsKeywordMatchMode,rewriteModel:n.rewriteModel,rewriteQuery:n.rewriteQuery,scoreThreshold:n.scoreThreshold,source:n.source,sourceParamsExcludeItems:n.sourceParamsExcludeItems,sourceParamsIncludeItems:n.sourceParamsIncludeItems,sourceParamsPrefix:n.sourceParamsPrefix,sourceParamsR2Jurisdiction:n.sourceParamsR2Jurisdiction,sourceParamsWebCrawlerCrawlOptionsDepth:n.sourceParamsWebCrawlerCrawlOptionsDepth,sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks:n.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks,sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains:n.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains,sourceParamsWebCrawlerCrawlOptionsMaxAge:n.sourceParamsWebCrawlerCrawlOptionsMaxAge,sourceParamsWebCrawlerCrawlOptionsSource:n.sourceParamsWebCrawlerCrawlOptionsSource,sourceParamsWebCrawlerParseOptionsIncludeImages:n.sourceParamsWebCrawlerParseOptionsIncludeImages,sourceParamsWebCrawlerParseOptionsSpecificSitemaps:n.sourceParamsWebCrawlerParseOptionsSpecificSitemaps,sourceParamsWebCrawlerParseOptionsUseBrowserRendering:n.sourceParamsWebCrawlerParseOptionsUseBrowserRendering,sourceParamsWebCrawlerParseType:n.sourceParamsWebCrawlerParseType,sourceParamsWebCrawlerStoreOptionsR2Jurisdiction:n.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,sourceParamsWebCrawlerStoreOptionsStorageId:n.sourceParamsWebCrawlerStoreOptionsStorageId,sourceParamsWebCrawlerStoreOptionsStorageType:n.sourceParamsWebCrawlerStoreOptionsStorageType,tokenId:n.tokenId,type:n.type,body:n.body},validation:`passed`});return}let i=await a(n),m=n.local?f:await r(i);if(n.accountId=m,n.body){let e=l(n.body);u(await p(`Creating ai search`,async()=>i.post(`/accounts/${m}/ai-search/instances`,{body:e})),{successLabel:`Created ai search`});return}n.id===void 0&&(n.id=await t(`id`,`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`));let h={};n.aiGatewayId!==void 0&&c(h,[`ai_gateway_id`],o(n.aiGatewayId,`aiGatewayId`,`text`)),n.aiSearchModel!==void 0&&c(h,[`ai_search_model`],o(n.aiSearchModel,`aiSearchModel`,`text`)),n.cache!==void 0&&c(h,[`cache`],n.cache),n.cacheThreshold!==void 0&&c(h,[`cache_threshold`],o(n.cacheThreshold,`cacheThreshold`,`text`)),n.chunk!==void 0&&c(h,[`chunk`],n.chunk),n.chunkOverlap!==void 0&&c(h,[`chunk_overlap`],n.chunkOverlap),n.chunkSize!==void 0&&c(h,[`chunk_size`],n.chunkSize),n.embeddingModel!==void 0&&c(h,[`embedding_model`],o(n.embeddingModel,`embeddingModel`,`text`)),n.fusionMethod!==void 0&&c(h,[`fusion_method`],o(n.fusionMethod,`fusionMethod`,`text`)),n.hybridSearchEnabled!==void 0&&c(h,[`hybrid_search_enabled`],n.hybridSearchEnabled),n.id!==void 0&&c(h,[`id`],o(n.id,`id`,`text`)),n.indexMethodKeyword!==void 0&&c(h,[`index_method`,`keyword`],n.indexMethodKeyword),n.indexMethodVector!==void 0&&c(h,[`index_method`,`vector`],n.indexMethodVector),n.indexingOptionsKeywordTokenizer!==void 0&&c(h,[`indexing_options`,`keyword_tokenizer`],o(n.indexingOptionsKeywordTokenizer,`indexingOptionsKeywordTokenizer`,`text`)),n.maxNumResults!==void 0&&c(h,[`max_num_results`],n.maxNumResults),n.metadataCreatedFromAisearchWizard!==void 0&&c(h,[`metadata`,`created_from_aisearch_wizard`],n.metadataCreatedFromAisearchWizard),n.metadataSearchForAgentsHostname!==void 0&&c(h,[`metadata`,`search_for_agents`,`hostname`],o(n.metadataSearchForAgentsHostname,`metadataSearchForAgentsHostname`,`text`)),n.metadataSearchForAgentsZoneId!==void 0&&c(h,[`metadata`,`search_for_agents`,`zone_id`],o(n.metadataSearchForAgentsZoneId,`metadataSearchForAgentsZoneId`,`text`)),n.metadataSearchForAgentsZoneName!==void 0&&c(h,[`metadata`,`search_for_agents`,`zone_name`],o(n.metadataSearchForAgentsZoneName,`metadataSearchForAgentsZoneName`,`text`)),n.metadataWorkerDomain!==void 0&&c(h,[`metadata`,`worker_domain`],o(n.metadataWorkerDomain,`metadataWorkerDomain`,`text`)),n.publicEndpointParamsAuthorizedHosts!==void 0&&c(h,[`public_endpoint_params`,`authorized_hosts`],n.publicEndpointParamsAuthorizedHosts),n.publicEndpointParamsChatCompletionsEndpointDisabled!==void 0&&c(h,[`public_endpoint_params`,`chat_completions_endpoint`,`disabled`],n.publicEndpointParamsChatCompletionsEndpointDisabled),n.publicEndpointParamsEnabled!==void 0&&c(h,[`public_endpoint_params`,`enabled`],n.publicEndpointParamsEnabled),n.publicEndpointParamsMcpDescription!==void 0&&c(h,[`public_endpoint_params`,`mcp`,`description`],o(n.publicEndpointParamsMcpDescription,`publicEndpointParamsMcpDescription`,`text`)),n.publicEndpointParamsMcpDisabled!==void 0&&c(h,[`public_endpoint_params`,`mcp`,`disabled`],n.publicEndpointParamsMcpDisabled),n.publicEndpointParamsRateLimitPeriodMs!==void 0&&c(h,[`public_endpoint_params`,`rate_limit`,`period_ms`],n.publicEndpointParamsRateLimitPeriodMs),n.publicEndpointParamsRateLimitRequests!==void 0&&c(h,[`public_endpoint_params`,`rate_limit`,`requests`],n.publicEndpointParamsRateLimitRequests),n.publicEndpointParamsRateLimitTechnique!==void 0&&c(h,[`public_endpoint_params`,`rate_limit`,`technique`],o(n.publicEndpointParamsRateLimitTechnique,`publicEndpointParamsRateLimitTechnique`,`text`)),n.publicEndpointParamsSearchEndpointDisabled!==void 0&&c(h,[`public_endpoint_params`,`search_endpoint`,`disabled`],n.publicEndpointParamsSearchEndpointDisabled),n.reranking!==void 0&&c(h,[`reranking`],n.reranking),n.rerankingModel!==void 0&&c(h,[`reranking_model`],o(n.rerankingModel,`rerankingModel`,`text`)),n.retrievalOptionsKeywordMatchMode!==void 0&&c(h,[`retrieval_options`,`keyword_match_mode`],o(n.retrievalOptionsKeywordMatchMode,`retrievalOptionsKeywordMatchMode`,`text`)),n.rewriteModel!==void 0&&c(h,[`rewrite_model`],o(n.rewriteModel,`rewriteModel`,`text`)),n.rewriteQuery!==void 0&&c(h,[`rewrite_query`],n.rewriteQuery),n.scoreThreshold!==void 0&&c(h,[`score_threshold`],n.scoreThreshold),n.source!==void 0&&c(h,[`source`],o(n.source,`source`,`text`)),n.sourceParamsExcludeItems!==void 0&&c(h,[`source_params`,`exclude_items`],n.sourceParamsExcludeItems),n.sourceParamsIncludeItems!==void 0&&c(h,[`source_params`,`include_items`],n.sourceParamsIncludeItems),n.sourceParamsPrefix!==void 0&&c(h,[`source_params`,`prefix`],o(n.sourceParamsPrefix,`sourceParamsPrefix`,`text`)),n.sourceParamsR2Jurisdiction!==void 0&&c(h,[`source_params`,`r2_jurisdiction`],o(n.sourceParamsR2Jurisdiction,`sourceParamsR2Jurisdiction`,`text`)),n.sourceParamsWebCrawlerCrawlOptionsDepth!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`depth`],n.sourceParamsWebCrawlerCrawlOptionsDepth),n.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`include_external_links`],n.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks),n.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`include_subdomains`],n.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains),n.sourceParamsWebCrawlerCrawlOptionsMaxAge!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`max_age`],n.sourceParamsWebCrawlerCrawlOptionsMaxAge),n.sourceParamsWebCrawlerCrawlOptionsSource!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`source`],o(n.sourceParamsWebCrawlerCrawlOptionsSource,`sourceParamsWebCrawlerCrawlOptionsSource`,`text`)),n.sourceParamsWebCrawlerParseOptionsIncludeImages!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_options`,`include_images`],n.sourceParamsWebCrawlerParseOptionsIncludeImages),n.sourceParamsWebCrawlerParseOptionsSpecificSitemaps!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_options`,`specific_sitemaps`],n.sourceParamsWebCrawlerParseOptionsSpecificSitemaps),n.sourceParamsWebCrawlerParseOptionsUseBrowserRendering!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_options`,`use_browser_rendering`],n.sourceParamsWebCrawlerParseOptionsUseBrowserRendering),n.sourceParamsWebCrawlerParseType!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_type`],o(n.sourceParamsWebCrawlerParseType,`sourceParamsWebCrawlerParseType`,`text`)),n.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction!==void 0&&c(h,[`source_params`,`web_crawler`,`store_options`,`r2_jurisdiction`],o(n.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,`sourceParamsWebCrawlerStoreOptionsR2Jurisdiction`,`text`)),n.sourceParamsWebCrawlerStoreOptionsStorageId!==void 0&&c(h,[`source_params`,`web_crawler`,`store_options`,`storage_id`],o(n.sourceParamsWebCrawlerStoreOptionsStorageId,`sourceParamsWebCrawlerStoreOptionsStorageId`,`text`)),n.sourceParamsWebCrawlerStoreOptionsStorageType!==void 0&&c(h,[`source_params`,`web_crawler`,`store_options`,`storage_type`],o(n.sourceParamsWebCrawlerStoreOptionsStorageType,`sourceParamsWebCrawlerStoreOptionsStorageType`,`text`)),n.tokenId!==void 0&&c(h,[`token_id`],o(n.tokenId,`tokenId`,`text`)),n.type!==void 0&&c(h,[`type`],o(n.type,`type`,`text`)),u(await p(`Creating ai search`,async()=>i.post(`/accounts/${m}/ai-search/instances`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created ai search`})}},_={command:`delete <id>`,describe:`Delete instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/instances/${t.id??`<id>`}`,pathParams:{id:String(t.id??``)},bodyKind:`none`,validation:`passed`});return}let n=await a(t),o=t.local?f:await r(n);if(t.accountId=o,!await i(`ai search`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
3
|
-
`);return}u(await p(`Deleting ai search`,async()=>n.aiSearch.delete(t.id,o)),{successLabel:`Deleted ai search`})}},v={command:`create <id>`,describe:`Creates a new indexing job for an AI Search instance.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`description`,{type:`string`,description:`The description field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search jobs create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/instances/${t.id??`<id>`}/jobs`,pathParams:{id:String(t.id??``)},bodyKind:`json`,body:{description:t.description,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Creating job`,async()=>n.post(`/accounts/${i}/ai-search/instances/${t.id}/jobs`,{body:e})),{successLabel:`Created job`});return}let m={};t.description!==void 0&&c(m,[`description`],o(t.description,`description`,`text`)),u(await p(`Creating job`,async()=>n.post(`/accounts/${i}/ai-search/instances/${t.id}/jobs`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Created job`})}},y={command:`edit <jobId>`,describe:`Updates the status of an AI Search indexing job.`,builder:e=>e.positional(`jobId`,{type:`string`,description:`Job ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`action`,{type:`string`,description:`The action field`,choices:[`cancel`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.jobId,`jobId`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search jobs edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/instances/${t.id??`<id>`}/jobs/${t.jobId??`<jobId>`}`,pathParams:{id:String(t.id??``),jobId:String(t.jobId??``)},bodyKind:`json`,body:{action:t.action,body:t.body},validation:`passed`});return}let i=await a(t),m=t.local?f:await r(i);if(t.accountId=m,t.body){let e=l(t.body);u(await p(`Updating job`,async()=>i.patch(`/accounts/${m}/ai-search/instances/${t.id}/jobs/${t.jobId}`,{body:e})),{successLabel:`Updated job`});return}t.action===void 0&&(t.action=await n(`action`,``,[`cancel`]));let h={};t.action!==void 0&&c(h,[`action`],o(t.action,`action`,`text`)),u(await p(`Updating job`,async()=>i.patch(`/accounts/${m}/ai-search/instances/${t.id}/jobs/${t.jobId}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated job`})}},b={command:`get <jobId>`,describe:`Retrieves details for a specific AI Search indexing job.`,builder:e=>e.positional(`jobId`,{type:`string`,description:`Job ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}),handler:async e=>{s(e.jobId,`jobId`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading job`,async()=>t.aiSearch.jobs.get(e.id,e.jobId,n)),{successLabel:`Loaded job`})}},x={command:`list`,describe:`Lists indexing jobs for an AI Search instance.`,builder:e=>e.option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading jobs`,async()=>n.aiSearch.jobs.list(e.id,i,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded jobs`})}},S={command:`logs <jobId>`,describe:`Lists log entries for an AI Search indexing job.`,builder:e=>e.positional(`jobId`,{type:`string`,description:`Job ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}),handler:async e=>{s(e.jobId,`jobId`);let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading job`,async()=>n.aiSearch.jobs.logs(e.id,e.jobId,i,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded job`})}},C={command:`jobs`,describe:`Ingestion job lifecycle for AI Search instances`,builder:e=>e.command(v).command(y).command(b).command(x).command(S).demandCommand(1),handler:()=>{}},w={command:`list`,describe:`List instances.`,builder:e=>e.option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`namespace`,{type:`string`,description:`Namespace`}).option(`search`,{type:`string`,description:`Search by id`}).option(`order-by`,{type:`string`,description:`Order By Column Name`,choices:[`created_at`]}).option(`order-by-direction`,{type:`string`,description:`Order By Direction`,choices:[`asc`,`desc`]}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.namespace!==void 0&&(t.namespace=e.namespace),e.search!==void 0&&(t.search=e.search),e.orderBy!==void 0&&(t.order_by=e.orderBy),e.orderByDirection!==void 0&&(t.order_by_direction=e.orderByDirection);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading ai search`,async()=>n.aiSearch.list(i,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ai search`})}},T={command:`create`,describe:`Create a new namespace.`,builder:e=>e.option(`description`,{type:`string`,description:`Optional description for the namespace. Max 256 characters.`}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async n=>{if(n.dryRun){let t=e();t&&s(t,`accountId`),d({command:`cf ai-search namespaces create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-search/namespaces`,pathParams:{},bodyKind:`json`,body:{description:n.description,name:n.name,body:n.body},validation:`passed`});return}let i=await a(n),m=n.local?f:await r(i);if(n.accountId=m,n.body){let e=l(n.body);u(await p(`Creating namespace`,async()=>i.post(`/accounts/${m}/ai-search/namespaces`,{body:e})),{successLabel:`Created namespace`});return}n.name===void 0&&(n.name=await t(`name`,``));let h={};n.description!==void 0&&c(h,[`description`],o(n.description,`description`,`text`)),n.name!==void 0&&c(h,[`name`],o(n.name,`name`,`text`)),u(await p(`Creating namespace`,async()=>i.post(`/accounts/${m}/ai-search/namespaces`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created namespace`})}},E={command:`delete <name>`,describe:`Delete namespace.`,builder:e=>e.positional(`name`,{type:`string`,description:`Name`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(s(t.name,`name`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}`,pathParams:{name:String(t.name??``)},bodyKind:`none`,validation:`passed`});return}let n=await a(t),o=t.local?f:await r(n);if(t.accountId=o,!await i(`namespace`,String(t.name??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
4
|
-
`);return}u(await p(`Deleting namespace`,async()=>n.aiSearch.namespaces.delete(o,t.name)),{successLabel:`Deleted namespace`})}},D={command:`get <name>`,describe:`Read namespace.`,builder:e=>e.positional(`name`,{type:`string`,description:`Name`,demandOption:!0}),handler:async e=>{s(e.name,`name`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading namespace`,async()=>t.aiSearch.namespaces.get(n,e.name)),{successLabel:`Loaded namespace`})}},O={command:`completions <id>`,describe:`Performs a chat completion request against an AI Search instance, using indexed content as context for generating responses.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`ai-search-options-cache-cache-threshold`,{type:`string`,description:`The ai_search_options.cache.cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`ai-search-options-cache-enabled`,{type:`boolean`,description:`The ai_search_options.cache.enabled field`}).option(`ai-search-options-query-rewrite-enabled`,{type:`boolean`,description:`The ai_search_options.query_rewrite.enabled field`}).option(`ai-search-options-query-rewrite-rewrite-prompt`,{type:`string`,description:`The ai_search_options.query_rewrite.rewrite_prompt field`}).option(`ai-search-options-reranking-enabled`,{type:`boolean`,description:`The ai_search_options.reranking.enabled field`}).option(`ai-search-options-reranking-match-threshold`,{type:`number`,description:`The ai_search_options.reranking.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-context-expansion`,{type:`number`,description:`The ai_search_options.retrieval.context_expansion field`,default:0}).option(`ai-search-options-retrieval-fusion-method`,{type:`string`,description:`The ai_search_options.retrieval.fusion_method field`,choices:[`max`,`rrf`]}).option(`ai-search-options-retrieval-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`ai-search-options-retrieval-match-threshold`,{type:`number`,description:`The ai_search_options.retrieval.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-max-num-results`,{type:`number`,description:`The ai_search_options.retrieval.max_num_results field`,default:10}).option(`ai-search-options-retrieval-retrieval-type`,{type:`string`,description:`The ai_search_options.retrieval.retrieval_type field`,choices:[`vector`,`keyword`,`hybrid`]}).option(`ai-search-options-retrieval-return-on-failure`,{type:`boolean`,description:`The ai_search_options.retrieval.return_on_failure field`,default:!0}).option(`stream`,{type:`boolean`,description:`The stream field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances chat completions`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}/chat/completions`,pathParams:{id:String(t.id??``),name:String(t.name??``)},bodyKind:`json`,body:{aiSearchOptionsCacheCacheThreshold:t.aiSearchOptionsCacheCacheThreshold,aiSearchOptionsCacheEnabled:t.aiSearchOptionsCacheEnabled,aiSearchOptionsQueryRewriteEnabled:t.aiSearchOptionsQueryRewriteEnabled,aiSearchOptionsQueryRewriteRewritePrompt:t.aiSearchOptionsQueryRewriteRewritePrompt,aiSearchOptionsRerankingEnabled:t.aiSearchOptionsRerankingEnabled,aiSearchOptionsRerankingMatchThreshold:t.aiSearchOptionsRerankingMatchThreshold,aiSearchOptionsRetrievalContextExpansion:t.aiSearchOptionsRetrievalContextExpansion,aiSearchOptionsRetrievalFusionMethod:t.aiSearchOptionsRetrievalFusionMethod,aiSearchOptionsRetrievalKeywordMatchMode:t.aiSearchOptionsRetrievalKeywordMatchMode,aiSearchOptionsRetrievalMatchThreshold:t.aiSearchOptionsRetrievalMatchThreshold,aiSearchOptionsRetrievalMaxNumResults:t.aiSearchOptionsRetrievalMaxNumResults,aiSearchOptionsRetrievalRetrievalType:t.aiSearchOptionsRetrievalRetrievalType,aiSearchOptionsRetrievalReturnOnFailure:t.aiSearchOptionsRetrievalReturnOnFailure,stream:t.stream,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Creating chat`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/chat/completions`,{body:e})),{successLabel:`Created chat`});return}let m={};t.aiSearchOptionsCacheCacheThreshold!==void 0&&c(m,[`ai_search_options`,`cache`,`cache_threshold`],o(t.aiSearchOptionsCacheCacheThreshold,`aiSearchOptionsCacheCacheThreshold`,`text`)),t.aiSearchOptionsCacheEnabled!==void 0&&c(m,[`ai_search_options`,`cache`,`enabled`],t.aiSearchOptionsCacheEnabled),t.aiSearchOptionsQueryRewriteEnabled!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`enabled`],t.aiSearchOptionsQueryRewriteEnabled),t.aiSearchOptionsQueryRewriteRewritePrompt!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`rewrite_prompt`],o(t.aiSearchOptionsQueryRewriteRewritePrompt,`aiSearchOptionsQueryRewriteRewritePrompt`,`text`)),t.aiSearchOptionsRerankingEnabled!==void 0&&c(m,[`ai_search_options`,`reranking`,`enabled`],t.aiSearchOptionsRerankingEnabled),t.aiSearchOptionsRerankingMatchThreshold!==void 0&&c(m,[`ai_search_options`,`reranking`,`match_threshold`],t.aiSearchOptionsRerankingMatchThreshold),t.aiSearchOptionsRetrievalContextExpansion!==void 0&&c(m,[`ai_search_options`,`retrieval`,`context_expansion`],t.aiSearchOptionsRetrievalContextExpansion),t.aiSearchOptionsRetrievalFusionMethod!==void 0&&c(m,[`ai_search_options`,`retrieval`,`fusion_method`],o(t.aiSearchOptionsRetrievalFusionMethod,`aiSearchOptionsRetrievalFusionMethod`,`text`)),t.aiSearchOptionsRetrievalKeywordMatchMode!==void 0&&c(m,[`ai_search_options`,`retrieval`,`keyword_match_mode`],o(t.aiSearchOptionsRetrievalKeywordMatchMode,`aiSearchOptionsRetrievalKeywordMatchMode`,`text`)),t.aiSearchOptionsRetrievalMatchThreshold!==void 0&&c(m,[`ai_search_options`,`retrieval`,`match_threshold`],t.aiSearchOptionsRetrievalMatchThreshold),t.aiSearchOptionsRetrievalMaxNumResults!==void 0&&c(m,[`ai_search_options`,`retrieval`,`max_num_results`],t.aiSearchOptionsRetrievalMaxNumResults),t.aiSearchOptionsRetrievalRetrievalType!==void 0&&c(m,[`ai_search_options`,`retrieval`,`retrieval_type`],o(t.aiSearchOptionsRetrievalRetrievalType,`aiSearchOptionsRetrievalRetrievalType`,`text`)),t.aiSearchOptionsRetrievalReturnOnFailure!==void 0&&c(m,[`ai_search_options`,`retrieval`,`return_on_failure`],t.aiSearchOptionsRetrievalReturnOnFailure),t.stream!==void 0&&c(m,[`stream`],t.stream),u(await p(`Creating chat`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/chat/completions`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Created chat`})}},k={command:`chat`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(O).demandCommand(1),handler:()=>{}},A={command:`create <name>`,describe:`Create a new instances.`,builder:e=>e.positional(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`ai-gateway-id`,{type:`string`,description:`The ai_gateway_id field`}).option(`ai-search-model`,{type:`string`,description:`The ai_search_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`cache`,{type:`boolean`,description:`The cache field`,default:!0}).option(`cache-threshold`,{type:`string`,description:`The cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`],default:`close_enough`}).option(`chunk`,{type:`boolean`,description:`The chunk field`,default:!0}).option(`chunk-overlap`,{type:`number`,description:`The chunk_overlap field`,default:10}).option(`chunk-size`,{type:`number`,description:`The chunk_size field`}).option(`embedding-model`,{type:`string`,description:`The embedding_model field`,choices:[`@cf/qwen/qwen3-embedding-0.6b`,`@cf/baai/bge-m3`,`@cf/baai/bge-large-en-v1.5`,`@cf/google/embeddinggemma-300m`,`google-ai-studio/gemini-embedding-001`,`google-ai-studio/gemini-embedding-2-preview`,`openai/text-embedding-3-small`,`openai/text-embedding-3-large`]}).option(`fusion-method`,{type:`string`,description:`The fusion_method field`,choices:[`max`,`rrf`],default:`rrf`}).option(`hybrid-search-enabled`,{type:`boolean`,description:`Deprecated — use index_method instead.`,default:!1}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`}).option(`index-method-keyword`,{type:`boolean`,description:`Enable keyword (BM25) storage backend.`,default:!1}).option(`index-method-vector`,{type:`boolean`,description:`Enable vector (embedding) storage backend.`,default:!1}).option(`indexing-options-keyword-tokenizer`,{type:`string`,description:`Tokenizer used for keyword search indexing. porter provides word-level tokenization with Porter stemming (good for natural language queries). trigram enables character-level substring matching (good for partial matches, code, identifiers). Changing this triggers a full re-index. Defaults to porter.`,choices:[`porter`,`trigram`],default:`porter`}).option(`max-num-results`,{type:`number`,description:`The max_num_results field`,default:10}).option(`metadata-created-from-aisearch-wizard`,{type:`boolean`,description:`The metadata.created_from_aisearch_wizard field`}).option(`metadata-search-for-agents-hostname`,{type:`string`,description:`The metadata.search_for_agents.hostname field`}).option(`metadata-search-for-agents-zone-id`,{type:`string`,description:`The metadata.search_for_agents.zone_id field`}).option(`metadata-search-for-agents-zone-name`,{type:`string`,description:`The metadata.search_for_agents.zone_name field`}).option(`metadata-worker-domain`,{type:`string`,description:`The metadata.worker_domain field`}).option(`public-endpoint-params-authorized-hosts`,{type:`string`,array:!0,description:`The public_endpoint_params.authorized_hosts field`}).option(`public-endpoint-params-chat-completions-endpoint-disabled`,{type:`boolean`,description:`Disable chat completions endpoint for this public endpoint`,default:!1}).option(`public-endpoint-params-enabled`,{type:`boolean`,description:`The public_endpoint_params.enabled field`,default:!1}).option(`public-endpoint-params-mcp-description`,{type:`string`,description:`The public_endpoint_params.mcp.description field`,default:`Finds exactly what you're looking for`}).option(`public-endpoint-params-mcp-disabled`,{type:`boolean`,description:`Disable MCP endpoint for this public endpoint`,default:!1}).option(`public-endpoint-params-rate-limit-period-ms`,{type:`number`,description:`The public_endpoint_params.rate_limit.period_ms field`}).option(`public-endpoint-params-rate-limit-requests`,{type:`number`,description:`The public_endpoint_params.rate_limit.requests field`}).option(`public-endpoint-params-rate-limit-technique`,{type:`string`,description:`The public_endpoint_params.rate_limit.technique field`,choices:[`fixed`,`sliding`]}).option(`public-endpoint-params-search-endpoint-disabled`,{type:`boolean`,description:`Disable search endpoint for this public endpoint`,default:!1}).option(`reranking`,{type:`boolean`,description:`The reranking field`,default:!1}).option(`reranking-model`,{type:`string`,description:`The reranking_model field`,choices:[`@cf/baai/bge-reranker-base`]}).option(`retrieval-options-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`rewrite-model`,{type:`string`,description:`The rewrite_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`rewrite-query`,{type:`boolean`,description:`The rewrite_query field`,default:!1}).option(`score-threshold`,{type:`number`,description:`The score_threshold field`,default:.4}).option(`source`,{type:`string`,description:`The source field`}).option(`source-params-exclude-items`,{type:`string`,array:!0,description:`List of path patterns to exclude. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /admin/** matches /admin/users and /admin/settings/advanced)`}).option(`source-params-include-items`,{type:`string`,array:!0,description:`List of path patterns to include. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /blog/** matches /blog/post and /blog/2024/post)`}).option(`source-params-prefix`,{type:`string`,description:`The source_params.prefix field`}).option(`source-params-r2-jurisdiction`,{type:`string`,description:`The source_params.r2_jurisdiction field`,default:`default`}).option(`source-params-web-crawler-crawl-options-depth`,{type:`number`,description:`The source_params.web_crawler.crawl_options.depth field`}).option(`source-params-web-crawler-crawl-options-include-external-links`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_external_links field`,default:!1}).option(`source-params-web-crawler-crawl-options-include-subdomains`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_subdomains field`,default:!1}).option(`source-params-web-crawler-crawl-options-max-age`,{type:`number`,description:`The source_params.web_crawler.crawl_options.max_age field`}).option(`source-params-web-crawler-crawl-options-source`,{type:`string`,description:`The source_params.web_crawler.crawl_options.source field`,choices:[`all`,`sitemaps`,`links`],default:`all`}).option(`source-params-web-crawler-parse-options-include-images`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.include_images field`,default:!1}).option(`source-params-web-crawler-parse-options-specific-sitemaps`,{type:`string`,array:!0,description:`List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'.`}).option(`source-params-web-crawler-parse-options-use-browser-rendering`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.use_browser_rendering field`,default:!1}).option(`source-params-web-crawler-parse-type`,{type:`string`,description:`The source_params.web_crawler.parse_type field`,choices:[`sitemap`,`feed-rss`,`crawl`],default:`sitemap`}).option(`source-params-web-crawler-store-options-r2-jurisdiction`,{type:`string`,description:`The source_params.web_crawler.store_options.r2_jurisdiction field`,default:`default`}).option(`source-params-web-crawler-store-options-storage-id`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_id field`}).option(`source-params-web-crawler-store-options-storage-type`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_type field`,choices:[`r2`],default:`r2`}).option(`token-id`,{type:`string`,description:`The token_id field`}).option(`type`,{type:`string`,description:`The type field`,choices:[`r2`,`web-crawler`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).check(e=>{if([`index-method-keyword`,`index-method-vector`].some(t=>e[t]!==void 0)){let t=[`index-method-keyword`,`index-method-vector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --index_method-* flag is set`)}return!0}).check(e=>{if([`metadata-created-from-aisearch-wizard`,`metadata-search-for-agents-hostname`,`metadata-search-for-agents-zone-id`,`metadata-search-for-agents-zone-name`,`metadata-worker-domain`].some(t=>e[t]!==void 0)){let t=[`metadata-search-for-agents-hostname`,`metadata-search-for-agents-zone-id`,`metadata-search-for-agents-zone-name`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --metadata-* flag is set`)}return!0}).check(e=>{if([`source-params-exclude-items`,`source-params-include-items`,`source-params-prefix`,`source-params-web-crawler-crawl-options-depth`,`source-params-web-crawler-crawl-options-max-age`,`source-params-web-crawler-parse-options-specific-sitemaps`,`source-params-web-crawler-store-options-storage-id`].some(t=>e[t]!==void 0)){let t=[`source-params-web-crawler-store-options-storage-id`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --source_params-* flag is set`)}return!0}),handler:async n=>{if(s(n.name,`name`),n.dryRun){let t=e();t&&s(t,`accountId`),d({command:`cf ai-search namespaces instances create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-search/namespaces/${n.name??`<name>`}/instances`,pathParams:{name:String(n.name??``)},bodyKind:`json`,body:{aiGatewayId:n.aiGatewayId,aiSearchModel:n.aiSearchModel,cache:n.cache,cacheThreshold:n.cacheThreshold,chunk:n.chunk,chunkOverlap:n.chunkOverlap,chunkSize:n.chunkSize,embeddingModel:n.embeddingModel,fusionMethod:n.fusionMethod,hybridSearchEnabled:n.hybridSearchEnabled,id:n.id,indexMethodKeyword:n.indexMethodKeyword,indexMethodVector:n.indexMethodVector,indexingOptionsKeywordTokenizer:n.indexingOptionsKeywordTokenizer,maxNumResults:n.maxNumResults,metadataCreatedFromAisearchWizard:n.metadataCreatedFromAisearchWizard,metadataSearchForAgentsHostname:n.metadataSearchForAgentsHostname,metadataSearchForAgentsZoneId:n.metadataSearchForAgentsZoneId,metadataSearchForAgentsZoneName:n.metadataSearchForAgentsZoneName,metadataWorkerDomain:n.metadataWorkerDomain,publicEndpointParamsAuthorizedHosts:n.publicEndpointParamsAuthorizedHosts,publicEndpointParamsChatCompletionsEndpointDisabled:n.publicEndpointParamsChatCompletionsEndpointDisabled,publicEndpointParamsEnabled:n.publicEndpointParamsEnabled,publicEndpointParamsMcpDescription:n.publicEndpointParamsMcpDescription,publicEndpointParamsMcpDisabled:n.publicEndpointParamsMcpDisabled,publicEndpointParamsRateLimitPeriodMs:n.publicEndpointParamsRateLimitPeriodMs,publicEndpointParamsRateLimitRequests:n.publicEndpointParamsRateLimitRequests,publicEndpointParamsRateLimitTechnique:n.publicEndpointParamsRateLimitTechnique,publicEndpointParamsSearchEndpointDisabled:n.publicEndpointParamsSearchEndpointDisabled,reranking:n.reranking,rerankingModel:n.rerankingModel,retrievalOptionsKeywordMatchMode:n.retrievalOptionsKeywordMatchMode,rewriteModel:n.rewriteModel,rewriteQuery:n.rewriteQuery,scoreThreshold:n.scoreThreshold,source:n.source,sourceParamsExcludeItems:n.sourceParamsExcludeItems,sourceParamsIncludeItems:n.sourceParamsIncludeItems,sourceParamsPrefix:n.sourceParamsPrefix,sourceParamsR2Jurisdiction:n.sourceParamsR2Jurisdiction,sourceParamsWebCrawlerCrawlOptionsDepth:n.sourceParamsWebCrawlerCrawlOptionsDepth,sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks:n.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks,sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains:n.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains,sourceParamsWebCrawlerCrawlOptionsMaxAge:n.sourceParamsWebCrawlerCrawlOptionsMaxAge,sourceParamsWebCrawlerCrawlOptionsSource:n.sourceParamsWebCrawlerCrawlOptionsSource,sourceParamsWebCrawlerParseOptionsIncludeImages:n.sourceParamsWebCrawlerParseOptionsIncludeImages,sourceParamsWebCrawlerParseOptionsSpecificSitemaps:n.sourceParamsWebCrawlerParseOptionsSpecificSitemaps,sourceParamsWebCrawlerParseOptionsUseBrowserRendering:n.sourceParamsWebCrawlerParseOptionsUseBrowserRendering,sourceParamsWebCrawlerParseType:n.sourceParamsWebCrawlerParseType,sourceParamsWebCrawlerStoreOptionsR2Jurisdiction:n.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,sourceParamsWebCrawlerStoreOptionsStorageId:n.sourceParamsWebCrawlerStoreOptionsStorageId,sourceParamsWebCrawlerStoreOptionsStorageType:n.sourceParamsWebCrawlerStoreOptionsStorageType,tokenId:n.tokenId,type:n.type,body:n.body},validation:`passed`});return}let i=await a(n),m=n.local?f:await r(i);if(n.accountId=m,n.body){let e=l(n.body);u(await p(`Creating instance`,async()=>i.post(`/accounts/${m}/ai-search/namespaces/${n.name}/instances`,{body:e})),{successLabel:`Created instance`});return}n.id===void 0&&(n.id=await t(`id`,`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`));let h={};n.aiGatewayId!==void 0&&c(h,[`ai_gateway_id`],o(n.aiGatewayId,`aiGatewayId`,`text`)),n.aiSearchModel!==void 0&&c(h,[`ai_search_model`],o(n.aiSearchModel,`aiSearchModel`,`text`)),n.cache!==void 0&&c(h,[`cache`],n.cache),n.cacheThreshold!==void 0&&c(h,[`cache_threshold`],o(n.cacheThreshold,`cacheThreshold`,`text`)),n.chunk!==void 0&&c(h,[`chunk`],n.chunk),n.chunkOverlap!==void 0&&c(h,[`chunk_overlap`],n.chunkOverlap),n.chunkSize!==void 0&&c(h,[`chunk_size`],n.chunkSize),n.embeddingModel!==void 0&&c(h,[`embedding_model`],o(n.embeddingModel,`embeddingModel`,`text`)),n.fusionMethod!==void 0&&c(h,[`fusion_method`],o(n.fusionMethod,`fusionMethod`,`text`)),n.hybridSearchEnabled!==void 0&&c(h,[`hybrid_search_enabled`],n.hybridSearchEnabled),n.id!==void 0&&c(h,[`id`],o(n.id,`id`,`text`)),n.indexMethodKeyword!==void 0&&c(h,[`index_method`,`keyword`],n.indexMethodKeyword),n.indexMethodVector!==void 0&&c(h,[`index_method`,`vector`],n.indexMethodVector),n.indexingOptionsKeywordTokenizer!==void 0&&c(h,[`indexing_options`,`keyword_tokenizer`],o(n.indexingOptionsKeywordTokenizer,`indexingOptionsKeywordTokenizer`,`text`)),n.maxNumResults!==void 0&&c(h,[`max_num_results`],n.maxNumResults),n.metadataCreatedFromAisearchWizard!==void 0&&c(h,[`metadata`,`created_from_aisearch_wizard`],n.metadataCreatedFromAisearchWizard),n.metadataSearchForAgentsHostname!==void 0&&c(h,[`metadata`,`search_for_agents`,`hostname`],o(n.metadataSearchForAgentsHostname,`metadataSearchForAgentsHostname`,`text`)),n.metadataSearchForAgentsZoneId!==void 0&&c(h,[`metadata`,`search_for_agents`,`zone_id`],o(n.metadataSearchForAgentsZoneId,`metadataSearchForAgentsZoneId`,`text`)),n.metadataSearchForAgentsZoneName!==void 0&&c(h,[`metadata`,`search_for_agents`,`zone_name`],o(n.metadataSearchForAgentsZoneName,`metadataSearchForAgentsZoneName`,`text`)),n.metadataWorkerDomain!==void 0&&c(h,[`metadata`,`worker_domain`],o(n.metadataWorkerDomain,`metadataWorkerDomain`,`text`)),n.publicEndpointParamsAuthorizedHosts!==void 0&&c(h,[`public_endpoint_params`,`authorized_hosts`],n.publicEndpointParamsAuthorizedHosts),n.publicEndpointParamsChatCompletionsEndpointDisabled!==void 0&&c(h,[`public_endpoint_params`,`chat_completions_endpoint`,`disabled`],n.publicEndpointParamsChatCompletionsEndpointDisabled),n.publicEndpointParamsEnabled!==void 0&&c(h,[`public_endpoint_params`,`enabled`],n.publicEndpointParamsEnabled),n.publicEndpointParamsMcpDescription!==void 0&&c(h,[`public_endpoint_params`,`mcp`,`description`],o(n.publicEndpointParamsMcpDescription,`publicEndpointParamsMcpDescription`,`text`)),n.publicEndpointParamsMcpDisabled!==void 0&&c(h,[`public_endpoint_params`,`mcp`,`disabled`],n.publicEndpointParamsMcpDisabled),n.publicEndpointParamsRateLimitPeriodMs!==void 0&&c(h,[`public_endpoint_params`,`rate_limit`,`period_ms`],n.publicEndpointParamsRateLimitPeriodMs),n.publicEndpointParamsRateLimitRequests!==void 0&&c(h,[`public_endpoint_params`,`rate_limit`,`requests`],n.publicEndpointParamsRateLimitRequests),n.publicEndpointParamsRateLimitTechnique!==void 0&&c(h,[`public_endpoint_params`,`rate_limit`,`technique`],o(n.publicEndpointParamsRateLimitTechnique,`publicEndpointParamsRateLimitTechnique`,`text`)),n.publicEndpointParamsSearchEndpointDisabled!==void 0&&c(h,[`public_endpoint_params`,`search_endpoint`,`disabled`],n.publicEndpointParamsSearchEndpointDisabled),n.reranking!==void 0&&c(h,[`reranking`],n.reranking),n.rerankingModel!==void 0&&c(h,[`reranking_model`],o(n.rerankingModel,`rerankingModel`,`text`)),n.retrievalOptionsKeywordMatchMode!==void 0&&c(h,[`retrieval_options`,`keyword_match_mode`],o(n.retrievalOptionsKeywordMatchMode,`retrievalOptionsKeywordMatchMode`,`text`)),n.rewriteModel!==void 0&&c(h,[`rewrite_model`],o(n.rewriteModel,`rewriteModel`,`text`)),n.rewriteQuery!==void 0&&c(h,[`rewrite_query`],n.rewriteQuery),n.scoreThreshold!==void 0&&c(h,[`score_threshold`],n.scoreThreshold),n.source!==void 0&&c(h,[`source`],o(n.source,`source`,`text`)),n.sourceParamsExcludeItems!==void 0&&c(h,[`source_params`,`exclude_items`],n.sourceParamsExcludeItems),n.sourceParamsIncludeItems!==void 0&&c(h,[`source_params`,`include_items`],n.sourceParamsIncludeItems),n.sourceParamsPrefix!==void 0&&c(h,[`source_params`,`prefix`],o(n.sourceParamsPrefix,`sourceParamsPrefix`,`text`)),n.sourceParamsR2Jurisdiction!==void 0&&c(h,[`source_params`,`r2_jurisdiction`],o(n.sourceParamsR2Jurisdiction,`sourceParamsR2Jurisdiction`,`text`)),n.sourceParamsWebCrawlerCrawlOptionsDepth!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`depth`],n.sourceParamsWebCrawlerCrawlOptionsDepth),n.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`include_external_links`],n.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks),n.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`include_subdomains`],n.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains),n.sourceParamsWebCrawlerCrawlOptionsMaxAge!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`max_age`],n.sourceParamsWebCrawlerCrawlOptionsMaxAge),n.sourceParamsWebCrawlerCrawlOptionsSource!==void 0&&c(h,[`source_params`,`web_crawler`,`crawl_options`,`source`],o(n.sourceParamsWebCrawlerCrawlOptionsSource,`sourceParamsWebCrawlerCrawlOptionsSource`,`text`)),n.sourceParamsWebCrawlerParseOptionsIncludeImages!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_options`,`include_images`],n.sourceParamsWebCrawlerParseOptionsIncludeImages),n.sourceParamsWebCrawlerParseOptionsSpecificSitemaps!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_options`,`specific_sitemaps`],n.sourceParamsWebCrawlerParseOptionsSpecificSitemaps),n.sourceParamsWebCrawlerParseOptionsUseBrowserRendering!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_options`,`use_browser_rendering`],n.sourceParamsWebCrawlerParseOptionsUseBrowserRendering),n.sourceParamsWebCrawlerParseType!==void 0&&c(h,[`source_params`,`web_crawler`,`parse_type`],o(n.sourceParamsWebCrawlerParseType,`sourceParamsWebCrawlerParseType`,`text`)),n.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction!==void 0&&c(h,[`source_params`,`web_crawler`,`store_options`,`r2_jurisdiction`],o(n.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,`sourceParamsWebCrawlerStoreOptionsR2Jurisdiction`,`text`)),n.sourceParamsWebCrawlerStoreOptionsStorageId!==void 0&&c(h,[`source_params`,`web_crawler`,`store_options`,`storage_id`],o(n.sourceParamsWebCrawlerStoreOptionsStorageId,`sourceParamsWebCrawlerStoreOptionsStorageId`,`text`)),n.sourceParamsWebCrawlerStoreOptionsStorageType!==void 0&&c(h,[`source_params`,`web_crawler`,`store_options`,`storage_type`],o(n.sourceParamsWebCrawlerStoreOptionsStorageType,`sourceParamsWebCrawlerStoreOptionsStorageType`,`text`)),n.tokenId!==void 0&&c(h,[`token_id`],o(n.tokenId,`tokenId`,`text`)),n.type!==void 0&&c(h,[`type`],o(n.type,`type`,`text`)),u(await p(`Creating instance`,async()=>i.post(`/accounts/${m}/ai-search/namespaces/${n.name}/instances`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created instance`})}},j={command:`delete <id>`,describe:`Delete instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}`,pathParams:{id:String(t.id??``),name:String(t.name??``)},bodyKind:`none`,validation:`passed`});return}let n=await a(t),o=t.local?f:await r(n);if(t.accountId=o,!await i(`instance`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
5
|
-
`);return}u(await p(`Deleting instance`,async()=>n.aiSearch.namespaces.instances.delete(t.id,o,t.name)),{successLabel:`Deleted instance`})}},M={command:`get <id>`,describe:`Read instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}),handler:async e=>{s(e.id,`id`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading instance`,async()=>t.aiSearch.namespaces.instances.get(e.id,n,e.name)),{successLabel:`Loaded instance`})}},N={command:`list`,describe:`Lists chunks for a specific item in an AI Search instance, including their text content.`,builder:e=>e.option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`item-id`,{type:`string`,description:`Item ID`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limit`}).option(`offset`,{type:`number`,description:`Offset`}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading chunks`,async()=>n.aiSearch.namespaces.instances.items.chunks.list(e.id,e.itemId,i,e.name,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded chunks`})}},P={command:`chunks`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(N).demandCommand(1),handler:()=>{}},F={command:`get <itemId>`,describe:`Downloads the raw file content for a specific item from the managed AI Search instance storage.`,builder:e=>e.positional(`itemId`,{type:`string`,description:`Item ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`text`,{type:`boolean`,description:`Decode the response body as UTF-8 text instead of writing raw bytes`,default:!1}),handler:async e=>{s(e.itemId,`itemId`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n;let i=await p(`Loading content`,async()=>h(`/accounts/${n}/ai-search/namespaces/${e.name}/instances/${e.id}/items/${e.itemId}/download`,`GET`,e.local?e.localEndpoint:void 0));m(e.text===!0?i.toString(`utf-8`):i)}},I={command:`content`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(F).demandCommand(1),handler:()=>{}},L={command:`update <id>`,describe:`Creates or updates an indexed item in an AI Search instance.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`key`,{type:`string`,description:`Item key / filename. Must not exceed 128 characters.`}).option(`next-action`,{type:`string`,description:`The next_action field`,choices:[`INDEX`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async i=>{if(s(i.id,`id`),i.dryRun){let t=e();t&&s(t,`accountId`),d({command:`cf ai-search namespaces instances items create or update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-search/namespaces/${i.name??`<name>`}/instances/${i.id??`<id>`}/items`,pathParams:{id:String(i.id??``),name:String(i.name??``)},bodyKind:`json`,body:{key:i.key,nextAction:i.nextAction,body:i.body},validation:`passed`});return}let m=await a(i),h=i.local?f:await r(m);if(i.accountId=h,i.body){let e=l(i.body);u(await p(`Updating or`,async()=>m.put(`/accounts/${h}/ai-search/namespaces/${i.name}/instances/${i.id}/items`,{body:e})),{successLabel:`Updated or`});return}i.key===void 0&&(i.key=await t(`key`,`Item key / filename. Must not exceed 128 characters.`)),i.nextAction===void 0&&(i.nextAction=await n(`next-action`,``,[`INDEX`]));let g={};i.key!==void 0&&c(g,[`key`],o(i.key,`key`,`text`)),i.nextAction!==void 0&&c(g,[`next_action`],o(i.nextAction,`nextAction`,`text`)),u(await p(`Updating or`,async()=>m.put(`/accounts/${h}/ai-search/namespaces/${i.name}/instances/${i.id}/items`,{body:Object.keys(g).length>0?g:void 0})),{successLabel:`Updated or`})}},R={command:`or`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(L).demandCommand(1),handler:()=>{}},z={command:`create`,describe:`Operations for namespaces.instances.items.create`,builder:e=>e.command(R).demandCommand(1),handler:()=>{}},B={command:`delete <itemId>`,describe:`Deletes a file from a managed AI Search instance and triggers a reindex.`,builder:e=>e.positional(`itemId`,{type:`string`,description:`Item ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(s(t.itemId,`itemId`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances items delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}/items/${t.itemId??`<itemId>`}`,pathParams:{id:String(t.id??``),itemId:String(t.itemId??``),name:String(t.name??``)},bodyKind:`none`,validation:`passed`});return}let n=await a(t),o=t.local?f:await r(n);if(t.accountId=o,!await i(`item`,String(t.itemId??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
6
|
-
`);return}u(await p(`Deleting item`,async()=>n.aiSearch.namespaces.instances.items.delete(t.id,t.itemId,o,t.name)),{successLabel:`Deleted item`})}},V={command:`get <itemId>`,describe:`Retrieves a specific indexed item from an AI Search instance.`,builder:e=>e.positional(`itemId`,{type:`string`,description:`Item ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}),handler:async e=>{s(e.itemId,`itemId`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading item`,async()=>t.aiSearch.namespaces.instances.items.get(e.id,e.itemId,n,e.name)),{successLabel:`Loaded item`})}},H={command:`list`,describe:`Lists indexed items in an AI Search instance.`,builder:e=>e.option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`search`,{type:`string`,description:`Search`}).option(`sort-by`,{type:`string`,description:`Sort order for items. "status" (default) sorts by status priority then last_seen_at. "modified_at" sorts by file modification time (most recent first), falling back to created_at.`,choices:[`status`,`modified_at`]}).option(`status`,{type:`string`,description:`Status`,choices:[`queued`,`running`,`completed`,`error`,`skipped`,`outdated`]}).option(`source`,{type:`string`,description:`Filter items by source_id. Use "builtin" for uploaded files, or a source identifier like "web-crawler:https://example.com".`}).option(`metadata-filter`,{type:`string`,description:`JSON-encoded metadata filter using Vectorize filter syntax. Examples: {"folder":"reports/"}, {"timestamp":{"$gte":1700000000000}}, {"folder":{"$in":["docs/","reports/"]}}`}).option(`item-id`,{type:`string`,description:`Filter items by their unique ID. Returns at most one item.`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.search!==void 0&&(t.search=e.search),e.sortBy!==void 0&&(t.sort_by=e.sortBy),e.status!==void 0&&(t.status=e.status),e.source!==void 0&&(t.source=e.source),e.metadataFilter!==void 0&&(t.metadata_filter=e.metadataFilter),e.itemId!==void 0&&(t.item_id=e.itemId);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading items`,async()=>n.aiSearch.namespaces.instances.items.list(e.id,i,e.name,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded items`})}},U={command:`logs <itemId>`,describe:`Lists processing logs for a specific item in an AI Search instance.`,builder:e=>e.positional(`itemId`,{type:`string`,description:`Item ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limit`}).option(`cursor`,{type:`string`,description:`Cursor`}),handler:async e=>{s(e.itemId,`itemId`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.cursor!==void 0&&(t.cursor=e.cursor);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading item`,async()=>n.aiSearch.namespaces.instances.items.logs(e.id,e.itemId,i,e.name,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded item`})}},W={command:`sync <itemId>`,describe:`Syncs an item to an AI Search instance index.`,builder:e=>e.positional(`itemId`,{type:`string`,description:`Item ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`next-action`,{type:`string`,description:`The next_action field`,choices:[`INDEX`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.itemId,`itemId`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances items sync`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}/items/${t.itemId??`<itemId>`}`,pathParams:{id:String(t.id??``),itemId:String(t.itemId??``),name:String(t.name??``)},bodyKind:`json`,body:{nextAction:t.nextAction,body:t.body},validation:`passed`});return}let i=await a(t),m=t.local?f:await r(i);if(t.accountId=m,t.body){let e=l(t.body);u(await p(`Updating item`,async()=>i.patch(`/accounts/${m}/ai-search/namespaces/${t.name}/instances/${t.id}/items/${t.itemId}`,{body:e})),{successLabel:`Updated item`});return}t.nextAction===void 0&&(t.nextAction=await n(`next-action`,``,[`INDEX`]));let h={};t.nextAction!==void 0&&c(h,[`next_action`],o(t.nextAction,`nextAction`,`text`)),u(await p(`Updating item`,async()=>i.patch(`/accounts/${m}/ai-search/namespaces/${t.name}/instances/${t.id}/items/${t.itemId}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated item`})}},te={command:`upload <id>`,describe:`Uploads a file to a managed AI Search instance via multipart/form-data (max 4MB).`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).option(`file`,{type:`string`,description:`Path to a file to upload as the request body`}).option(`metadata`,{type:`string`,description:`JSON string of custom metadata key-value pairs.`}).option(`wait-for-completion`,{type:`boolean`,description:`Wait for indexing to complete before responding. Defaults to false.`}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances items upload`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}/items`,pathParams:{id:String(t.id??``),name:String(t.name??``)},bodyKind:`multipart`,body:{body:t.body,file:t.file,metadata:t.metadata,waitForCompletion:t.waitForCompletion},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.file!==void 0||t.body!==void 0||t.metadata!==void 0||t.waitForCompletion!==void 0){let e=new FormData;if(t.file){let{readFileSync:n}=await import(`node:fs`),{resolve:r}=await import(`node:path`),i=n(r(t.file));e.append(`file`,new Blob([i]),t.file.split(`/`).pop())}else t.body!==void 0&&e.append(`file`,t.body);t.metadata!==void 0&&e.append(`metadata`,String(o(t.metadata,`metadata`,`text`)??``)),t.waitForCompletion!==void 0&&e.append(`wait_for_completion`,String(t.waitForCompletion)),u(await p(`Creating item`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/items`,{body:e})),{successLabel:`Created item`});return}if(t.body){let e=o(t.body,`body`,`binary`);u(await p(`Creating item`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/items`,{body:e,headers:{"Content-Type":`multipart/form-data`}})),{successLabel:`Created item`});return}if(t.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},G={command:`items`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(B).command(V).command(H).command(U).command(W).command(te).command(P).command(I).command(z).demandCommand(1),handler:()=>{}},K={command:`create <id>`,describe:`Creates a new indexing job for an AI Search instance.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`description`,{type:`string`,description:`The description field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances jobs create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}/jobs`,pathParams:{id:String(t.id??``),name:String(t.name??``)},bodyKind:`json`,body:{description:t.description,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Creating job`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/jobs`,{body:e})),{successLabel:`Created job`});return}let m={};t.description!==void 0&&c(m,[`description`],o(t.description,`description`,`text`)),u(await p(`Creating job`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/jobs`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Created job`})}},q={command:`edit <jobId>`,describe:`Updates the status of an AI Search indexing job.`,builder:e=>e.positional(`jobId`,{type:`string`,description:`Job ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`action`,{type:`string`,description:`The action field`,choices:[`cancel`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.jobId,`jobId`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances jobs edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}/jobs/${t.jobId??`<jobId>`}`,pathParams:{id:String(t.id??``),jobId:String(t.jobId??``),name:String(t.name??``)},bodyKind:`json`,body:{action:t.action,body:t.body},validation:`passed`});return}let i=await a(t),m=t.local?f:await r(i);if(t.accountId=m,t.body){let e=l(t.body);u(await p(`Updating job`,async()=>i.patch(`/accounts/${m}/ai-search/namespaces/${t.name}/instances/${t.id}/jobs/${t.jobId}`,{body:e})),{successLabel:`Updated job`});return}t.action===void 0&&(t.action=await n(`action`,``,[`cancel`]));let h={};t.action!==void 0&&c(h,[`action`],o(t.action,`action`,`text`)),u(await p(`Updating job`,async()=>i.patch(`/accounts/${m}/ai-search/namespaces/${t.name}/instances/${t.id}/jobs/${t.jobId}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated job`})}},J={command:`get <jobId>`,describe:`Retrieves details for a specific AI Search indexing job.`,builder:e=>e.positional(`jobId`,{type:`string`,description:`Job ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}),handler:async e=>{s(e.jobId,`jobId`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading job`,async()=>t.aiSearch.namespaces.instances.jobs.get(e.id,e.jobId,n,e.name)),{successLabel:`Loaded job`})}},Y={command:`list`,describe:`Lists indexing jobs for an AI Search instance.`,builder:e=>e.option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading jobs`,async()=>n.aiSearch.namespaces.instances.jobs.list(e.id,i,e.name,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded jobs`})}},X={command:`logs <jobId>`,describe:`Lists log entries for an AI Search indexing job.`,builder:e=>e.positional(`jobId`,{type:`string`,description:`Job ID`,demandOption:!0}).option(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}),handler:async e=>{s(e.jobId,`jobId`);let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading job`,async()=>n.aiSearch.namespaces.instances.jobs.logs(e.id,e.jobId,i,e.name,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded job`})}},Z={command:`jobs`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(K).command(q).command(J).command(Y).command(X).demandCommand(1),handler:()=>{}},Q={command:`list`,describe:`List instances.`,builder:e=>e.option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`namespace`,{type:`string`,description:`Namespace`}).option(`search`,{type:`string`,description:`Search by id`}).option(`order-by`,{type:`string`,description:`Order By Column Name`,choices:[`created_at`]}).option(`order-by-direction`,{type:`string`,description:`Order By Direction`,choices:[`asc`,`desc`]}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.namespace!==void 0&&(t.namespace=e.namespace),e.search!==void 0&&(t.search=e.search),e.orderBy!==void 0&&(t.order_by=e.orderBy),e.orderByDirection!==void 0&&(t.order_by_direction=e.orderByDirection);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading instances`,async()=>n.aiSearch.namespaces.instances.list(i,e.name,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded instances`})}},ne={command:`search <id>`,describe:`Executes a semantic search query against an AI Search instance to find relevant indexed content.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`ai-search-options-cache-cache-threshold`,{type:`string`,description:`The ai_search_options.cache.cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`ai-search-options-cache-enabled`,{type:`boolean`,description:`The ai_search_options.cache.enabled field`}).option(`ai-search-options-query-rewrite-enabled`,{type:`boolean`,description:`The ai_search_options.query_rewrite.enabled field`}).option(`ai-search-options-query-rewrite-rewrite-prompt`,{type:`string`,description:`The ai_search_options.query_rewrite.rewrite_prompt field`}).option(`ai-search-options-reranking-enabled`,{type:`boolean`,description:`The ai_search_options.reranking.enabled field`}).option(`ai-search-options-reranking-match-threshold`,{type:`number`,description:`The ai_search_options.reranking.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-context-expansion`,{type:`number`,description:`The ai_search_options.retrieval.context_expansion field`,default:0}).option(`ai-search-options-retrieval-fusion-method`,{type:`string`,description:`The ai_search_options.retrieval.fusion_method field`,choices:[`max`,`rrf`]}).option(`ai-search-options-retrieval-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`ai-search-options-retrieval-match-threshold`,{type:`number`,description:`The ai_search_options.retrieval.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-max-num-results`,{type:`number`,description:`The ai_search_options.retrieval.max_num_results field`,default:10}).option(`ai-search-options-retrieval-retrieval-type`,{type:`string`,description:`The ai_search_options.retrieval.retrieval_type field`,choices:[`vector`,`keyword`,`hybrid`]}).option(`ai-search-options-retrieval-return-on-failure`,{type:`boolean`,description:`The ai_search_options.retrieval.return_on_failure field`,default:!0}).option(`query`,{type:`string`,description:`A simple text query string. Alternative to 'messages' — provide either this or 'messages', not both.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances search`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}/search`,pathParams:{id:String(t.id??``),name:String(t.name??``)},bodyKind:`json`,body:{aiSearchOptionsCacheCacheThreshold:t.aiSearchOptionsCacheCacheThreshold,aiSearchOptionsCacheEnabled:t.aiSearchOptionsCacheEnabled,aiSearchOptionsQueryRewriteEnabled:t.aiSearchOptionsQueryRewriteEnabled,aiSearchOptionsQueryRewriteRewritePrompt:t.aiSearchOptionsQueryRewriteRewritePrompt,aiSearchOptionsRerankingEnabled:t.aiSearchOptionsRerankingEnabled,aiSearchOptionsRerankingMatchThreshold:t.aiSearchOptionsRerankingMatchThreshold,aiSearchOptionsRetrievalContextExpansion:t.aiSearchOptionsRetrievalContextExpansion,aiSearchOptionsRetrievalFusionMethod:t.aiSearchOptionsRetrievalFusionMethod,aiSearchOptionsRetrievalKeywordMatchMode:t.aiSearchOptionsRetrievalKeywordMatchMode,aiSearchOptionsRetrievalMatchThreshold:t.aiSearchOptionsRetrievalMatchThreshold,aiSearchOptionsRetrievalMaxNumResults:t.aiSearchOptionsRetrievalMaxNumResults,aiSearchOptionsRetrievalRetrievalType:t.aiSearchOptionsRetrievalRetrievalType,aiSearchOptionsRetrievalReturnOnFailure:t.aiSearchOptionsRetrievalReturnOnFailure,query:t.query,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Loading instance`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/search`,{body:e})),{successLabel:`Loaded instance`});return}let m={};t.aiSearchOptionsCacheCacheThreshold!==void 0&&c(m,[`ai_search_options`,`cache`,`cache_threshold`],o(t.aiSearchOptionsCacheCacheThreshold,`aiSearchOptionsCacheCacheThreshold`,`text`)),t.aiSearchOptionsCacheEnabled!==void 0&&c(m,[`ai_search_options`,`cache`,`enabled`],t.aiSearchOptionsCacheEnabled),t.aiSearchOptionsQueryRewriteEnabled!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`enabled`],t.aiSearchOptionsQueryRewriteEnabled),t.aiSearchOptionsQueryRewriteRewritePrompt!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`rewrite_prompt`],o(t.aiSearchOptionsQueryRewriteRewritePrompt,`aiSearchOptionsQueryRewriteRewritePrompt`,`text`)),t.aiSearchOptionsRerankingEnabled!==void 0&&c(m,[`ai_search_options`,`reranking`,`enabled`],t.aiSearchOptionsRerankingEnabled),t.aiSearchOptionsRerankingMatchThreshold!==void 0&&c(m,[`ai_search_options`,`reranking`,`match_threshold`],t.aiSearchOptionsRerankingMatchThreshold),t.aiSearchOptionsRetrievalContextExpansion!==void 0&&c(m,[`ai_search_options`,`retrieval`,`context_expansion`],t.aiSearchOptionsRetrievalContextExpansion),t.aiSearchOptionsRetrievalFusionMethod!==void 0&&c(m,[`ai_search_options`,`retrieval`,`fusion_method`],o(t.aiSearchOptionsRetrievalFusionMethod,`aiSearchOptionsRetrievalFusionMethod`,`text`)),t.aiSearchOptionsRetrievalKeywordMatchMode!==void 0&&c(m,[`ai_search_options`,`retrieval`,`keyword_match_mode`],o(t.aiSearchOptionsRetrievalKeywordMatchMode,`aiSearchOptionsRetrievalKeywordMatchMode`,`text`)),t.aiSearchOptionsRetrievalMatchThreshold!==void 0&&c(m,[`ai_search_options`,`retrieval`,`match_threshold`],t.aiSearchOptionsRetrievalMatchThreshold),t.aiSearchOptionsRetrievalMaxNumResults!==void 0&&c(m,[`ai_search_options`,`retrieval`,`max_num_results`],t.aiSearchOptionsRetrievalMaxNumResults),t.aiSearchOptionsRetrievalRetrievalType!==void 0&&c(m,[`ai_search_options`,`retrieval`,`retrieval_type`],o(t.aiSearchOptionsRetrievalRetrievalType,`aiSearchOptionsRetrievalRetrievalType`,`text`)),t.aiSearchOptionsRetrievalReturnOnFailure!==void 0&&c(m,[`ai_search_options`,`retrieval`,`return_on_failure`],t.aiSearchOptionsRetrievalReturnOnFailure),t.query!==void 0&&c(m,[`query`],o(t.query,`query`,`text`)),u(await p(`Loading instance`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}/search`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Loaded instance`})}},re={command:`update <id>`,describe:`Update instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`ai-gateway-id`,{type:`string`,description:`The ai_gateway_id field`}).option(`ai-search-model`,{type:`string`,description:`The ai_search_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`cache`,{type:`boolean`,description:`The cache field`}).option(`cache-threshold`,{type:`string`,description:`The cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`chunk`,{type:`boolean`,description:`The chunk field`}).option(`chunk-overlap`,{type:`number`,description:`The chunk_overlap field`}).option(`chunk-size`,{type:`number`,description:`The chunk_size field`}).option(`embedding-model`,{type:`string`,description:`The embedding_model field`,choices:[`@cf/qwen/qwen3-embedding-0.6b`,`@cf/baai/bge-m3`,`@cf/baai/bge-large-en-v1.5`,`@cf/google/embeddinggemma-300m`,`google-ai-studio/gemini-embedding-001`,`google-ai-studio/gemini-embedding-2-preview`,`openai/text-embedding-3-small`,`openai/text-embedding-3-large`]}).option(`fusion-method`,{type:`string`,description:`The fusion_method field`,choices:[`max`,`rrf`]}).option(`index-method-keyword`,{type:`boolean`,description:`Enable keyword (BM25) storage backend.`}).option(`index-method-vector`,{type:`boolean`,description:`Enable vector (embedding) storage backend.`}).option(`indexing-options-keyword-tokenizer`,{type:`string`,description:`Tokenizer used for keyword search indexing. porter provides word-level tokenization with Porter stemming (good for natural language queries). trigram enables character-level substring matching (good for partial matches, code, identifiers). Changing this triggers a full re-index. Defaults to porter.`,choices:[`porter`,`trigram`]}).option(`max-num-results`,{type:`number`,description:`The max_num_results field`}).option(`metadata-created-from-aisearch-wizard`,{type:`boolean`,description:`The metadata.created_from_aisearch_wizard field`}).option(`metadata-search-for-agents-hostname`,{type:`string`,description:`The metadata.search_for_agents.hostname field`}).option(`metadata-search-for-agents-zone-id`,{type:`string`,description:`The metadata.search_for_agents.zone_id field`}).option(`metadata-search-for-agents-zone-name`,{type:`string`,description:`The metadata.search_for_agents.zone_name field`}).option(`metadata-worker-domain`,{type:`string`,description:`The metadata.worker_domain field`}).option(`paused`,{type:`boolean`,description:`The paused field`}).option(`public-endpoint-params-authorized-hosts`,{type:`string`,array:!0,description:`The public_endpoint_params.authorized_hosts field`}).option(`public-endpoint-params-chat-completions-endpoint-disabled`,{type:`boolean`,description:`Disable chat completions endpoint for this public endpoint`}).option(`public-endpoint-params-enabled`,{type:`boolean`,description:`The public_endpoint_params.enabled field`}).option(`public-endpoint-params-mcp-description`,{type:`string`,description:`The public_endpoint_params.mcp.description field`}).option(`public-endpoint-params-mcp-disabled`,{type:`boolean`,description:`Disable MCP endpoint for this public endpoint`}).option(`public-endpoint-params-rate-limit-period-ms`,{type:`number`,description:`The public_endpoint_params.rate_limit.period_ms field`}).option(`public-endpoint-params-rate-limit-requests`,{type:`number`,description:`The public_endpoint_params.rate_limit.requests field`}).option(`public-endpoint-params-rate-limit-technique`,{type:`string`,description:`The public_endpoint_params.rate_limit.technique field`,choices:[`fixed`,`sliding`]}).option(`public-endpoint-params-search-endpoint-disabled`,{type:`boolean`,description:`Disable search endpoint for this public endpoint`}).option(`reranking`,{type:`boolean`,description:`The reranking field`}).option(`reranking-model`,{type:`string`,description:`The reranking_model field`,choices:[`@cf/baai/bge-reranker-base`]}).option(`retrieval-options-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`]}).option(`rewrite-model`,{type:`string`,description:`The rewrite_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`rewrite-query`,{type:`boolean`,description:`The rewrite_query field`}).option(`score-threshold`,{type:`number`,description:`The score_threshold field`}).option(`source-params-exclude-items`,{type:`string`,array:!0,description:`List of path patterns to exclude. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /admin/** matches /admin/users and /admin/settings/advanced)`}).option(`source-params-include-items`,{type:`string`,array:!0,description:`List of path patterns to include. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /blog/** matches /blog/post and /blog/2024/post)`}).option(`source-params-prefix`,{type:`string`,description:`The source_params.prefix field`}).option(`source-params-r2-jurisdiction`,{type:`string`,description:`The source_params.r2_jurisdiction field`}).option(`source-params-web-crawler-crawl-options-depth`,{type:`number`,description:`The source_params.web_crawler.crawl_options.depth field`}).option(`source-params-web-crawler-crawl-options-include-external-links`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_external_links field`}).option(`source-params-web-crawler-crawl-options-include-subdomains`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_subdomains field`}).option(`source-params-web-crawler-crawl-options-max-age`,{type:`number`,description:`The source_params.web_crawler.crawl_options.max_age field`}).option(`source-params-web-crawler-crawl-options-source`,{type:`string`,description:`The source_params.web_crawler.crawl_options.source field`,choices:[`all`,`sitemaps`,`links`]}).option(`source-params-web-crawler-parse-options-include-images`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.include_images field`}).option(`source-params-web-crawler-parse-options-specific-sitemaps`,{type:`string`,array:!0,description:`List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'.`}).option(`source-params-web-crawler-parse-options-use-browser-rendering`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.use_browser_rendering field`}).option(`source-params-web-crawler-parse-type`,{type:`string`,description:`The source_params.web_crawler.parse_type field`,choices:[`sitemap`,`feed-rss`,`crawl`]}).option(`source-params-web-crawler-store-options-r2-jurisdiction`,{type:`string`,description:`The source_params.web_crawler.store_options.r2_jurisdiction field`}).option(`source-params-web-crawler-store-options-storage-id`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_id field`}).option(`source-params-web-crawler-store-options-storage-type`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_type field`,choices:[`r2`]}).option(`summarization`,{type:`boolean`,description:`The summarization field`}).option(`summarization-model`,{type:`string`,description:`The summarization_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`system-prompt-ai-search`,{type:`string`,description:`The system_prompt_ai_search field`}).option(`system-prompt-index-summarization`,{type:`string`,description:`The system_prompt_index_summarization field`}).option(`system-prompt-rewrite-query`,{type:`string`,description:`The system_prompt_rewrite_query field`}).option(`token-id`,{type:`string`,description:`The token_id field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).check(e=>{if([`source-params-exclude-items`,`source-params-include-items`,`source-params-prefix`,`source-params-web-crawler-crawl-options-depth`,`source-params-web-crawler-crawl-options-max-age`,`source-params-web-crawler-parse-options-specific-sitemaps`,`source-params-web-crawler-store-options-storage-id`].some(t=>e[t]!==void 0)){let t=[`source-params-web-crawler-store-options-storage-id`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --source_params-* flag is set`)}return!0}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces instances update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/instances/${t.id??`<id>`}`,pathParams:{id:String(t.id??``),name:String(t.name??``)},bodyKind:`json`,body:{aiGatewayId:t.aiGatewayId,aiSearchModel:t.aiSearchModel,cache:t.cache,cacheThreshold:t.cacheThreshold,chunk:t.chunk,chunkOverlap:t.chunkOverlap,chunkSize:t.chunkSize,embeddingModel:t.embeddingModel,fusionMethod:t.fusionMethod,indexMethodKeyword:t.indexMethodKeyword,indexMethodVector:t.indexMethodVector,indexingOptionsKeywordTokenizer:t.indexingOptionsKeywordTokenizer,maxNumResults:t.maxNumResults,metadataCreatedFromAisearchWizard:t.metadataCreatedFromAisearchWizard,metadataSearchForAgentsHostname:t.metadataSearchForAgentsHostname,metadataSearchForAgentsZoneId:t.metadataSearchForAgentsZoneId,metadataSearchForAgentsZoneName:t.metadataSearchForAgentsZoneName,metadataWorkerDomain:t.metadataWorkerDomain,paused:t.paused,publicEndpointParamsAuthorizedHosts:t.publicEndpointParamsAuthorizedHosts,publicEndpointParamsChatCompletionsEndpointDisabled:t.publicEndpointParamsChatCompletionsEndpointDisabled,publicEndpointParamsEnabled:t.publicEndpointParamsEnabled,publicEndpointParamsMcpDescription:t.publicEndpointParamsMcpDescription,publicEndpointParamsMcpDisabled:t.publicEndpointParamsMcpDisabled,publicEndpointParamsRateLimitPeriodMs:t.publicEndpointParamsRateLimitPeriodMs,publicEndpointParamsRateLimitRequests:t.publicEndpointParamsRateLimitRequests,publicEndpointParamsRateLimitTechnique:t.publicEndpointParamsRateLimitTechnique,publicEndpointParamsSearchEndpointDisabled:t.publicEndpointParamsSearchEndpointDisabled,reranking:t.reranking,rerankingModel:t.rerankingModel,retrievalOptionsKeywordMatchMode:t.retrievalOptionsKeywordMatchMode,rewriteModel:t.rewriteModel,rewriteQuery:t.rewriteQuery,scoreThreshold:t.scoreThreshold,sourceParamsExcludeItems:t.sourceParamsExcludeItems,sourceParamsIncludeItems:t.sourceParamsIncludeItems,sourceParamsPrefix:t.sourceParamsPrefix,sourceParamsR2Jurisdiction:t.sourceParamsR2Jurisdiction,sourceParamsWebCrawlerCrawlOptionsDepth:t.sourceParamsWebCrawlerCrawlOptionsDepth,sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks:t.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks,sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains:t.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains,sourceParamsWebCrawlerCrawlOptionsMaxAge:t.sourceParamsWebCrawlerCrawlOptionsMaxAge,sourceParamsWebCrawlerCrawlOptionsSource:t.sourceParamsWebCrawlerCrawlOptionsSource,sourceParamsWebCrawlerParseOptionsIncludeImages:t.sourceParamsWebCrawlerParseOptionsIncludeImages,sourceParamsWebCrawlerParseOptionsSpecificSitemaps:t.sourceParamsWebCrawlerParseOptionsSpecificSitemaps,sourceParamsWebCrawlerParseOptionsUseBrowserRendering:t.sourceParamsWebCrawlerParseOptionsUseBrowserRendering,sourceParamsWebCrawlerParseType:t.sourceParamsWebCrawlerParseType,sourceParamsWebCrawlerStoreOptionsR2Jurisdiction:t.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,sourceParamsWebCrawlerStoreOptionsStorageId:t.sourceParamsWebCrawlerStoreOptionsStorageId,sourceParamsWebCrawlerStoreOptionsStorageType:t.sourceParamsWebCrawlerStoreOptionsStorageType,summarization:t.summarization,summarizationModel:t.summarizationModel,systemPromptAiSearch:t.systemPromptAiSearch,systemPromptIndexSummarization:t.systemPromptIndexSummarization,systemPromptRewriteQuery:t.systemPromptRewriteQuery,tokenId:t.tokenId,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Updating instance`,async()=>n.put(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}`,{body:e})),{successLabel:`Updated instance`});return}let m={};t.aiGatewayId!==void 0&&c(m,[`ai_gateway_id`],o(t.aiGatewayId,`aiGatewayId`,`text`)),t.aiSearchModel!==void 0&&c(m,[`ai_search_model`],o(t.aiSearchModel,`aiSearchModel`,`text`)),t.cache!==void 0&&c(m,[`cache`],t.cache),t.cacheThreshold!==void 0&&c(m,[`cache_threshold`],o(t.cacheThreshold,`cacheThreshold`,`text`)),t.chunk!==void 0&&c(m,[`chunk`],t.chunk),t.chunkOverlap!==void 0&&c(m,[`chunk_overlap`],t.chunkOverlap),t.chunkSize!==void 0&&c(m,[`chunk_size`],t.chunkSize),t.embeddingModel!==void 0&&c(m,[`embedding_model`],o(t.embeddingModel,`embeddingModel`,`text`)),t.fusionMethod!==void 0&&c(m,[`fusion_method`],o(t.fusionMethod,`fusionMethod`,`text`)),t.indexMethodKeyword!==void 0&&c(m,[`index_method`,`keyword`],t.indexMethodKeyword),t.indexMethodVector!==void 0&&c(m,[`index_method`,`vector`],t.indexMethodVector),t.indexingOptionsKeywordTokenizer!==void 0&&c(m,[`indexing_options`,`keyword_tokenizer`],o(t.indexingOptionsKeywordTokenizer,`indexingOptionsKeywordTokenizer`,`text`)),t.maxNumResults!==void 0&&c(m,[`max_num_results`],t.maxNumResults),t.metadataCreatedFromAisearchWizard!==void 0&&c(m,[`metadata`,`created_from_aisearch_wizard`],t.metadataCreatedFromAisearchWizard),t.metadataSearchForAgentsHostname!==void 0&&c(m,[`metadata`,`search_for_agents`,`hostname`],o(t.metadataSearchForAgentsHostname,`metadataSearchForAgentsHostname`,`text`)),t.metadataSearchForAgentsZoneId!==void 0&&c(m,[`metadata`,`search_for_agents`,`zone_id`],o(t.metadataSearchForAgentsZoneId,`metadataSearchForAgentsZoneId`,`text`)),t.metadataSearchForAgentsZoneName!==void 0&&c(m,[`metadata`,`search_for_agents`,`zone_name`],o(t.metadataSearchForAgentsZoneName,`metadataSearchForAgentsZoneName`,`text`)),t.metadataWorkerDomain!==void 0&&c(m,[`metadata`,`worker_domain`],o(t.metadataWorkerDomain,`metadataWorkerDomain`,`text`)),t.paused!==void 0&&c(m,[`paused`],t.paused),t.publicEndpointParamsAuthorizedHosts!==void 0&&c(m,[`public_endpoint_params`,`authorized_hosts`],t.publicEndpointParamsAuthorizedHosts),t.publicEndpointParamsChatCompletionsEndpointDisabled!==void 0&&c(m,[`public_endpoint_params`,`chat_completions_endpoint`,`disabled`],t.publicEndpointParamsChatCompletionsEndpointDisabled),t.publicEndpointParamsEnabled!==void 0&&c(m,[`public_endpoint_params`,`enabled`],t.publicEndpointParamsEnabled),t.publicEndpointParamsMcpDescription!==void 0&&c(m,[`public_endpoint_params`,`mcp`,`description`],o(t.publicEndpointParamsMcpDescription,`publicEndpointParamsMcpDescription`,`text`)),t.publicEndpointParamsMcpDisabled!==void 0&&c(m,[`public_endpoint_params`,`mcp`,`disabled`],t.publicEndpointParamsMcpDisabled),t.publicEndpointParamsRateLimitPeriodMs!==void 0&&c(m,[`public_endpoint_params`,`rate_limit`,`period_ms`],t.publicEndpointParamsRateLimitPeriodMs),t.publicEndpointParamsRateLimitRequests!==void 0&&c(m,[`public_endpoint_params`,`rate_limit`,`requests`],t.publicEndpointParamsRateLimitRequests),t.publicEndpointParamsRateLimitTechnique!==void 0&&c(m,[`public_endpoint_params`,`rate_limit`,`technique`],o(t.publicEndpointParamsRateLimitTechnique,`publicEndpointParamsRateLimitTechnique`,`text`)),t.publicEndpointParamsSearchEndpointDisabled!==void 0&&c(m,[`public_endpoint_params`,`search_endpoint`,`disabled`],t.publicEndpointParamsSearchEndpointDisabled),t.reranking!==void 0&&c(m,[`reranking`],t.reranking),t.rerankingModel!==void 0&&c(m,[`reranking_model`],o(t.rerankingModel,`rerankingModel`,`text`)),t.retrievalOptionsKeywordMatchMode!==void 0&&c(m,[`retrieval_options`,`keyword_match_mode`],o(t.retrievalOptionsKeywordMatchMode,`retrievalOptionsKeywordMatchMode`,`text`)),t.rewriteModel!==void 0&&c(m,[`rewrite_model`],o(t.rewriteModel,`rewriteModel`,`text`)),t.rewriteQuery!==void 0&&c(m,[`rewrite_query`],t.rewriteQuery),t.scoreThreshold!==void 0&&c(m,[`score_threshold`],t.scoreThreshold),t.sourceParamsExcludeItems!==void 0&&c(m,[`source_params`,`exclude_items`],t.sourceParamsExcludeItems),t.sourceParamsIncludeItems!==void 0&&c(m,[`source_params`,`include_items`],t.sourceParamsIncludeItems),t.sourceParamsPrefix!==void 0&&c(m,[`source_params`,`prefix`],o(t.sourceParamsPrefix,`sourceParamsPrefix`,`text`)),t.sourceParamsR2Jurisdiction!==void 0&&c(m,[`source_params`,`r2_jurisdiction`],o(t.sourceParamsR2Jurisdiction,`sourceParamsR2Jurisdiction`,`text`)),t.sourceParamsWebCrawlerCrawlOptionsDepth!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`depth`],t.sourceParamsWebCrawlerCrawlOptionsDepth),t.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`include_external_links`],t.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks),t.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`include_subdomains`],t.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains),t.sourceParamsWebCrawlerCrawlOptionsMaxAge!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`max_age`],t.sourceParamsWebCrawlerCrawlOptionsMaxAge),t.sourceParamsWebCrawlerCrawlOptionsSource!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`source`],o(t.sourceParamsWebCrawlerCrawlOptionsSource,`sourceParamsWebCrawlerCrawlOptionsSource`,`text`)),t.sourceParamsWebCrawlerParseOptionsIncludeImages!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_options`,`include_images`],t.sourceParamsWebCrawlerParseOptionsIncludeImages),t.sourceParamsWebCrawlerParseOptionsSpecificSitemaps!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_options`,`specific_sitemaps`],t.sourceParamsWebCrawlerParseOptionsSpecificSitemaps),t.sourceParamsWebCrawlerParseOptionsUseBrowserRendering!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_options`,`use_browser_rendering`],t.sourceParamsWebCrawlerParseOptionsUseBrowserRendering),t.sourceParamsWebCrawlerParseType!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_type`],o(t.sourceParamsWebCrawlerParseType,`sourceParamsWebCrawlerParseType`,`text`)),t.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction!==void 0&&c(m,[`source_params`,`web_crawler`,`store_options`,`r2_jurisdiction`],o(t.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,`sourceParamsWebCrawlerStoreOptionsR2Jurisdiction`,`text`)),t.sourceParamsWebCrawlerStoreOptionsStorageId!==void 0&&c(m,[`source_params`,`web_crawler`,`store_options`,`storage_id`],o(t.sourceParamsWebCrawlerStoreOptionsStorageId,`sourceParamsWebCrawlerStoreOptionsStorageId`,`text`)),t.sourceParamsWebCrawlerStoreOptionsStorageType!==void 0&&c(m,[`source_params`,`web_crawler`,`store_options`,`storage_type`],o(t.sourceParamsWebCrawlerStoreOptionsStorageType,`sourceParamsWebCrawlerStoreOptionsStorageType`,`text`)),t.summarization!==void 0&&c(m,[`summarization`],t.summarization),t.summarizationModel!==void 0&&c(m,[`summarization_model`],o(t.summarizationModel,`summarizationModel`,`text`)),t.systemPromptAiSearch!==void 0&&c(m,[`system_prompt_ai_search`],o(t.systemPromptAiSearch,`systemPromptAiSearch`,`text`)),t.systemPromptIndexSummarization!==void 0&&c(m,[`system_prompt_index_summarization`],o(t.systemPromptIndexSummarization,`systemPromptIndexSummarization`,`text`)),t.systemPromptRewriteQuery!==void 0&&c(m,[`system_prompt_rewrite_query`],o(t.systemPromptRewriteQuery,`systemPromptRewriteQuery`,`text`)),t.tokenId!==void 0&&c(m,[`token_id`],o(t.tokenId,`tokenId`,`text`)),u(await p(`Updating instance`,async()=>n.put(`/accounts/${i}/ai-search/namespaces/${t.name}/instances/${t.id}`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Updated instance`})}},ie={command:`instances`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(A).command(j).command(M).command(Q).command(ne).command(re).command(k).command(G).command(Z).demandCommand(1),handler:()=>{}},ae={command:`list`,describe:`List namespaces.`,builder:e=>e.option(`page`,{type:`number`,description:`Page number (1-indexed).`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`search`,{type:`string`,description:`Filter namespaces whose name or description contains this string (case-insensitive).`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.search!==void 0&&(t.search=e.search);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading namespaces`,async()=>n.aiSearch.namespaces.list(i,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded namespaces`})}},oe={command:`instance <id>`,describe:`Moves an instance from its current namespace to the specified target namespace. Use 'default' as new_namespace to move the instance back to the default namespace. Fails with 400 if the target namespace already has an instance with the same id (ids must be unique within a namespace — the same id can exist in different namespaces).`,builder:e=>e.positional(`id`,{type:`string`,description:`Instance id.`,demandOption:!0}).option(`name`,{type:`string`,description:`Current namespace of the instance.`,demandOption:!0}).option(`new-namespace`,{type:`string`,description:`Target namespace to move the instance into.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async n=>{if(s(n.id,`id`),n.dryRun){let t=e();t&&s(t,`accountId`),d({command:`cf ai-search namespaces move instance`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-search/namespaces/${n.name??`<name>`}/instances/${n.id??`<id>`}`,pathParams:{name:String(n.name??``),id:String(n.id??``)},bodyKind:`json`,body:{newNamespace:n.newNamespace,body:n.body},validation:`passed`});return}let i=await a(n),m=n.local?f:await r(i);if(n.accountId=m,n.body){let e=l(n.body);u(await p(`Updating move`,async()=>i.patch(`/accounts/${m}/ai-search/namespaces/${n.name}/instances/${n.id}`,{body:e})),{successLabel:`Updated move`});return}n.newNamespace===void 0&&(n.newNamespace=await t(`new-namespace`,`Target namespace to move the instance into.`));let h={};n.newNamespace!==void 0&&c(h,[`new_namespace`],o(n.newNamespace,`newNamespace`,`text`)),u(await p(`Updating move`,async()=>i.patch(`/accounts/${m}/ai-search/namespaces/${n.name}/instances/${n.id}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated move`})}},se={command:`move`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(oe).demandCommand(1),handler:()=>{}},ce={command:`completions <name>`,describe:`Performs a chat completion request against multiple AI Search instances in parallel, merging retrieved content as context for generating a response.`,builder:e=>e.positional(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`ai-search-options-cache-cache-threshold`,{type:`string`,description:`The ai_search_options.cache.cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`ai-search-options-cache-enabled`,{type:`boolean`,description:`The ai_search_options.cache.enabled field`}).option(`ai-search-options-instance-ids`,{type:`string`,array:!0,description:`The ai_search_options.instance_ids field`}).option(`ai-search-options-query-rewrite-enabled`,{type:`boolean`,description:`The ai_search_options.query_rewrite.enabled field`}).option(`ai-search-options-query-rewrite-rewrite-prompt`,{type:`string`,description:`The ai_search_options.query_rewrite.rewrite_prompt field`}).option(`ai-search-options-reranking-enabled`,{type:`boolean`,description:`The ai_search_options.reranking.enabled field`}).option(`ai-search-options-reranking-match-threshold`,{type:`number`,description:`The ai_search_options.reranking.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-context-expansion`,{type:`number`,description:`The ai_search_options.retrieval.context_expansion field`,default:0}).option(`ai-search-options-retrieval-fusion-method`,{type:`string`,description:`The ai_search_options.retrieval.fusion_method field`,choices:[`max`,`rrf`]}).option(`ai-search-options-retrieval-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`ai-search-options-retrieval-match-threshold`,{type:`number`,description:`The ai_search_options.retrieval.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-max-num-results`,{type:`number`,description:`The ai_search_options.retrieval.max_num_results field`,default:10}).option(`ai-search-options-retrieval-retrieval-type`,{type:`string`,description:`The ai_search_options.retrieval.retrieval_type field`,choices:[`vector`,`keyword`,`hybrid`]}).option(`ai-search-options-retrieval-return-on-failure`,{type:`boolean`,description:`The ai_search_options.retrieval.return_on_failure field`,default:!0}).option(`stream`,{type:`boolean`,description:`The stream field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.name,`name`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces multi instance chat completions`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/chat/completions`,pathParams:{name:String(t.name??``)},bodyKind:`json`,body:{aiSearchOptionsCacheCacheThreshold:t.aiSearchOptionsCacheCacheThreshold,aiSearchOptionsCacheEnabled:t.aiSearchOptionsCacheEnabled,aiSearchOptionsInstanceIds:t.aiSearchOptionsInstanceIds,aiSearchOptionsQueryRewriteEnabled:t.aiSearchOptionsQueryRewriteEnabled,aiSearchOptionsQueryRewriteRewritePrompt:t.aiSearchOptionsQueryRewriteRewritePrompt,aiSearchOptionsRerankingEnabled:t.aiSearchOptionsRerankingEnabled,aiSearchOptionsRerankingMatchThreshold:t.aiSearchOptionsRerankingMatchThreshold,aiSearchOptionsRetrievalContextExpansion:t.aiSearchOptionsRetrievalContextExpansion,aiSearchOptionsRetrievalFusionMethod:t.aiSearchOptionsRetrievalFusionMethod,aiSearchOptionsRetrievalKeywordMatchMode:t.aiSearchOptionsRetrievalKeywordMatchMode,aiSearchOptionsRetrievalMatchThreshold:t.aiSearchOptionsRetrievalMatchThreshold,aiSearchOptionsRetrievalMaxNumResults:t.aiSearchOptionsRetrievalMaxNumResults,aiSearchOptionsRetrievalRetrievalType:t.aiSearchOptionsRetrievalRetrievalType,aiSearchOptionsRetrievalReturnOnFailure:t.aiSearchOptionsRetrievalReturnOnFailure,stream:t.stream,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Creating chat`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/chat/completions`,{body:e})),{successLabel:`Created chat`});return}if(t.aiSearchOptionsInstanceIds===void 0)throw Error(`--ai-search-options-instance-ids is required (or pass --body with this field set).`);let m={};t.aiSearchOptionsCacheCacheThreshold!==void 0&&c(m,[`ai_search_options`,`cache`,`cache_threshold`],o(t.aiSearchOptionsCacheCacheThreshold,`aiSearchOptionsCacheCacheThreshold`,`text`)),t.aiSearchOptionsCacheEnabled!==void 0&&c(m,[`ai_search_options`,`cache`,`enabled`],t.aiSearchOptionsCacheEnabled),t.aiSearchOptionsInstanceIds!==void 0&&c(m,[`ai_search_options`,`instance_ids`],t.aiSearchOptionsInstanceIds),t.aiSearchOptionsQueryRewriteEnabled!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`enabled`],t.aiSearchOptionsQueryRewriteEnabled),t.aiSearchOptionsQueryRewriteRewritePrompt!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`rewrite_prompt`],o(t.aiSearchOptionsQueryRewriteRewritePrompt,`aiSearchOptionsQueryRewriteRewritePrompt`,`text`)),t.aiSearchOptionsRerankingEnabled!==void 0&&c(m,[`ai_search_options`,`reranking`,`enabled`],t.aiSearchOptionsRerankingEnabled),t.aiSearchOptionsRerankingMatchThreshold!==void 0&&c(m,[`ai_search_options`,`reranking`,`match_threshold`],t.aiSearchOptionsRerankingMatchThreshold),t.aiSearchOptionsRetrievalContextExpansion!==void 0&&c(m,[`ai_search_options`,`retrieval`,`context_expansion`],t.aiSearchOptionsRetrievalContextExpansion),t.aiSearchOptionsRetrievalFusionMethod!==void 0&&c(m,[`ai_search_options`,`retrieval`,`fusion_method`],o(t.aiSearchOptionsRetrievalFusionMethod,`aiSearchOptionsRetrievalFusionMethod`,`text`)),t.aiSearchOptionsRetrievalKeywordMatchMode!==void 0&&c(m,[`ai_search_options`,`retrieval`,`keyword_match_mode`],o(t.aiSearchOptionsRetrievalKeywordMatchMode,`aiSearchOptionsRetrievalKeywordMatchMode`,`text`)),t.aiSearchOptionsRetrievalMatchThreshold!==void 0&&c(m,[`ai_search_options`,`retrieval`,`match_threshold`],t.aiSearchOptionsRetrievalMatchThreshold),t.aiSearchOptionsRetrievalMaxNumResults!==void 0&&c(m,[`ai_search_options`,`retrieval`,`max_num_results`],t.aiSearchOptionsRetrievalMaxNumResults),t.aiSearchOptionsRetrievalRetrievalType!==void 0&&c(m,[`ai_search_options`,`retrieval`,`retrieval_type`],o(t.aiSearchOptionsRetrievalRetrievalType,`aiSearchOptionsRetrievalRetrievalType`,`text`)),t.aiSearchOptionsRetrievalReturnOnFailure!==void 0&&c(m,[`ai_search_options`,`retrieval`,`return_on_failure`],t.aiSearchOptionsRetrievalReturnOnFailure),t.stream!==void 0&&c(m,[`stream`],t.stream),u(await p(`Creating chat`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/chat/completions`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Created chat`})}},le={command:`chat`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(ce).demandCommand(1),handler:()=>{}},ue={command:`search <name>`,describe:`Search across multiple instances in a namespace`,builder:e=>e.positional(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}).option(`ai-search-options-cache-cache-threshold`,{type:`string`,description:`The ai_search_options.cache.cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`ai-search-options-cache-enabled`,{type:`boolean`,description:`The ai_search_options.cache.enabled field`}).option(`ai-search-options-instance-ids`,{type:`string`,array:!0,description:`The ai_search_options.instance_ids field`}).option(`ai-search-options-query-rewrite-enabled`,{type:`boolean`,description:`The ai_search_options.query_rewrite.enabled field`}).option(`ai-search-options-query-rewrite-rewrite-prompt`,{type:`string`,description:`The ai_search_options.query_rewrite.rewrite_prompt field`}).option(`ai-search-options-reranking-enabled`,{type:`boolean`,description:`The ai_search_options.reranking.enabled field`}).option(`ai-search-options-reranking-match-threshold`,{type:`number`,description:`The ai_search_options.reranking.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-context-expansion`,{type:`number`,description:`The ai_search_options.retrieval.context_expansion field`,default:0}).option(`ai-search-options-retrieval-fusion-method`,{type:`string`,description:`The ai_search_options.retrieval.fusion_method field`,choices:[`max`,`rrf`]}).option(`ai-search-options-retrieval-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`ai-search-options-retrieval-match-threshold`,{type:`number`,description:`The ai_search_options.retrieval.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-max-num-results`,{type:`number`,description:`The ai_search_options.retrieval.max_num_results field`,default:10}).option(`ai-search-options-retrieval-retrieval-type`,{type:`string`,description:`The ai_search_options.retrieval.retrieval_type field`,choices:[`vector`,`keyword`,`hybrid`]}).option(`ai-search-options-retrieval-return-on-failure`,{type:`boolean`,description:`The ai_search_options.retrieval.return_on_failure field`,default:!0}).option(`query`,{type:`string`,description:`A simple text query string. Alternative to 'messages' — provide either this or 'messages', not both.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.name,`name`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces multi instance search`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}/search`,pathParams:{name:String(t.name??``)},bodyKind:`json`,body:{aiSearchOptionsCacheCacheThreshold:t.aiSearchOptionsCacheCacheThreshold,aiSearchOptionsCacheEnabled:t.aiSearchOptionsCacheEnabled,aiSearchOptionsInstanceIds:t.aiSearchOptionsInstanceIds,aiSearchOptionsQueryRewriteEnabled:t.aiSearchOptionsQueryRewriteEnabled,aiSearchOptionsQueryRewriteRewritePrompt:t.aiSearchOptionsQueryRewriteRewritePrompt,aiSearchOptionsRerankingEnabled:t.aiSearchOptionsRerankingEnabled,aiSearchOptionsRerankingMatchThreshold:t.aiSearchOptionsRerankingMatchThreshold,aiSearchOptionsRetrievalContextExpansion:t.aiSearchOptionsRetrievalContextExpansion,aiSearchOptionsRetrievalFusionMethod:t.aiSearchOptionsRetrievalFusionMethod,aiSearchOptionsRetrievalKeywordMatchMode:t.aiSearchOptionsRetrievalKeywordMatchMode,aiSearchOptionsRetrievalMatchThreshold:t.aiSearchOptionsRetrievalMatchThreshold,aiSearchOptionsRetrievalMaxNumResults:t.aiSearchOptionsRetrievalMaxNumResults,aiSearchOptionsRetrievalRetrievalType:t.aiSearchOptionsRetrievalRetrievalType,aiSearchOptionsRetrievalReturnOnFailure:t.aiSearchOptionsRetrievalReturnOnFailure,query:t.query,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Loading instance`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/search`,{body:e})),{successLabel:`Loaded instance`});return}if(t.aiSearchOptionsInstanceIds===void 0)throw Error(`--ai-search-options-instance-ids is required (or pass --body with this field set).`);let m={};t.aiSearchOptionsCacheCacheThreshold!==void 0&&c(m,[`ai_search_options`,`cache`,`cache_threshold`],o(t.aiSearchOptionsCacheCacheThreshold,`aiSearchOptionsCacheCacheThreshold`,`text`)),t.aiSearchOptionsCacheEnabled!==void 0&&c(m,[`ai_search_options`,`cache`,`enabled`],t.aiSearchOptionsCacheEnabled),t.aiSearchOptionsInstanceIds!==void 0&&c(m,[`ai_search_options`,`instance_ids`],t.aiSearchOptionsInstanceIds),t.aiSearchOptionsQueryRewriteEnabled!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`enabled`],t.aiSearchOptionsQueryRewriteEnabled),t.aiSearchOptionsQueryRewriteRewritePrompt!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`rewrite_prompt`],o(t.aiSearchOptionsQueryRewriteRewritePrompt,`aiSearchOptionsQueryRewriteRewritePrompt`,`text`)),t.aiSearchOptionsRerankingEnabled!==void 0&&c(m,[`ai_search_options`,`reranking`,`enabled`],t.aiSearchOptionsRerankingEnabled),t.aiSearchOptionsRerankingMatchThreshold!==void 0&&c(m,[`ai_search_options`,`reranking`,`match_threshold`],t.aiSearchOptionsRerankingMatchThreshold),t.aiSearchOptionsRetrievalContextExpansion!==void 0&&c(m,[`ai_search_options`,`retrieval`,`context_expansion`],t.aiSearchOptionsRetrievalContextExpansion),t.aiSearchOptionsRetrievalFusionMethod!==void 0&&c(m,[`ai_search_options`,`retrieval`,`fusion_method`],o(t.aiSearchOptionsRetrievalFusionMethod,`aiSearchOptionsRetrievalFusionMethod`,`text`)),t.aiSearchOptionsRetrievalKeywordMatchMode!==void 0&&c(m,[`ai_search_options`,`retrieval`,`keyword_match_mode`],o(t.aiSearchOptionsRetrievalKeywordMatchMode,`aiSearchOptionsRetrievalKeywordMatchMode`,`text`)),t.aiSearchOptionsRetrievalMatchThreshold!==void 0&&c(m,[`ai_search_options`,`retrieval`,`match_threshold`],t.aiSearchOptionsRetrievalMatchThreshold),t.aiSearchOptionsRetrievalMaxNumResults!==void 0&&c(m,[`ai_search_options`,`retrieval`,`max_num_results`],t.aiSearchOptionsRetrievalMaxNumResults),t.aiSearchOptionsRetrievalRetrievalType!==void 0&&c(m,[`ai_search_options`,`retrieval`,`retrieval_type`],o(t.aiSearchOptionsRetrievalRetrievalType,`aiSearchOptionsRetrievalRetrievalType`,`text`)),t.aiSearchOptionsRetrievalReturnOnFailure!==void 0&&c(m,[`ai_search_options`,`retrieval`,`return_on_failure`],t.aiSearchOptionsRetrievalReturnOnFailure),t.query!==void 0&&c(m,[`query`],o(t.query,`query`,`text`)),u(await p(`Loading instance`,async()=>n.post(`/accounts/${i}/ai-search/namespaces/${t.name}/search`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Loaded instance`})}},de={command:`instance`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(ue).command(le).demandCommand(1),handler:()=>{}},fe={command:`multi`,describe:`Operations for namespaces.multi`,builder:e=>e.command(de).demandCommand(1),handler:()=>{}},pe={command:`stats <id>`,describe:`Retrieves usage statistics for AI Search instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`name`,{type:`string`,description:`Namespace name`,demandOption:!0}),handler:async e=>{s(e.id,`id`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading namespace`,async()=>t.aiSearch.namespaces.stats(e.id,n,e.name)),{successLabel:`Loaded namespace`})}},me={command:`update <name>`,describe:`Update namespace.`,builder:e=>e.positional(`name`,{type:`string`,description:`Name`,demandOption:!0}).option(`description`,{type:`string`,description:`Optional description for the namespace. Max 256 characters.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.name,`name`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search namespaces update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/namespaces/${t.name??`<name>`}`,pathParams:{name:String(t.name??``)},bodyKind:`json`,body:{description:t.description,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Updating namespace`,async()=>n.put(`/accounts/${i}/ai-search/namespaces/${t.name}`,{body:e})),{successLabel:`Updated namespace`});return}let m={};t.description!==void 0&&c(m,[`description`],o(t.description,`description`,`text`)),u(await p(`Updating namespace`,async()=>n.put(`/accounts/${i}/ai-search/namespaces/${t.name}`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Updated namespace`})}},he={command:`namespaces`,describe:`Namespaces for organizing and managing AI Search instances, items, and jobs`,builder:e=>e.command(T).command(E).command(D).command(ae).command(pe).command(me).command(ie).command(se).command(fe).demandCommand(1),handler:()=>{}},ge={command:`read <id>`,describe:`Read instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}),handler:async e=>{s(e.id,`id`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading ai search`,async()=>t.aiSearch.read(e.id,n)),{successLabel:`Loaded ai search`})}},_e={command:`search <id>`,describe:`Executes a semantic search query against an AI Search instance to find relevant indexed content.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`ai-search-options-cache-cache-threshold`,{type:`string`,description:`The ai_search_options.cache.cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`ai-search-options-cache-enabled`,{type:`boolean`,description:`The ai_search_options.cache.enabled field`}).option(`ai-search-options-query-rewrite-enabled`,{type:`boolean`,description:`The ai_search_options.query_rewrite.enabled field`}).option(`ai-search-options-query-rewrite-rewrite-prompt`,{type:`string`,description:`The ai_search_options.query_rewrite.rewrite_prompt field`}).option(`ai-search-options-reranking-enabled`,{type:`boolean`,description:`The ai_search_options.reranking.enabled field`}).option(`ai-search-options-reranking-match-threshold`,{type:`number`,description:`The ai_search_options.reranking.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-context-expansion`,{type:`number`,description:`The ai_search_options.retrieval.context_expansion field`,default:0}).option(`ai-search-options-retrieval-fusion-method`,{type:`string`,description:`The ai_search_options.retrieval.fusion_method field`,choices:[`max`,`rrf`]}).option(`ai-search-options-retrieval-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`],default:`and`}).option(`ai-search-options-retrieval-match-threshold`,{type:`number`,description:`The ai_search_options.retrieval.match_threshold field`,default:.4}).option(`ai-search-options-retrieval-max-num-results`,{type:`number`,description:`The ai_search_options.retrieval.max_num_results field`,default:10}).option(`ai-search-options-retrieval-retrieval-type`,{type:`string`,description:`The ai_search_options.retrieval.retrieval_type field`,choices:[`vector`,`keyword`,`hybrid`]}).option(`ai-search-options-retrieval-return-on-failure`,{type:`boolean`,description:`The ai_search_options.retrieval.return_on_failure field`,default:!0}).option(`query`,{type:`string`,description:`A simple text query string. Alternative to 'messages' — provide either this or 'messages', not both.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search search`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/instances/${t.id??`<id>`}/search`,pathParams:{id:String(t.id??``)},bodyKind:`json`,body:{aiSearchOptionsCacheCacheThreshold:t.aiSearchOptionsCacheCacheThreshold,aiSearchOptionsCacheEnabled:t.aiSearchOptionsCacheEnabled,aiSearchOptionsQueryRewriteEnabled:t.aiSearchOptionsQueryRewriteEnabled,aiSearchOptionsQueryRewriteRewritePrompt:t.aiSearchOptionsQueryRewriteRewritePrompt,aiSearchOptionsRerankingEnabled:t.aiSearchOptionsRerankingEnabled,aiSearchOptionsRerankingMatchThreshold:t.aiSearchOptionsRerankingMatchThreshold,aiSearchOptionsRetrievalContextExpansion:t.aiSearchOptionsRetrievalContextExpansion,aiSearchOptionsRetrievalFusionMethod:t.aiSearchOptionsRetrievalFusionMethod,aiSearchOptionsRetrievalKeywordMatchMode:t.aiSearchOptionsRetrievalKeywordMatchMode,aiSearchOptionsRetrievalMatchThreshold:t.aiSearchOptionsRetrievalMatchThreshold,aiSearchOptionsRetrievalMaxNumResults:t.aiSearchOptionsRetrievalMaxNumResults,aiSearchOptionsRetrievalRetrievalType:t.aiSearchOptionsRetrievalRetrievalType,aiSearchOptionsRetrievalReturnOnFailure:t.aiSearchOptionsRetrievalReturnOnFailure,query:t.query,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Loading ai search`,async()=>n.post(`/accounts/${i}/ai-search/instances/${t.id}/search`,{body:e})),{successLabel:`Loaded ai search`});return}let m={};t.aiSearchOptionsCacheCacheThreshold!==void 0&&c(m,[`ai_search_options`,`cache`,`cache_threshold`],o(t.aiSearchOptionsCacheCacheThreshold,`aiSearchOptionsCacheCacheThreshold`,`text`)),t.aiSearchOptionsCacheEnabled!==void 0&&c(m,[`ai_search_options`,`cache`,`enabled`],t.aiSearchOptionsCacheEnabled),t.aiSearchOptionsQueryRewriteEnabled!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`enabled`],t.aiSearchOptionsQueryRewriteEnabled),t.aiSearchOptionsQueryRewriteRewritePrompt!==void 0&&c(m,[`ai_search_options`,`query_rewrite`,`rewrite_prompt`],o(t.aiSearchOptionsQueryRewriteRewritePrompt,`aiSearchOptionsQueryRewriteRewritePrompt`,`text`)),t.aiSearchOptionsRerankingEnabled!==void 0&&c(m,[`ai_search_options`,`reranking`,`enabled`],t.aiSearchOptionsRerankingEnabled),t.aiSearchOptionsRerankingMatchThreshold!==void 0&&c(m,[`ai_search_options`,`reranking`,`match_threshold`],t.aiSearchOptionsRerankingMatchThreshold),t.aiSearchOptionsRetrievalContextExpansion!==void 0&&c(m,[`ai_search_options`,`retrieval`,`context_expansion`],t.aiSearchOptionsRetrievalContextExpansion),t.aiSearchOptionsRetrievalFusionMethod!==void 0&&c(m,[`ai_search_options`,`retrieval`,`fusion_method`],o(t.aiSearchOptionsRetrievalFusionMethod,`aiSearchOptionsRetrievalFusionMethod`,`text`)),t.aiSearchOptionsRetrievalKeywordMatchMode!==void 0&&c(m,[`ai_search_options`,`retrieval`,`keyword_match_mode`],o(t.aiSearchOptionsRetrievalKeywordMatchMode,`aiSearchOptionsRetrievalKeywordMatchMode`,`text`)),t.aiSearchOptionsRetrievalMatchThreshold!==void 0&&c(m,[`ai_search_options`,`retrieval`,`match_threshold`],t.aiSearchOptionsRetrievalMatchThreshold),t.aiSearchOptionsRetrievalMaxNumResults!==void 0&&c(m,[`ai_search_options`,`retrieval`,`max_num_results`],t.aiSearchOptionsRetrievalMaxNumResults),t.aiSearchOptionsRetrievalRetrievalType!==void 0&&c(m,[`ai_search_options`,`retrieval`,`retrieval_type`],o(t.aiSearchOptionsRetrievalRetrievalType,`aiSearchOptionsRetrievalRetrievalType`,`text`)),t.aiSearchOptionsRetrievalReturnOnFailure!==void 0&&c(m,[`ai_search_options`,`retrieval`,`return_on_failure`],t.aiSearchOptionsRetrievalReturnOnFailure),t.query!==void 0&&c(m,[`query`],o(t.query,`query`,`text`)),u(await p(`Loading ai search`,async()=>n.post(`/accounts/${i}/ai-search/instances/${t.id}/search`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Loaded ai search`})}},ve={command:`stats <id>`,describe:`Retrieves usage statistics for AI Search instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}),handler:async e=>{s(e.id,`id`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading ai search`,async()=>t.aiSearch.stats(e.id,n)),{successLabel:`Loaded ai search`})}},ye={command:`create`,describe:`Create a new token.`,builder:e=>e.option(`cf-api-id`,{type:`string`,description:`The cf_api_id field`}).option(`cf-api-key`,{type:`string`,description:`The cf_api_key field`}).option(`legacy`,{type:`boolean`,description:`The legacy field`,default:!0}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async n=>{if(n.dryRun){let t=e();t&&s(t,`accountId`),d({command:`cf ai-search tokens create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-search/tokens`,pathParams:{},bodyKind:`json`,body:{cfApiId:n.cfApiId,cfApiKey:n.cfApiKey,legacy:n.legacy,name:n.name,body:n.body},validation:`passed`});return}let i=await a(n),m=n.local?f:await r(i);if(n.accountId=m,n.body){let e=l(n.body);u(await p(`Creating token`,async()=>i.post(`/accounts/${m}/ai-search/tokens`,{body:e})),{successLabel:`Created token`});return}n.cfApiId===void 0&&(n.cfApiId=await t(`cf-api-id`,``)),n.cfApiKey===void 0&&(n.cfApiKey=await t(`cf-api-key`,``,{kind:`secret`})),n.name===void 0&&(n.name=await t(`name`,``));let h={};n.cfApiId!==void 0&&c(h,[`cf_api_id`],o(n.cfApiId,`cfApiId`,`text`)),n.cfApiKey!==void 0&&c(h,[`cf_api_key`],o(n.cfApiKey,`cfApiKey`,`text`)),n.legacy!==void 0&&c(h,[`legacy`],n.legacy),n.name!==void 0&&c(h,[`name`],o(n.name,`name`,`text`)),u(await p(`Creating token`,async()=>i.post(`/accounts/${m}/ai-search/tokens`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Created token`})}},be={command:`delete <id>`,describe:`Delete token.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search tokens delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/tokens/${t.id??`<id>`}`,pathParams:{id:String(t.id??``)},bodyKind:`none`,validation:`passed`});return}let n=await a(t),o=t.local?f:await r(n);if(t.accountId=o,!await i(`token`,String(t.id??``),{force:!!t.force})){process.stderr.write(`Aborted.
|
|
7
|
-
`);return}u(await p(`Deleting token`,async()=>n.aiSearch.tokens.delete(o,t.id)),{successLabel:`Deleted token`})}},$={command:`list`,describe:`List tokens.`,builder:e=>e.option(`page`,{type:`number`,description:`Page number (1-indexed).`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`search`,{type:`string`,description:`Filter tokens whose name contains this string (case-insensitive).`}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.search!==void 0&&(t.search=e.search);let n=await a(e),i=e.local?f:await r(n);e.accountId=i,u(await p(`Loading tokens`,async()=>n.aiSearch.tokens.list(i,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tokens`})}},xe={command:`read <id>`,describe:`Read token.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}),handler:async e=>{s(e.id,`id`);let t=await a(e),n=e.local?f:await r(t);e.accountId=n,u(await p(`Loading token`,async()=>t.aiSearch.tokens.read(n,e.id)),{successLabel:`Loaded token`})}},Se={command:`update <id>`,describe:`Update token.`,builder:e=>e.positional(`id`,{type:`string`,description:`ID`,demandOption:!0}).option(`cf-api-id`,{type:`string`,description:`The cf_api_id field`}).option(`cf-api-key`,{type:`string`,description:`The cf_api_key field`}).option(`legacy`,{type:`boolean`,description:`The legacy field`}).option(`name`,{type:`string`,description:`The name field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}),handler:async n=>{if(s(n.id,`id`),n.dryRun){let t=e();t&&s(t,`accountId`),d({command:`cf ai-search tokens update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai-search/tokens/${n.id??`<id>`}`,pathParams:{id:String(n.id??``)},bodyKind:`json`,body:{cfApiId:n.cfApiId,cfApiKey:n.cfApiKey,legacy:n.legacy,name:n.name,body:n.body},validation:`passed`});return}let i=await a(n),m=n.local?f:await r(i);if(n.accountId=m,n.body){let e=l(n.body);u(await p(`Updating token`,async()=>i.put(`/accounts/${m}/ai-search/tokens/${n.id}`,{body:e})),{successLabel:`Updated token`});return}n.cfApiId===void 0&&(n.cfApiId=await t(`cf-api-id`,``)),n.cfApiKey===void 0&&(n.cfApiKey=await t(`cf-api-key`,``,{kind:`secret`})),n.name===void 0&&(n.name=await t(`name`,``));let h={};n.cfApiId!==void 0&&c(h,[`cf_api_id`],o(n.cfApiId,`cfApiId`,`text`)),n.cfApiKey!==void 0&&c(h,[`cf_api_key`],o(n.cfApiKey,`cfApiKey`,`text`)),n.legacy!==void 0&&c(h,[`legacy`],n.legacy),n.name!==void 0&&c(h,[`name`],o(n.name,`name`,`text`)),u(await p(`Updating token`,async()=>i.put(`/accounts/${m}/ai-search/tokens/${n.id}`,{body:Object.keys(h).length>0?h:void 0})),{successLabel:`Updated token`})}},Ce={command:`tokens`,describe:`Scoped authentication tokens that grant access to specific AI Search instances`,builder:e=>e.command(ye).command(be).command($).command(xe).command(Se).demandCommand(1),handler:()=>{}},we={command:`update <id>`,describe:`Update instances.`,builder:e=>e.positional(`id`,{type:`string`,description:`AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.`,demandOption:!0}).option(`ai-gateway-id`,{type:`string`,description:`The ai_gateway_id field`}).option(`ai-search-model`,{type:`string`,description:`The ai_search_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`cache`,{type:`boolean`,description:`The cache field`}).option(`cache-threshold`,{type:`string`,description:`The cache_threshold field`,choices:[`super_strict_match`,`close_enough`,`flexible_friend`,`anything_goes`]}).option(`chunk`,{type:`boolean`,description:`The chunk field`}).option(`chunk-overlap`,{type:`number`,description:`The chunk_overlap field`}).option(`chunk-size`,{type:`number`,description:`The chunk_size field`}).option(`embedding-model`,{type:`string`,description:`The embedding_model field`,choices:[`@cf/qwen/qwen3-embedding-0.6b`,`@cf/baai/bge-m3`,`@cf/baai/bge-large-en-v1.5`,`@cf/google/embeddinggemma-300m`,`google-ai-studio/gemini-embedding-001`,`google-ai-studio/gemini-embedding-2-preview`,`openai/text-embedding-3-small`,`openai/text-embedding-3-large`]}).option(`fusion-method`,{type:`string`,description:`The fusion_method field`,choices:[`max`,`rrf`]}).option(`index-method-keyword`,{type:`boolean`,description:`Enable keyword (BM25) storage backend.`}).option(`index-method-vector`,{type:`boolean`,description:`Enable vector (embedding) storage backend.`}).option(`indexing-options-keyword-tokenizer`,{type:`string`,description:`Tokenizer used for keyword search indexing. porter provides word-level tokenization with Porter stemming (good for natural language queries). trigram enables character-level substring matching (good for partial matches, code, identifiers). Changing this triggers a full re-index. Defaults to porter.`,choices:[`porter`,`trigram`]}).option(`max-num-results`,{type:`number`,description:`The max_num_results field`}).option(`metadata-created-from-aisearch-wizard`,{type:`boolean`,description:`The metadata.created_from_aisearch_wizard field`}).option(`metadata-search-for-agents-hostname`,{type:`string`,description:`The metadata.search_for_agents.hostname field`}).option(`metadata-search-for-agents-zone-id`,{type:`string`,description:`The metadata.search_for_agents.zone_id field`}).option(`metadata-search-for-agents-zone-name`,{type:`string`,description:`The metadata.search_for_agents.zone_name field`}).option(`metadata-worker-domain`,{type:`string`,description:`The metadata.worker_domain field`}).option(`paused`,{type:`boolean`,description:`The paused field`}).option(`public-endpoint-params-authorized-hosts`,{type:`string`,array:!0,description:`The public_endpoint_params.authorized_hosts field`}).option(`public-endpoint-params-chat-completions-endpoint-disabled`,{type:`boolean`,description:`Disable chat completions endpoint for this public endpoint`}).option(`public-endpoint-params-enabled`,{type:`boolean`,description:`The public_endpoint_params.enabled field`}).option(`public-endpoint-params-mcp-description`,{type:`string`,description:`The public_endpoint_params.mcp.description field`}).option(`public-endpoint-params-mcp-disabled`,{type:`boolean`,description:`Disable MCP endpoint for this public endpoint`}).option(`public-endpoint-params-rate-limit-period-ms`,{type:`number`,description:`The public_endpoint_params.rate_limit.period_ms field`}).option(`public-endpoint-params-rate-limit-requests`,{type:`number`,description:`The public_endpoint_params.rate_limit.requests field`}).option(`public-endpoint-params-rate-limit-technique`,{type:`string`,description:`The public_endpoint_params.rate_limit.technique field`,choices:[`fixed`,`sliding`]}).option(`public-endpoint-params-search-endpoint-disabled`,{type:`boolean`,description:`Disable search endpoint for this public endpoint`}).option(`reranking`,{type:`boolean`,description:`The reranking field`}).option(`reranking-model`,{type:`string`,description:`The reranking_model field`,choices:[`@cf/baai/bge-reranker-base`]}).option(`retrieval-options-keyword-match-mode`,{type:`string`,description:`Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'.`,choices:[`and`,`or`]}).option(`rewrite-model`,{type:`string`,description:`The rewrite_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`rewrite-query`,{type:`boolean`,description:`The rewrite_query field`}).option(`score-threshold`,{type:`number`,description:`The score_threshold field`}).option(`source-params-exclude-items`,{type:`string`,array:!0,description:`List of path patterns to exclude. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /admin/** matches /admin/users and /admin/settings/advanced)`}).option(`source-params-include-items`,{type:`string`,array:!0,description:`List of path patterns to include. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /blog/** matches /blog/post and /blog/2024/post)`}).option(`source-params-prefix`,{type:`string`,description:`The source_params.prefix field`}).option(`source-params-r2-jurisdiction`,{type:`string`,description:`The source_params.r2_jurisdiction field`}).option(`source-params-web-crawler-crawl-options-depth`,{type:`number`,description:`The source_params.web_crawler.crawl_options.depth field`}).option(`source-params-web-crawler-crawl-options-include-external-links`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_external_links field`}).option(`source-params-web-crawler-crawl-options-include-subdomains`,{type:`boolean`,description:`The source_params.web_crawler.crawl_options.include_subdomains field`}).option(`source-params-web-crawler-crawl-options-max-age`,{type:`number`,description:`The source_params.web_crawler.crawl_options.max_age field`}).option(`source-params-web-crawler-crawl-options-source`,{type:`string`,description:`The source_params.web_crawler.crawl_options.source field`,choices:[`all`,`sitemaps`,`links`]}).option(`source-params-web-crawler-parse-options-include-images`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.include_images field`}).option(`source-params-web-crawler-parse-options-specific-sitemaps`,{type:`string`,array:!0,description:`List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'.`}).option(`source-params-web-crawler-parse-options-use-browser-rendering`,{type:`boolean`,description:`The source_params.web_crawler.parse_options.use_browser_rendering field`}).option(`source-params-web-crawler-parse-type`,{type:`string`,description:`The source_params.web_crawler.parse_type field`,choices:[`sitemap`,`feed-rss`,`crawl`]}).option(`source-params-web-crawler-store-options-r2-jurisdiction`,{type:`string`,description:`The source_params.web_crawler.store_options.r2_jurisdiction field`}).option(`source-params-web-crawler-store-options-storage-id`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_id field`}).option(`source-params-web-crawler-store-options-storage-type`,{type:`string`,description:`The source_params.web_crawler.store_options.storage_type field`,choices:[`r2`]}).option(`summarization`,{type:`boolean`,description:`The summarization field`}).option(`summarization-model`,{type:`string`,description:`The summarization_model field`,choices:`@cf/meta/llama-3.3-70b-instruct-fp8-fast,@cf/zai-org/glm-4.7-flash,@cf/meta/llama-3.1-8b-instruct-fast,@cf/meta/llama-3.1-8b-instruct-fp8,@cf/meta/llama-4-scout-17b-16e-instruct,@cf/qwen/qwen3-30b-a3b-fp8,@cf/deepseek-ai/deepseek-r1-distill-qwen-32b,@cf/moonshotai/kimi-k2-instruct,@cf/google/gemma-3-12b-it,@cf/google/gemma-4-26b-a4b-it,@cf/moonshotai/kimi-k2.5,anthropic/claude-3-7-sonnet,anthropic/claude-sonnet-4,anthropic/claude-opus-4,anthropic/claude-3-5-haiku,cerebras/qwen-3-235b-a22b-instruct,cerebras/qwen-3-235b-a22b-thinking,cerebras/llama-3.3-70b,cerebras/llama-4-maverick-17b-128e-instruct,cerebras/llama-4-scout-17b-16e-instruct,cerebras/gpt-oss-120b,google-ai-studio/gemini-2.5-flash,google-ai-studio/gemini-2.5-pro,grok/grok-4,groq/llama-3.3-70b-versatile,groq/llama-3.1-8b-instant,openai/gpt-5,openai/gpt-5-mini,openai/gpt-5-nano`.split(`,`)}).option(`system-prompt-ai-search`,{type:`string`,description:`The system_prompt_ai_search field`}).option(`system-prompt-index-summarization`,{type:`string`,description:`The system_prompt_index_summarization field`}).option(`system-prompt-rewrite-query`,{type:`string`,description:`The system_prompt_rewrite_query field`}).option(`token-id`,{type:`string`,description:`The token_id field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).check(e=>{if([`source-params-exclude-items`,`source-params-include-items`,`source-params-prefix`,`source-params-web-crawler-crawl-options-depth`,`source-params-web-crawler-crawl-options-max-age`,`source-params-web-crawler-parse-options-specific-sitemaps`,`source-params-web-crawler-store-options-storage-id`].some(t=>e[t]!==void 0)){let t=[`source-params-web-crawler-store-options-storage-id`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --source_params-* flag is set`)}return!0}),handler:async t=>{if(s(t.id,`id`),t.dryRun){let n=e();n&&s(n,`accountId`),d({command:`cf ai-search update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${n??`<account-id>`}/ai-search/instances/${t.id??`<id>`}`,pathParams:{id:String(t.id??``)},bodyKind:`json`,body:{aiGatewayId:t.aiGatewayId,aiSearchModel:t.aiSearchModel,cache:t.cache,cacheThreshold:t.cacheThreshold,chunk:t.chunk,chunkOverlap:t.chunkOverlap,chunkSize:t.chunkSize,embeddingModel:t.embeddingModel,fusionMethod:t.fusionMethod,indexMethodKeyword:t.indexMethodKeyword,indexMethodVector:t.indexMethodVector,indexingOptionsKeywordTokenizer:t.indexingOptionsKeywordTokenizer,maxNumResults:t.maxNumResults,metadataCreatedFromAisearchWizard:t.metadataCreatedFromAisearchWizard,metadataSearchForAgentsHostname:t.metadataSearchForAgentsHostname,metadataSearchForAgentsZoneId:t.metadataSearchForAgentsZoneId,metadataSearchForAgentsZoneName:t.metadataSearchForAgentsZoneName,metadataWorkerDomain:t.metadataWorkerDomain,paused:t.paused,publicEndpointParamsAuthorizedHosts:t.publicEndpointParamsAuthorizedHosts,publicEndpointParamsChatCompletionsEndpointDisabled:t.publicEndpointParamsChatCompletionsEndpointDisabled,publicEndpointParamsEnabled:t.publicEndpointParamsEnabled,publicEndpointParamsMcpDescription:t.publicEndpointParamsMcpDescription,publicEndpointParamsMcpDisabled:t.publicEndpointParamsMcpDisabled,publicEndpointParamsRateLimitPeriodMs:t.publicEndpointParamsRateLimitPeriodMs,publicEndpointParamsRateLimitRequests:t.publicEndpointParamsRateLimitRequests,publicEndpointParamsRateLimitTechnique:t.publicEndpointParamsRateLimitTechnique,publicEndpointParamsSearchEndpointDisabled:t.publicEndpointParamsSearchEndpointDisabled,reranking:t.reranking,rerankingModel:t.rerankingModel,retrievalOptionsKeywordMatchMode:t.retrievalOptionsKeywordMatchMode,rewriteModel:t.rewriteModel,rewriteQuery:t.rewriteQuery,scoreThreshold:t.scoreThreshold,sourceParamsExcludeItems:t.sourceParamsExcludeItems,sourceParamsIncludeItems:t.sourceParamsIncludeItems,sourceParamsPrefix:t.sourceParamsPrefix,sourceParamsR2Jurisdiction:t.sourceParamsR2Jurisdiction,sourceParamsWebCrawlerCrawlOptionsDepth:t.sourceParamsWebCrawlerCrawlOptionsDepth,sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks:t.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks,sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains:t.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains,sourceParamsWebCrawlerCrawlOptionsMaxAge:t.sourceParamsWebCrawlerCrawlOptionsMaxAge,sourceParamsWebCrawlerCrawlOptionsSource:t.sourceParamsWebCrawlerCrawlOptionsSource,sourceParamsWebCrawlerParseOptionsIncludeImages:t.sourceParamsWebCrawlerParseOptionsIncludeImages,sourceParamsWebCrawlerParseOptionsSpecificSitemaps:t.sourceParamsWebCrawlerParseOptionsSpecificSitemaps,sourceParamsWebCrawlerParseOptionsUseBrowserRendering:t.sourceParamsWebCrawlerParseOptionsUseBrowserRendering,sourceParamsWebCrawlerParseType:t.sourceParamsWebCrawlerParseType,sourceParamsWebCrawlerStoreOptionsR2Jurisdiction:t.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,sourceParamsWebCrawlerStoreOptionsStorageId:t.sourceParamsWebCrawlerStoreOptionsStorageId,sourceParamsWebCrawlerStoreOptionsStorageType:t.sourceParamsWebCrawlerStoreOptionsStorageType,summarization:t.summarization,summarizationModel:t.summarizationModel,systemPromptAiSearch:t.systemPromptAiSearch,systemPromptIndexSummarization:t.systemPromptIndexSummarization,systemPromptRewriteQuery:t.systemPromptRewriteQuery,tokenId:t.tokenId,body:t.body},validation:`passed`});return}let n=await a(t),i=t.local?f:await r(n);if(t.accountId=i,t.body){let e=l(t.body);u(await p(`Updating ai search`,async()=>n.put(`/accounts/${i}/ai-search/instances/${t.id}`,{body:e})),{successLabel:`Updated ai search`});return}let m={};t.aiGatewayId!==void 0&&c(m,[`ai_gateway_id`],o(t.aiGatewayId,`aiGatewayId`,`text`)),t.aiSearchModel!==void 0&&c(m,[`ai_search_model`],o(t.aiSearchModel,`aiSearchModel`,`text`)),t.cache!==void 0&&c(m,[`cache`],t.cache),t.cacheThreshold!==void 0&&c(m,[`cache_threshold`],o(t.cacheThreshold,`cacheThreshold`,`text`)),t.chunk!==void 0&&c(m,[`chunk`],t.chunk),t.chunkOverlap!==void 0&&c(m,[`chunk_overlap`],t.chunkOverlap),t.chunkSize!==void 0&&c(m,[`chunk_size`],t.chunkSize),t.embeddingModel!==void 0&&c(m,[`embedding_model`],o(t.embeddingModel,`embeddingModel`,`text`)),t.fusionMethod!==void 0&&c(m,[`fusion_method`],o(t.fusionMethod,`fusionMethod`,`text`)),t.indexMethodKeyword!==void 0&&c(m,[`index_method`,`keyword`],t.indexMethodKeyword),t.indexMethodVector!==void 0&&c(m,[`index_method`,`vector`],t.indexMethodVector),t.indexingOptionsKeywordTokenizer!==void 0&&c(m,[`indexing_options`,`keyword_tokenizer`],o(t.indexingOptionsKeywordTokenizer,`indexingOptionsKeywordTokenizer`,`text`)),t.maxNumResults!==void 0&&c(m,[`max_num_results`],t.maxNumResults),t.metadataCreatedFromAisearchWizard!==void 0&&c(m,[`metadata`,`created_from_aisearch_wizard`],t.metadataCreatedFromAisearchWizard),t.metadataSearchForAgentsHostname!==void 0&&c(m,[`metadata`,`search_for_agents`,`hostname`],o(t.metadataSearchForAgentsHostname,`metadataSearchForAgentsHostname`,`text`)),t.metadataSearchForAgentsZoneId!==void 0&&c(m,[`metadata`,`search_for_agents`,`zone_id`],o(t.metadataSearchForAgentsZoneId,`metadataSearchForAgentsZoneId`,`text`)),t.metadataSearchForAgentsZoneName!==void 0&&c(m,[`metadata`,`search_for_agents`,`zone_name`],o(t.metadataSearchForAgentsZoneName,`metadataSearchForAgentsZoneName`,`text`)),t.metadataWorkerDomain!==void 0&&c(m,[`metadata`,`worker_domain`],o(t.metadataWorkerDomain,`metadataWorkerDomain`,`text`)),t.paused!==void 0&&c(m,[`paused`],t.paused),t.publicEndpointParamsAuthorizedHosts!==void 0&&c(m,[`public_endpoint_params`,`authorized_hosts`],t.publicEndpointParamsAuthorizedHosts),t.publicEndpointParamsChatCompletionsEndpointDisabled!==void 0&&c(m,[`public_endpoint_params`,`chat_completions_endpoint`,`disabled`],t.publicEndpointParamsChatCompletionsEndpointDisabled),t.publicEndpointParamsEnabled!==void 0&&c(m,[`public_endpoint_params`,`enabled`],t.publicEndpointParamsEnabled),t.publicEndpointParamsMcpDescription!==void 0&&c(m,[`public_endpoint_params`,`mcp`,`description`],o(t.publicEndpointParamsMcpDescription,`publicEndpointParamsMcpDescription`,`text`)),t.publicEndpointParamsMcpDisabled!==void 0&&c(m,[`public_endpoint_params`,`mcp`,`disabled`],t.publicEndpointParamsMcpDisabled),t.publicEndpointParamsRateLimitPeriodMs!==void 0&&c(m,[`public_endpoint_params`,`rate_limit`,`period_ms`],t.publicEndpointParamsRateLimitPeriodMs),t.publicEndpointParamsRateLimitRequests!==void 0&&c(m,[`public_endpoint_params`,`rate_limit`,`requests`],t.publicEndpointParamsRateLimitRequests),t.publicEndpointParamsRateLimitTechnique!==void 0&&c(m,[`public_endpoint_params`,`rate_limit`,`technique`],o(t.publicEndpointParamsRateLimitTechnique,`publicEndpointParamsRateLimitTechnique`,`text`)),t.publicEndpointParamsSearchEndpointDisabled!==void 0&&c(m,[`public_endpoint_params`,`search_endpoint`,`disabled`],t.publicEndpointParamsSearchEndpointDisabled),t.reranking!==void 0&&c(m,[`reranking`],t.reranking),t.rerankingModel!==void 0&&c(m,[`reranking_model`],o(t.rerankingModel,`rerankingModel`,`text`)),t.retrievalOptionsKeywordMatchMode!==void 0&&c(m,[`retrieval_options`,`keyword_match_mode`],o(t.retrievalOptionsKeywordMatchMode,`retrievalOptionsKeywordMatchMode`,`text`)),t.rewriteModel!==void 0&&c(m,[`rewrite_model`],o(t.rewriteModel,`rewriteModel`,`text`)),t.rewriteQuery!==void 0&&c(m,[`rewrite_query`],t.rewriteQuery),t.scoreThreshold!==void 0&&c(m,[`score_threshold`],t.scoreThreshold),t.sourceParamsExcludeItems!==void 0&&c(m,[`source_params`,`exclude_items`],t.sourceParamsExcludeItems),t.sourceParamsIncludeItems!==void 0&&c(m,[`source_params`,`include_items`],t.sourceParamsIncludeItems),t.sourceParamsPrefix!==void 0&&c(m,[`source_params`,`prefix`],o(t.sourceParamsPrefix,`sourceParamsPrefix`,`text`)),t.sourceParamsR2Jurisdiction!==void 0&&c(m,[`source_params`,`r2_jurisdiction`],o(t.sourceParamsR2Jurisdiction,`sourceParamsR2Jurisdiction`,`text`)),t.sourceParamsWebCrawlerCrawlOptionsDepth!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`depth`],t.sourceParamsWebCrawlerCrawlOptionsDepth),t.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`include_external_links`],t.sourceParamsWebCrawlerCrawlOptionsIncludeExternalLinks),t.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`include_subdomains`],t.sourceParamsWebCrawlerCrawlOptionsIncludeSubdomains),t.sourceParamsWebCrawlerCrawlOptionsMaxAge!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`max_age`],t.sourceParamsWebCrawlerCrawlOptionsMaxAge),t.sourceParamsWebCrawlerCrawlOptionsSource!==void 0&&c(m,[`source_params`,`web_crawler`,`crawl_options`,`source`],o(t.sourceParamsWebCrawlerCrawlOptionsSource,`sourceParamsWebCrawlerCrawlOptionsSource`,`text`)),t.sourceParamsWebCrawlerParseOptionsIncludeImages!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_options`,`include_images`],t.sourceParamsWebCrawlerParseOptionsIncludeImages),t.sourceParamsWebCrawlerParseOptionsSpecificSitemaps!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_options`,`specific_sitemaps`],t.sourceParamsWebCrawlerParseOptionsSpecificSitemaps),t.sourceParamsWebCrawlerParseOptionsUseBrowserRendering!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_options`,`use_browser_rendering`],t.sourceParamsWebCrawlerParseOptionsUseBrowserRendering),t.sourceParamsWebCrawlerParseType!==void 0&&c(m,[`source_params`,`web_crawler`,`parse_type`],o(t.sourceParamsWebCrawlerParseType,`sourceParamsWebCrawlerParseType`,`text`)),t.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction!==void 0&&c(m,[`source_params`,`web_crawler`,`store_options`,`r2_jurisdiction`],o(t.sourceParamsWebCrawlerStoreOptionsR2Jurisdiction,`sourceParamsWebCrawlerStoreOptionsR2Jurisdiction`,`text`)),t.sourceParamsWebCrawlerStoreOptionsStorageId!==void 0&&c(m,[`source_params`,`web_crawler`,`store_options`,`storage_id`],o(t.sourceParamsWebCrawlerStoreOptionsStorageId,`sourceParamsWebCrawlerStoreOptionsStorageId`,`text`)),t.sourceParamsWebCrawlerStoreOptionsStorageType!==void 0&&c(m,[`source_params`,`web_crawler`,`store_options`,`storage_type`],o(t.sourceParamsWebCrawlerStoreOptionsStorageType,`sourceParamsWebCrawlerStoreOptionsStorageType`,`text`)),t.summarization!==void 0&&c(m,[`summarization`],t.summarization),t.summarizationModel!==void 0&&c(m,[`summarization_model`],o(t.summarizationModel,`summarizationModel`,`text`)),t.systemPromptAiSearch!==void 0&&c(m,[`system_prompt_ai_search`],o(t.systemPromptAiSearch,`systemPromptAiSearch`,`text`)),t.systemPromptIndexSummarization!==void 0&&c(m,[`system_prompt_index_summarization`],o(t.systemPromptIndexSummarization,`systemPromptIndexSummarization`,`text`)),t.systemPromptRewriteQuery!==void 0&&c(m,[`system_prompt_rewrite_query`],o(t.systemPromptRewriteQuery,`systemPromptRewriteQuery`,`text`)),t.tokenId!==void 0&&c(m,[`token_id`],o(t.tokenId,`tokenId`,`text`)),u(await p(`Updating ai search`,async()=>n.put(`/accounts/${i}/ai-search/instances/${t.id}`,{body:Object.keys(m).length>0?m:void 0})),{successLabel:`Updated ai search`})}},Te={command:`ai-search`,describe:`Managed search-as-a-service — crawl, index, and query content with AI-powered relevance and chat completions`,builder:e=>e.command(g).command(ee).command(_).command(w).command(ge).command(_e).command(ve).command(we).command(C).command(he).command(Ce).demandCommand(1),handler:()=>{}};export{Te as default};
|