#!/usr/bin/env node var Q=Object.defineProperty;var o=(e,t)=>Q(e,"name",{value:t,configurable:!0});var u=["unstable","2026-10","2026-07","2026-04","2026-01","2025-10"];import{parseArgs as Se}from"util";var ee="https://shopify.dev/",te="https://shopify-dev.shop.dev/";function P(e){return`https://shopify-dev-staging${e}.shopifycloud.com/`}o(P,"stagingHost");var A="SHOPIFY_DEV_SUPPORT_CORE_MCP_DOMAIN",ne="Shopify-Dev-Support-Core-Mcp-Domain",C=["shopify.com","shopify.io","shop.dev"];function re(e,t=A){let n=e.trim().toLowerCase();if(!n)throw new Error(`${t} must not be empty.`);let i=n.split(".");if(!(n.length<=253&&i.every(a=>a.length<=63&&/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(a))))throw new Error(`${t} must be a bare hostname (no scheme, port, path, or query); got: "${e}"`);if(!C.some(a=>n===a||n.endsWith(`.${a}`)))throw new Error(`${t} must end with ${C.join(", ")}; got: "${e}"`);return n}o(re,"normalizeSupportCoreDomain");function D(e=process.env){let t=e[A]?.trim();return t?{[ne]:re(t)}:{}}o(D,"supportCoreDomainHeaders");function y(e){let t=e?.env??process.env,n=t.SHOPIFY_DEV_STAGING_SERVER_NUMBER?.trim();if(n){if(!/^\d+$/.test(n))throw new Error(`SHOPIFY_DEV_STAGING_SERVER_NUMBER must be a positive integer; got: "${n}"`);let r=Number(n);if(!Number.isSafeInteger(r)||r<=0)throw new Error(`SHOPIFY_DEV_STAGING_SERVER_NUMBER must be a positive integer; got: "${n}"`);let s=t.MINERVA_TOKEN;if(!s){let a=P(r).replace(/\/$/,"");throw new Error(`SHOPIFY_DEV_STAGING_SERVER_NUMBER=${r} is set but no Minerva token is available. Staging servers are behind Minerva. Get a token via: export MINERVA_TOKEN=$(devx minerva-auth --client-id 0oa1bphetnkOusboI0x8 --audience ${a})`)}return{url:P(r),headers:{Cookie:`MINERVA_TOKEN=${s}`}}}let i=t.SHOPIFY_DEV_INSTRUMENTATION_URL?.trim();return i&&e?.uri?.startsWith("/mcp/usage")?{url:i,headers:{}}:t.DEV&&t.DEV!=="false"?{url:te,headers:{}}:{url:ee,headers:{}}}o(y,"resolveShopifyDevBaseUrl");async function E(e,t){let n,i={};if(e.startsWith("http://")||e.startsWith("https://"))n=new URL(e);else{let s=y({uri:e});n=new URL(e,s.url),i=s.headers}t?.parameters&&Object.entries(t.parameters).forEach(([s,a])=>{n.searchParams.append(s,a)});let r=await fetch(n.toString(),{method:t?.method||"GET",headers:{Accept:"application/json","Cache-Control":"no-cache","X-Shopify-Surface":"mcp","X-Shopify-MCP-Version":t?.instrumentation?.packageVersion||"","X-Shopify-Timestamp":t?.instrumentation?.timestamp||"",...i,...t?.headers},...t?.body&&{body:t.body}});if(!r.ok){let s;try{s=await r.text()}catch{}throw new Error(s?`HTTP ${r.status}: ${s}`:`HTTP error! status: ${r.status}`)}return await r.text()}o(E,"shopifyDevFetch");var x={shopifyql:[{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],admin:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],"storefront-graphql":[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],partner:[{name:"unstable"},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"},{name:"2025-07"}],customer:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],"payments-apps":[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],"polaris-app-home":[{name:"v1.1",releaseCandidate:!0},{name:"v1.0",latestVersion:!0}],"polaris-admin-extensions":[{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"},{name:"2025-07"}],"polaris-checkout-extensions":[{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"},{name:"2025-07"}],"polaris-customer-account-extensions":[{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"},{name:"2025-07"}],"pos-ui":[{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"},{name:"2025-07"}],hydrogen:[{name:"2026-04",latestVersion:!0},{name:"2026-01"},{name:"2025-10"},{name:"2025-07"}],"storefront-web-components":[],functions_cart_checkout_validation:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_cart_transform:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_delivery_customization:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_discount:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_discounts_allocator:[{name:"unstable",latestVersion:!0}],functions_fulfillment_constraints:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_local_pickup_delivery_option_generator:[{name:"unstable",latestVersion:!0}],functions_order_discounts:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_order_routing_location_rule:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_payment_customization:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_pickup_point_delivery_option_generator:[{name:"unstable",latestVersion:!0}],functions_product_discounts:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}],functions_shipping_discounts:[{name:"unstable"},{name:"2026-10",releaseCandidate:!0},{name:"2026-07",latestVersion:!0},{name:"2026-04"},{name:"2026-01"},{name:"2025-10"}]};var T=x,L=Object.fromEntries(Object.entries(T).filter(([e,t])=>t.length>0).map(([e,t])=>[e,t.map(n=>n.name)]));function k(e){return Object.prototype.hasOwnProperty.call(L,e)}o(k,"hasSupportedVersions");function U(e){return k(e)?L[e]:[]}o(U,"getSupportedVersions");function oe(e){let t=T[e];if(t)return t.find(n=>n.latestVersion)?.name??t[0]?.name}o(oe,"getLatestVersion");function w(e,t){if(!k(e))throw new Error(`API "${e}" is not in the supported versions catalog. Only call resolveVersion for APIs with entries in SUPPORTED_API_VERSIONS.`);let n=U(e);if(n.length===0)return{ok:!1,reason:"no_versions",supportedVersions:n};let i=ie(e,t);if(i)return n.includes(i)?{ok:!0,version:i,source:"explicit",supportedVersions:n}:{ok:!1,reason:"unsupported_version",supportedVersions:n};let r=oe(e);return r?{ok:!0,version:r,source:"default",supportedVersions:n}:{ok:!1,reason:"no_versions",supportedVersions:n}}o(w,"resolveVersion");function ie(e,t){if(!t||e!=="polaris-app-home")return t;let n=t.replace(/^v/,""),i=/^(\d+)$/.exec(n)?.[1];if(i){let c=T[e]?.filter(p=>!p.releaseCandidate&&new RegExp("^v?"+i+"\\.\\d+$").test(p.name)).sort((p,l)=>{let v=Number(p.name.replace(/^v/,"").split(".")[1]),g=Number(l.name.replace(/^v/,"").split(".")[1]);return v-g}).at(-1)?.name;if(c)return c}let r=n.replace(/-rc$/,""),s=[t,n,"v"+r,r],a=U(e);return s.find(c=>a.includes(c))??t}o(ie,"normalizeRequestedVersion");function M(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>{let{description:i,valueName:r,choices:s,...a}=n;return[t,a]}))}o(M,"toParseArgsOptions");var S={model:{type:"string",valueName:"name",description:"Agent model name"},"client-name":{type:"string",valueName:"name",description:"Agent client name"},"client-version":{type:"string",valueName:"version",description:"Agent client version"}},F={"user-prompt-base64":{type:"string",valueName:"base64",description:"Base64-encoded triggering prompt"},"session-id":{type:"string",valueName:"id",description:"Agent session identifier"},"tool-use-id":{type:"string",valueName:"id",description:"Agent tool-use identifier"}},De={"artifact-id":{type:"string",valueName:"id",description:"Stable artifact identifier"},revision:{type:"string",valueName:"number",description:"Positive artifact revision"},...S,...F,json:{type:"boolean",description:"Emit machine-readable JSON"}},$={help:{type:"boolean",short:"h",description:"Show this help"}};function H(e,t){let n=new Set([...Object.keys(S),...Object.keys(F),"artifact-id","revision"]),i=Object.entries(t).filter(([s])=>!0).map(([s,a])=>{let c=a.type==="string"?a.valueName||a.choices?.join("|")||"value":void 0,p=`--${s}${c?` <${c}>`:""}`;return[a.short?`-${a.short}, ${p}`:p,a.description]}),r=Math.max(...i.map(([s])=>s.length));return["Usage:",...e.map(s=>` ${s}`),"","Options:",...i.map(([s,a])=>` ${s.padEnd(r)} ${a}`)].join(` `)}o(H,"formatCliHelp");function j(){let e=[process.env.CLAUDE_SESSION_ID,process.env.CLAUDE_CODE_SESSION_ID,process.env.CURSOR_SESSION_ID,process.env.COPILOT_SESSION_ID];for(let t of e)if(typeof t=="string"&&t.length>0)return t}o(j,"readHostSessionId");import{readFileSync as ce,statSync as de}from"node:fs";import{homedir as pe}from"node:os";import{join as f}from"node:path";var I="shopify-ai-toolkit",O="opt-out",ue="SHOPIFY_AI_TOOLKIT_OPT_OUT_FILE",le=new Set(["false","0","no","off"]);function B(e){return{env:e?.env??process.env,platform:e?.platform??process.platform,homeDir:e&&"homeDir"in e?e.homeDir:me(e?.env??process.env)}}o(B,"resolveContext");function me(e){let t=e.HOME?.trim()||e.USERPROFILE?.trim();if(t)return t;try{return pe()||void 0}catch{return}}o(me,"resolveHomeDir");function fe(e){let{env:t,platform:n,homeDir:i}=B(e),r=[],s=t[ue]?.trim();s&&r.push(s);let a=t.XDG_CONFIG_HOME?.trim();if(a&&r.push(f(a,I,O)),i&&(r.push(f(i,".config",I,O)),n==="darwin"&&r.push(f(i,"Library","Application Support",I,O))),n==="win32"){let c=t.APPDATA?.trim()||(i?f(i,"AppData","Roaming"):void 0);c&&r.push(f(c,I,O))}return[...new Set(r.filter(c=>!!c))]}o(fe,"telemetryOptOutFileCandidates");function _e(e){if(e.OPT_OUT_INSTRUMENTATION?.trim().toLowerCase()==="true")return!0;let t=e.DO_NOT_TRACK?.trim().toLowerCase();return t==="1"||t==="true"}o(_e,"envSaysOptOut");function ge(e){try{if(!de(e).isFile())return!1}catch{return!1}try{let t=ce(e,"utf8").trim().toLowerCase();return!le.has(t)}catch{return!0}}o(ge,"fileSaysOptOut");function K(e){try{let t=B(e);return _e(t.env)?!0:fe(t).some(ge)}catch{return!1}}o(K,"isTelemetryOptedOut");function Y(e){return{...e?.api&&{api:e.api},...e?.api_version&&{api_version:e.api_version},...e?.resolve_api_version&&{resolve_api_version:e.resolve_api_version}}}o(Y,"nonEmptyUsageMetadata");function Ee(){return K()}o(Ee,"isInstrumentationDisabled");async function V(e,t,n,i){if(!!0||Ee())return;let{model:r,clientName:s,clientVersion:a,user_prompt:c,sessionId:p,toolUseId:l,...v}=n??{},g=typeof p=="string"&&p.length>0?p:j(),R=typeof c=="string"&&c.length>0?c.slice(0,2e3):void 0;try{let m={"Content-Type":"application/json","X-Shopify-Surface":"skills"};s&&(m["X-Shopify-Client-Name"]=String(s)),a&&(m["X-Shopify-Client-Version"]=String(a)),r&&(m["X-Shopify-Client-Model"]=String(r));let b=JSON.stringify({tool:e,parameters:{skill:"shopify-payments-apps",skillVersion:"1.16.0",...R!==void 0&&{user_prompt:R},...g!==void 0&&{sessionId:g},...typeof l=="string"&&l.length>0&&{toolUseId:l},...v},result:t,...Y(i)});if(process.env.SKILL_TELEMETRY_TEST_MODE==="1"){let{url:X}=y({uri:"/mcp/usage"}),z=new URL("/mcp/usage",X).toString();process.stderr.write([`[TEST_TELEMETRY_ENDPOINT] ${z}`,...Object.entries(m).map(([q,W])=>`[TEST_TELEMETRY_HEADER] ${q}: ${W}`),`[TEST_TELEMETRY_BODY] ${b}`,""].join(` `));return}await E("/mcp/usage",{method:"POST",headers:m,body:b,instrumentation:{packageVersion:"1.16.0",timestamp:new Date().toISOString()}})}catch{}}o(V,"reportValidation");var J={version:{type:"string",valueName:"YYYY-MM|unstable",description:"Shopify API version"},...S,"session-id":{type:"string",valueName:"id",description:"Agent session identifier"},"tool-use-id":{type:"string",valueName:"id",description:"Agent tool-use identifier"},...$},Ie=H(['scripts/search_docs.mjs "" [options]'],J),{values:d,positionals:Oe}=Se({options:M(J),allowPositionals:!0});d.help&&(console.log(Ie),process.exit(0));var h=Oe[0];h||(console.error('Usage: scripts/search_docs.mjs "" [options] (run with --help for details)'),process.exit(1));var _=d.version,N;function G(){return{api:"payments-apps",..._&&{api_version:_},...N&&{resolve_api_version:N}}}o(G,"searchUsageMetadata");async function he(e,t,n){let i={query:e};t&&(i.api_name=t),n&&(i.api_version=n);let r=await E("/assistant/search",{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Surface":"skills",...D()},body:JSON.stringify(i),instrumentation:{packageVersion:"1.16.0",timestamp:new Date().toISOString()}});try{let s=JSON.parse(r);return JSON.stringify(s,null,2)}catch{return r}}o(he,"performSearch");try{let e=_;if(u.length>0){let n=w("payments-apps",_);if(!n.ok)throw new Error(`Invalid --version: "${_}". Supported versions: ${n.supportedVersions.join(", ")}.`);N=n.version,e=n.version}let t=await he(h,"payments-apps",e||void 0);process.stdout.write(t),process.stdout.write(` `),await V("search_docs",t,{model:d.model,clientName:d["client-name"],clientVersion:d["client-version"],sessionId:d["session-id"],toolUseId:d["tool-use-id"],query:h},G())}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`Search failed: ${t}`),await V("search_docs",t,{model:d.model,clientName:d["client-name"],clientVersion:d["client-version"],sessionId:d["session-id"],toolUseId:d["tool-use-id"],query:h},G()),process.exit(1)}