qpilot 0.11.0 → 0.13.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +16 -16
- package/.next/standalone/.next/app-path-routes-manifest.json +3 -3
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +12 -12
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/api/run/[id]/answer/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/run/[id]/pause/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/run/[id]/shot/[num]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/run/[id]/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/run/route.js +58 -68
- package/.next/standalone/.next/server/app/api/run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/models/route.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/models/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +2 -2
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/run/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/run/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/.next/server/app-paths-manifest.json +3 -3
- package/.next/standalone/.next/server/chunks/12.js +1 -1
- package/.next/standalone/.next/server/chunks/864.js +1 -1
- package/.next/standalone/.next/server/functions-config-manifest.json +4 -4
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/677-25363eac0e2b4fd1.js +1 -0
- package/.next/standalone/.next/static/chunks/app/run/[id]/page-6a54cc9b02a39151.js +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/677-25363eac0e2b4fd1.js +1 -0
- package/.next/static/chunks/app/run/[id]/page-6a54cc9b02a39151.js +1 -0
- package/README.md +3 -0
- package/package.json +1 -1
- package/.next/standalone/.next/static/chunks/677-f779c1efc6740046.js +0 -1
- package/.next/standalone/.next/static/chunks/app/run/[id]/page-f257e38c4222e3f4.js +0 -1
- package/.next/static/chunks/677-f779c1efc6740046.js +0 -1
- package/.next/static/chunks/app/run/[id]/page-f257e38c4222e3f4.js +0 -1
- /package/.next/standalone/.next/static/{Qhl1G-NOwSotT_4T7tz8a → bkJayQnTQRf05bk-k7JdG}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{Qhl1G-NOwSotT_4T7tz8a → bkJayQnTQRf05bk-k7JdG}/_ssgManifest.js +0 -0
- /package/.next/static/{Qhl1G-NOwSotT_4T7tz8a → bkJayQnTQRf05bk-k7JdG}/_buildManifest.js +0 -0
- /package/.next/static/{Qhl1G-NOwSotT_4T7tz8a → bkJayQnTQRf05bk-k7JdG}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=534,a.ids=[534],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6260:(a,b,c)=>{"use strict";c.d(b,{D:()=>m,Kd:()=>i,Xs:()=>g,mu:()=>j,nz:()=>l,r4:()=>f,st:()=>k,xZ:()=>h});var d=c(47168),e=c(71011);let f="claude-haiku-4-5-20251001";function g(){let a=(0,e.RG)();if(a)return{config:a,source:"file"};let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();if("custom"===b||"openai"===b)return process.env.QPILOT_API_KEY||process.env.QPILOT_BASE_URL?{source:"env",config:{provider:"custom",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null;let c=process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"";return c?{source:"env",config:{provider:"anthropic",apiKey:c,model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null}function h(a){return"custom"===a.provider?{kind:"openai",baseURL:a.baseURL||"",apiKey:a.apiKey,model:a.model||""}:{kind:"anthropic",apiKey:a.apiKey,model:a.model||f,baseURL:a.baseURL||void 0}}function i(){let a=(0,e.RG)();if(a)return h(a);let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();return"custom"===b||"openai"===b?{kind:"openai",baseURL:process.env.QPILOT_BASE_URL||"",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||""}:{kind:"anthropic",apiKey:process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||f,baseURL:process.env.QPILOT_BASE_URL||void 0}}function j(a){if(!a)return;let b=Number(a);if(Number.isFinite(b))return Math.max(0,1e3*b);let c=Date.parse(a);if(!Number.isNaN(c))return Math.max(0,c-Date.now())}function k(a){let b="Open Settings (the gear on the home page) to set it.";return"anthropic"===a.kind?a.apiKey?null:`No Anthropic API key is configured. ${b}`:a.baseURL?a.apiKey?a.model?null:`Custom provider: the model id is not set. ${b}`:`Custom provider: the API token is not set. ${b}`:`Custom provider: the base URL is not set. ${b}`}async function l(a,b,c,d){let e,f=a.baseURL.replace(/\/+$/,"")+"/chat/completions";try{e=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:a.model,max_tokens:2048,messages:function(a,b){let c=[{role:"system",content:a}];for(let a of b){if("string"==typeof a.content){c.push({role:a.role,content:a.content});continue}if("user"===a.role){for(let b of a.content)if("tool_result"===b.type){let a="string"==typeof b.content?b.content:JSON.stringify(b.content??"");c.push({role:"tool",tool_call_id:b.tool_use_id,content:a})}else"text"===b.type&&c.push({role:"user",content:b.text});continue}let b="",d=[];for(let c of a.content)"text"===c.type?b+=c.text:"tool_use"===c.type&&d.push({id:c.id,type:"function",function:{name:c.name,arguments:JSON.stringify(c.input??{})}});c.push({role:"assistant",content:b||null,...d.length?{tool_calls:d}:{}})}return c}(b,c),tools:d.map(a=>({type:"function",function:{name:a.name,description:a.description,parameters:a.input_schema}})),tool_choice:"auto"})})}catch(c){let a=c.cause,b=a?.code??a?.message??c.message;throw Error(`Cannot reach the model endpoint ${f} (${b}). Check that the URL is right, the service is up, and you are on the network/VPN it needs. Run \`qpilot config\` to change it.`)}if(!e.ok){let a=await e.text().catch(()=>"");throw Object.assign(Error(`Model API ${e.status}: ${a.slice(0,300)}`),{status:e.status,retryAfterMs:j(e.headers.get("retry-after"))})}return function(a){let b=a?.choices?.[0],c=b?.message??{},d=[];for(let a of(c.content&&d.push({type:"text",text:c.content}),c.tool_calls??[])){let b=a.function.arguments,c={};if("string"==typeof b)try{c=JSON.parse(b||"{}")}catch{c={}}else b&&"object"==typeof b&&(c=b);d.push({type:"tool_use",id:a.id,name:a.function.name,input:c})}return{content:d,stop_reason:b?.finish_reason??"end_turn"}}(await e.json())}async function m(a){let b;if("anthropic"===a.provider){let b=new d.Ay({apiKey:a.apiKey,baseURL:a.baseURL||void 0,maxRetries:1}),c=[];try{for await(let a of b.models.list({limit:1e3}))c.push({id:a.id,name:a.display_name||a.id,created:a.created_at})}catch(a){throw Error(n(a))}return c}let c=(a.baseURL||"").replace(/\/+$/,"")+"/models";try{b=await fetch(c,{headers:{Authorization:`Bearer ${a.apiKey}`}})}catch(b){let a=b.cause;throw Error(`Cannot reach ${c} (${a?.code??a?.message??b.message})`)}if(!b.ok)throw Error(n({status:b.status,message:(await b.text().catch(()=>"")).slice(0,200)}));return((await b.json().catch(()=>({}))).data??[]).map(a=>"string"==typeof a.id?a.id:"").filter(Boolean).sort((a,b)=>a.localeCompare(b)).map(a=>({id:a,name:a}))}function n(a){return 401===a.status||403===a.status?"The API key was rejected — check that it is correct and active.":404===a.status?"This endpoint has no model list (404). Enter the model id by hand.":a.message||String(a)}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11997:a=>{"use strict";a.exports=require("punycode")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37830:a=>{"use strict";a.exports=require("node:stream/web")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68069:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{POST:()=>z,dynamic:()=>y,runtime:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(71011),w=c(6260);let x="nodejs",y="force-dynamic";async function z(a){let b=await a.json().catch(()=>({})),c=a=>"string"==typeof a?a.trim():"",d="custom"===b.provider?"custom":"anthropic",e=(0,w.Xs)()?.config??null,f=c(b.baseURL),g=c(b.apiKey)||(0,v.ry)(e,d,f);if(!g){let a=e?.apiKey&&e.provider===d;return u.NextResponse.json({error:a?"Re-enter the API key to load models from a different base URL.":"Enter an API key to load the models."},{status:400})}if("custom"===d&&!f)return u.NextResponse.json({error:"Enter the base URL to load the models."},{status:400});if(f&&!/^https?:\/\//.test(f))return u.NextResponse.json({error:"Base URL must start with http:// or https://"},{status:400});try{let a=await (0,w.D)({provider:d,apiKey:g,baseURL:f||void 0});return u.NextResponse.json({models:a})}catch(a){return u.NextResponse.json({error:a.message},{status:502})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/models/route",pathname:"/api/settings/models",filename:"route",bundlePath:"app/api/settings/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/api/settings/models/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/settings/models/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},71011:(a,b,c)=>{"use strict";c.d(b,{I6:()=>m,RG:()=>i,o5:()=>j,ry:()=>l,s9:()=>k,tF:()=>h});var d=c(73024),e=c(48161),f=c(76760);let g=process.env.QPILOT_HOME||(0,f.join)((0,e.homedir)(),".qpilot"),h=(0,f.join)(g,"config.json");function i(){try{let a=JSON.parse((0,d.readFileSync)(h,"utf-8"));if(!a||"object"!=typeof a)return null;return{provider:"custom"===a.provider?"custom":"anthropic",apiKey:"string"==typeof a.apiKey?a.apiKey:"",model:"string"==typeof a.model&&a.model?a.model:void 0,baseURL:"string"==typeof a.baseURL&&a.baseURL?a.baseURL:void 0}}catch{return null}}function j(a){(0,d.mkdirSync)(g,{recursive:!0,mode:448});let b=`${h}.${process.pid}.tmp`;(0,d.writeFileSync)(b,JSON.stringify(a,null,2),{mode:384}),(0,d.renameSync)(b,h)}function k(a){return a?a.length>14?`${a.slice(0,7)}…${a.slice(-4)}`:"••••":""}function l(a,b,c){let d;return a&&a.provider===b&&(d=a.baseURL,(d??"").trim().replace(/\/+$/,"")===(c??"").trim().replace(/\/+$/,""))?a.apiKey:""}function m(a,b){let c=a=>"string"==typeof a?a.trim():"",d="custom"===a.provider?"custom":"anthropic",e=c(a.model),f=c(a.baseURL).replace(/\/+$/,""),g=c(a.apiKey)||l(b,d,f);if(!g){if(b?.apiKey&&b.provider===d)throw Error("Re-enter the API key to change the base URL — the saved key is only ever sent to the address it was saved with.");throw Error("custom"===d?"API token is required":"Anthropic API key is required")}if(f&&!/^https?:\/\/\S+$/.test(f))throw Error("Base URL must start with http:// or https://");if("custom"===d){if(!f)throw Error("Base URL is required for an OpenAI-compatible provider");if(!e)throw Error("Model id is required")}return{provider:d,apiKey:g,...e?{model:e}:{},...f?{baseURL:f}:{}}}},73024:a=>{"use strict";a.exports=require("node:fs")},73566:a=>{"use strict";a.exports=require("worker_threads")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},79551:a=>{"use strict";a.exports=require("url")},81630:a=>{"use strict";a.exports=require("http")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,692,168],()=>b(b.s=68069));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=534,a.ids=[534],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6260:(a,b,c)=>{"use strict";c.d(b,{D:()=>n,Kd:()=>j,Xs:()=>h,mu:()=>k,nC:()=>g,nz:()=>m,r4:()=>f,st:()=>l,xZ:()=>i});var d=c(47168),e=c(71011);let f="claude-haiku-4-5-20251001",g=12e4;function h(){let a=(0,e.RG)();if(a)return{config:a,source:"file"};let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();if("custom"===b||"openai"===b)return process.env.QPILOT_API_KEY||process.env.QPILOT_BASE_URL?{source:"env",config:{provider:"custom",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null;let c=process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"";return c?{source:"env",config:{provider:"anthropic",apiKey:c,model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null}function i(a){return"custom"===a.provider?{kind:"openai",baseURL:a.baseURL||"",apiKey:a.apiKey,model:a.model||""}:{kind:"anthropic",apiKey:a.apiKey,model:a.model||f,baseURL:a.baseURL||void 0}}function j(){let a=(0,e.RG)();if(a)return i(a);let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();return"custom"===b||"openai"===b?{kind:"openai",baseURL:process.env.QPILOT_BASE_URL||"",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||""}:{kind:"anthropic",apiKey:process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||f,baseURL:process.env.QPILOT_BASE_URL||void 0}}function k(a){if(!a)return;let b=Number(a);if(Number.isFinite(b))return Math.max(0,1e3*b);let c=Date.parse(a);if(!Number.isNaN(c))return Math.max(0,c-Date.now())}function l(a){let b="Open Settings (the gear on the home page) to set it.";return"anthropic"===a.kind?a.apiKey?null:`No Anthropic API key is configured. ${b}`:a.baseURL?a.apiKey?a.model?null:`Custom provider: the model id is not set. ${b}`:`Custom provider: the API token is not set. ${b}`:`Custom provider: the base URL is not set. ${b}`}async function m(a,b,c,d){let e,f=a.baseURL.replace(/\/+$/,"")+"/chat/completions";try{e=await fetch(f,{method:"POST",signal:AbortSignal.timeout(g),headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:a.model,max_tokens:2048,messages:function(a,b){let c=[{role:"system",content:a}];for(let a of b){if("string"==typeof a.content){c.push({role:a.role,content:a.content});continue}if("user"===a.role){for(let b of a.content)if("tool_result"===b.type){let a="string"==typeof b.content?b.content:JSON.stringify(b.content??"");c.push({role:"tool",tool_call_id:b.tool_use_id,content:a})}else"text"===b.type&&c.push({role:"user",content:b.text});continue}let b="",d=[];for(let c of a.content)"text"===c.type?b+=c.text:"tool_use"===c.type&&d.push({id:c.id,type:"function",function:{name:c.name,arguments:JSON.stringify(c.input??{})}});c.push({role:"assistant",content:b||null,...d.length?{tool_calls:d}:{}})}return c}(b,c),tools:d.map(a=>({type:"function",function:{name:a.name,description:a.description,parameters:a.input_schema}})),tool_choice:"auto"})})}catch(c){if("TimeoutError"===c.name)throw Error(`The model did not answer in ${g/1e3} s (${f}).`);let a=c.cause,b=a?.code??a?.message??c.message;throw Error(`Cannot reach the model endpoint ${f} (${b}). Check that the URL is right, the service is up, and you are on the network/VPN it needs. Run \`qpilot config\` to change it.`)}if(!e.ok){let a=await e.text().catch(()=>"");throw Object.assign(Error(`Model API ${e.status}: ${a.slice(0,300)}`),{status:e.status,retryAfterMs:k(e.headers.get("retry-after"))})}return function(a){let b=a?.choices?.[0],c=b?.message??{},d=[];for(let a of(c.content&&d.push({type:"text",text:c.content}),c.tool_calls??[])){let b=a.function.arguments,c={};if("string"==typeof b)try{c=JSON.parse(b||"{}")}catch{c={}}else b&&"object"==typeof b&&(c=b);d.push({type:"tool_use",id:a.id,name:a.function.name,input:c})}let e=a?.usage;return{content:d,stop_reason:b?.finish_reason??"end_turn",usage:{input_tokens:e?.prompt_tokens??0,output_tokens:e?.completion_tokens??0}}}(await e.json())}async function n(a){let b;if("anthropic"===a.provider){let b=new d.Ay({apiKey:a.apiKey,baseURL:a.baseURL||void 0,maxRetries:1}),c=[];try{for await(let a of b.models.list({limit:1e3}))c.push({id:a.id,name:a.display_name||a.id,created:a.created_at})}catch(a){throw Error(o(a))}return c}let c=(a.baseURL||"").replace(/\/+$/,"")+"/models";try{b=await fetch(c,{headers:{Authorization:`Bearer ${a.apiKey}`}})}catch(b){let a=b.cause;throw Error(`Cannot reach ${c} (${a?.code??a?.message??b.message})`)}if(!b.ok)throw Error(o({status:b.status,message:(await b.text().catch(()=>"")).slice(0,200)}));return((await b.json().catch(()=>({}))).data??[]).map(a=>"string"==typeof a.id?a.id:"").filter(Boolean).sort((a,b)=>a.localeCompare(b)).map(a=>({id:a,name:a}))}function o(a){return 401===a.status||403===a.status?"The API key was rejected — check that it is correct and active.":404===a.status?"This endpoint has no model list (404). Enter the model id by hand.":a.message||String(a)}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11997:a=>{"use strict";a.exports=require("punycode")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37830:a=>{"use strict";a.exports=require("node:stream/web")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68069:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{POST:()=>z,dynamic:()=>y,runtime:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(71011),w=c(6260);let x="nodejs",y="force-dynamic";async function z(a){let b=await a.json().catch(()=>({})),c=a=>"string"==typeof a?a.trim():"",d="custom"===b.provider?"custom":"anthropic",e=(0,w.Xs)()?.config??null,f=c(b.baseURL),g=c(b.apiKey)||(0,v.ry)(e,d,f);if(!g){let a=e?.apiKey&&e.provider===d;return u.NextResponse.json({error:a?"Re-enter the API key to load models from a different base URL.":"Enter an API key to load the models."},{status:400})}if("custom"===d&&!f)return u.NextResponse.json({error:"Enter the base URL to load the models."},{status:400});if(f&&!/^https?:\/\//.test(f))return u.NextResponse.json({error:"Base URL must start with http:// or https://"},{status:400});try{let a=await (0,w.D)({provider:d,apiKey:g,baseURL:f||void 0});return u.NextResponse.json({models:a})}catch(a){return u.NextResponse.json({error:a.message},{status:502})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/models/route",pathname:"/api/settings/models",filename:"route",bundlePath:"app/api/settings/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/api/settings/models/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/settings/models/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},71011:(a,b,c)=>{"use strict";c.d(b,{I6:()=>m,RG:()=>i,o5:()=>j,ry:()=>l,s9:()=>k,tF:()=>h});var d=c(73024),e=c(48161),f=c(76760);let g=process.env.QPILOT_HOME||(0,f.join)((0,e.homedir)(),".qpilot"),h=(0,f.join)(g,"config.json");function i(){try{let a=JSON.parse((0,d.readFileSync)(h,"utf-8"));if(!a||"object"!=typeof a)return null;return{provider:"custom"===a.provider?"custom":"anthropic",apiKey:"string"==typeof a.apiKey?a.apiKey:"",model:"string"==typeof a.model&&a.model?a.model:void 0,baseURL:"string"==typeof a.baseURL&&a.baseURL?a.baseURL:void 0}}catch{return null}}function j(a){(0,d.mkdirSync)(g,{recursive:!0,mode:448});let b=`${h}.${process.pid}.tmp`;(0,d.writeFileSync)(b,JSON.stringify(a,null,2),{mode:384}),(0,d.renameSync)(b,h)}function k(a){return a?a.length>14?`${a.slice(0,7)}…${a.slice(-4)}`:"••••":""}function l(a,b,c){let d;return a&&a.provider===b&&(d=a.baseURL,(d??"").trim().replace(/\/+$/,"")===(c??"").trim().replace(/\/+$/,""))?a.apiKey:""}function m(a,b){let c=a=>"string"==typeof a?a.trim():"",d="custom"===a.provider?"custom":"anthropic",e=c(a.model),f=c(a.baseURL).replace(/\/+$/,""),g=c(a.apiKey)||l(b,d,f);if(!g){if(b?.apiKey&&b.provider===d)throw Error("Re-enter the API key to change the base URL — the saved key is only ever sent to the address it was saved with.");throw Error("custom"===d?"API token is required":"Anthropic API key is required")}if(f&&!/^https?:\/\/\S+$/.test(f))throw Error("Base URL must start with http:// or https://");if("custom"===d){if(!f)throw Error("Base URL is required for an OpenAI-compatible provider");if(!e)throw Error("Model id is required")}return{provider:d,apiKey:g,...e?{model:e}:{},...f?{baseURL:f}:{}}}},73024:a=>{"use strict";a.exports=require("node:fs")},73566:a=>{"use strict";a.exports=require("worker_threads")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},79551:a=>{"use strict";a.exports=require("url")},81630:a=>{"use strict";a.exports=require("http")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,692,168],()=>b(b.s=68069));module.exports=c})();
|
package/.next/standalone/.next/server/app/api/settings/models/route_client-reference-manifest.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"24630","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"75142","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"26501","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\"}],\"variableName\":\"sans\"}":{"id":5728,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\"}],\"variableName\":\"mono\"}":{"id":9678,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/globals.css":{"id":1290,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page.tsx":{"id":4166,"name":"*","chunks":["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"24630","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"75142","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"26501","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\"}],\"variableName\":\"sans\"}":{"id":5728,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\"}],\"variableName\":\"mono\"}":{"id":9678,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/globals.css":{"id":1290,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page.tsx":{"id":4166,"name":"*","chunks":["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-25363eac0e2b4fd1.js","974","static/chunks/app/page-c306a6ca88010f4b.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/settings/page.tsx":{"id":8036,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/run/[id]/page.tsx":{"id":8446,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/":[],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/layout":[{"inlined":false,"path":"static/css/6a883a6c62470f9e.css"}],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page":[],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/api/settings/route":[],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/api/settings/models/route":[]},"rscModuleMapping":{"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"45144","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"41688","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=177,a.ids=[177],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6260:(a,b,c)=>{"use strict";c.d(b,{D:()=>m,Kd:()=>i,Xs:()=>g,mu:()=>j,nz:()=>l,r4:()=>f,st:()=>k,xZ:()=>h});var d=c(47168),e=c(71011);let f="claude-haiku-4-5-20251001";function g(){let a=(0,e.RG)();if(a)return{config:a,source:"file"};let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();if("custom"===b||"openai"===b)return process.env.QPILOT_API_KEY||process.env.QPILOT_BASE_URL?{source:"env",config:{provider:"custom",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null;let c=process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"";return c?{source:"env",config:{provider:"anthropic",apiKey:c,model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null}function h(a){return"custom"===a.provider?{kind:"openai",baseURL:a.baseURL||"",apiKey:a.apiKey,model:a.model||""}:{kind:"anthropic",apiKey:a.apiKey,model:a.model||f,baseURL:a.baseURL||void 0}}function i(){let a=(0,e.RG)();if(a)return h(a);let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();return"custom"===b||"openai"===b?{kind:"openai",baseURL:process.env.QPILOT_BASE_URL||"",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||""}:{kind:"anthropic",apiKey:process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||f,baseURL:process.env.QPILOT_BASE_URL||void 0}}function j(a){if(!a)return;let b=Number(a);if(Number.isFinite(b))return Math.max(0,1e3*b);let c=Date.parse(a);if(!Number.isNaN(c))return Math.max(0,c-Date.now())}function k(a){let b="Open Settings (the gear on the home page) to set it.";return"anthropic"===a.kind?a.apiKey?null:`No Anthropic API key is configured. ${b}`:a.baseURL?a.apiKey?a.model?null:`Custom provider: the model id is not set. ${b}`:`Custom provider: the API token is not set. ${b}`:`Custom provider: the base URL is not set. ${b}`}async function l(a,b,c,d){let e,f=a.baseURL.replace(/\/+$/,"")+"/chat/completions";try{e=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:a.model,max_tokens:2048,messages:function(a,b){let c=[{role:"system",content:a}];for(let a of b){if("string"==typeof a.content){c.push({role:a.role,content:a.content});continue}if("user"===a.role){for(let b of a.content)if("tool_result"===b.type){let a="string"==typeof b.content?b.content:JSON.stringify(b.content??"");c.push({role:"tool",tool_call_id:b.tool_use_id,content:a})}else"text"===b.type&&c.push({role:"user",content:b.text});continue}let b="",d=[];for(let c of a.content)"text"===c.type?b+=c.text:"tool_use"===c.type&&d.push({id:c.id,type:"function",function:{name:c.name,arguments:JSON.stringify(c.input??{})}});c.push({role:"assistant",content:b||null,...d.length?{tool_calls:d}:{}})}return c}(b,c),tools:d.map(a=>({type:"function",function:{name:a.name,description:a.description,parameters:a.input_schema}})),tool_choice:"auto"})})}catch(c){let a=c.cause,b=a?.code??a?.message??c.message;throw Error(`Cannot reach the model endpoint ${f} (${b}). Check that the URL is right, the service is up, and you are on the network/VPN it needs. Run \`qpilot config\` to change it.`)}if(!e.ok){let a=await e.text().catch(()=>"");throw Object.assign(Error(`Model API ${e.status}: ${a.slice(0,300)}`),{status:e.status,retryAfterMs:j(e.headers.get("retry-after"))})}return function(a){let b=a?.choices?.[0],c=b?.message??{},d=[];for(let a of(c.content&&d.push({type:"text",text:c.content}),c.tool_calls??[])){let b=a.function.arguments,c={};if("string"==typeof b)try{c=JSON.parse(b||"{}")}catch{c={}}else b&&"object"==typeof b&&(c=b);d.push({type:"tool_use",id:a.id,name:a.function.name,input:c})}return{content:d,stop_reason:b?.finish_reason??"end_turn"}}(await e.json())}async function m(a){let b;if("anthropic"===a.provider){let b=new d.Ay({apiKey:a.apiKey,baseURL:a.baseURL||void 0,maxRetries:1}),c=[];try{for await(let a of b.models.list({limit:1e3}))c.push({id:a.id,name:a.display_name||a.id,created:a.created_at})}catch(a){throw Error(n(a))}return c}let c=(a.baseURL||"").replace(/\/+$/,"")+"/models";try{b=await fetch(c,{headers:{Authorization:`Bearer ${a.apiKey}`}})}catch(b){let a=b.cause;throw Error(`Cannot reach ${c} (${a?.code??a?.message??b.message})`)}if(!b.ok)throw Error(n({status:b.status,message:(await b.text().catch(()=>"")).slice(0,200)}));return((await b.json().catch(()=>({}))).data??[]).map(a=>"string"==typeof a.id?a.id:"").filter(Boolean).sort((a,b)=>a.localeCompare(b)).map(a=>({id:a,name:a}))}function n(a){return 401===a.status||403===a.status?"The API key was rejected — check that it is correct and active.":404===a.status?"This endpoint has no model list (404). Enter the model id by hand.":a.message||String(a)}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11997:a=>{"use strict";a.exports=require("punycode")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37830:a=>{"use strict";a.exports=require("node:stream/web")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71011:(a,b,c)=>{"use strict";c.d(b,{I6:()=>m,RG:()=>i,o5:()=>j,ry:()=>l,s9:()=>k,tF:()=>h});var d=c(73024),e=c(48161),f=c(76760);let g=process.env.QPILOT_HOME||(0,f.join)((0,e.homedir)(),".qpilot"),h=(0,f.join)(g,"config.json");function i(){try{let a=JSON.parse((0,d.readFileSync)(h,"utf-8"));if(!a||"object"!=typeof a)return null;return{provider:"custom"===a.provider?"custom":"anthropic",apiKey:"string"==typeof a.apiKey?a.apiKey:"",model:"string"==typeof a.model&&a.model?a.model:void 0,baseURL:"string"==typeof a.baseURL&&a.baseURL?a.baseURL:void 0}}catch{return null}}function j(a){(0,d.mkdirSync)(g,{recursive:!0,mode:448});let b=`${h}.${process.pid}.tmp`;(0,d.writeFileSync)(b,JSON.stringify(a,null,2),{mode:384}),(0,d.renameSync)(b,h)}function k(a){return a?a.length>14?`${a.slice(0,7)}…${a.slice(-4)}`:"••••":""}function l(a,b,c){let d;return a&&a.provider===b&&(d=a.baseURL,(d??"").trim().replace(/\/+$/,"")===(c??"").trim().replace(/\/+$/,""))?a.apiKey:""}function m(a,b){let c=a=>"string"==typeof a?a.trim():"",d="custom"===a.provider?"custom":"anthropic",e=c(a.model),f=c(a.baseURL).replace(/\/+$/,""),g=c(a.apiKey)||l(b,d,f);if(!g){if(b?.apiKey&&b.provider===d)throw Error("Re-enter the API key to change the base URL — the saved key is only ever sent to the address it was saved with.");throw Error("custom"===d?"API token is required":"Anthropic API key is required")}if(f&&!/^https?:\/\/\S+$/.test(f))throw Error("Base URL must start with http:// or https://");if("custom"===d){if(!f)throw Error("Base URL is required for an OpenAI-compatible provider");if(!e)throw Error("Model id is required")}return{provider:d,apiKey:g,...e?{model:e}:{},...f?{baseURL:f}:{}}}},73024:a=>{"use strict";a.exports=require("node:fs")},73566:a=>{"use strict";a.exports=require("worker_threads")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77826:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>A,PUT:()=>B,dynamic:()=>y,runtime:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(71011),w=c(6260);let x="nodejs",y="force-dynamic";function z(){let a=(0,w.Xs)(),b=a?.config;return{provider:b?.provider??"anthropic",model:b?.model??"",baseURL:b?.baseURL??"",hasKey:!!b?.apiKey,keyHint:(0,v.s9)(b?.apiKey??""),source:a?.source??"none",configured:!!b&&null===(0,w.st)((0,w.xZ)(b)),configPath:v.tF,defaultModel:w.r4}}async function A(){return u.NextResponse.json(z())}async function B(a){let b=await a.json().catch(()=>({}));try{(0,v.o5)((0,v.I6)(b,(0,w.Xs)()?.config??null))}catch(a){return u.NextResponse.json({error:a.message},{status:400})}return u.NextResponse.json(z())}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:"app/api/settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/api/settings/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){var d;let e="/api/settings/route";"/index"===e&&(e="/");let g=await C.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||C.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===C.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>C.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>C.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await C.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},78335:()=>{},79551:a=>{"use strict";a.exports=require("url")},81630:a=>{"use strict";a.exports=require("http")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,692,168],()=>b(b.s=77826));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=177,a.ids=[177],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6260:(a,b,c)=>{"use strict";c.d(b,{D:()=>n,Kd:()=>j,Xs:()=>h,mu:()=>k,nC:()=>g,nz:()=>m,r4:()=>f,st:()=>l,xZ:()=>i});var d=c(47168),e=c(71011);let f="claude-haiku-4-5-20251001",g=12e4;function h(){let a=(0,e.RG)();if(a)return{config:a,source:"file"};let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();if("custom"===b||"openai"===b)return process.env.QPILOT_API_KEY||process.env.QPILOT_BASE_URL?{source:"env",config:{provider:"custom",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null;let c=process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"";return c?{source:"env",config:{provider:"anthropic",apiKey:c,model:process.env.QPILOT_MODEL||void 0,baseURL:process.env.QPILOT_BASE_URL||void 0}}:null}function i(a){return"custom"===a.provider?{kind:"openai",baseURL:a.baseURL||"",apiKey:a.apiKey,model:a.model||""}:{kind:"anthropic",apiKey:a.apiKey,model:a.model||f,baseURL:a.baseURL||void 0}}function j(){let a=(0,e.RG)();if(a)return i(a);let b=(process.env.QPILOT_PROVIDER||"anthropic").toLowerCase();return"custom"===b||"openai"===b?{kind:"openai",baseURL:process.env.QPILOT_BASE_URL||"",apiKey:process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||""}:{kind:"anthropic",apiKey:process.env.ANTHROPIC_API_KEY||process.env.QPILOT_API_KEY||"",model:process.env.QPILOT_MODEL||f,baseURL:process.env.QPILOT_BASE_URL||void 0}}function k(a){if(!a)return;let b=Number(a);if(Number.isFinite(b))return Math.max(0,1e3*b);let c=Date.parse(a);if(!Number.isNaN(c))return Math.max(0,c-Date.now())}function l(a){let b="Open Settings (the gear on the home page) to set it.";return"anthropic"===a.kind?a.apiKey?null:`No Anthropic API key is configured. ${b}`:a.baseURL?a.apiKey?a.model?null:`Custom provider: the model id is not set. ${b}`:`Custom provider: the API token is not set. ${b}`:`Custom provider: the base URL is not set. ${b}`}async function m(a,b,c,d){let e,f=a.baseURL.replace(/\/+$/,"")+"/chat/completions";try{e=await fetch(f,{method:"POST",signal:AbortSignal.timeout(g),headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:a.model,max_tokens:2048,messages:function(a,b){let c=[{role:"system",content:a}];for(let a of b){if("string"==typeof a.content){c.push({role:a.role,content:a.content});continue}if("user"===a.role){for(let b of a.content)if("tool_result"===b.type){let a="string"==typeof b.content?b.content:JSON.stringify(b.content??"");c.push({role:"tool",tool_call_id:b.tool_use_id,content:a})}else"text"===b.type&&c.push({role:"user",content:b.text});continue}let b="",d=[];for(let c of a.content)"text"===c.type?b+=c.text:"tool_use"===c.type&&d.push({id:c.id,type:"function",function:{name:c.name,arguments:JSON.stringify(c.input??{})}});c.push({role:"assistant",content:b||null,...d.length?{tool_calls:d}:{}})}return c}(b,c),tools:d.map(a=>({type:"function",function:{name:a.name,description:a.description,parameters:a.input_schema}})),tool_choice:"auto"})})}catch(c){if("TimeoutError"===c.name)throw Error(`The model did not answer in ${g/1e3} s (${f}).`);let a=c.cause,b=a?.code??a?.message??c.message;throw Error(`Cannot reach the model endpoint ${f} (${b}). Check that the URL is right, the service is up, and you are on the network/VPN it needs. Run \`qpilot config\` to change it.`)}if(!e.ok){let a=await e.text().catch(()=>"");throw Object.assign(Error(`Model API ${e.status}: ${a.slice(0,300)}`),{status:e.status,retryAfterMs:k(e.headers.get("retry-after"))})}return function(a){let b=a?.choices?.[0],c=b?.message??{},d=[];for(let a of(c.content&&d.push({type:"text",text:c.content}),c.tool_calls??[])){let b=a.function.arguments,c={};if("string"==typeof b)try{c=JSON.parse(b||"{}")}catch{c={}}else b&&"object"==typeof b&&(c=b);d.push({type:"tool_use",id:a.id,name:a.function.name,input:c})}let e=a?.usage;return{content:d,stop_reason:b?.finish_reason??"end_turn",usage:{input_tokens:e?.prompt_tokens??0,output_tokens:e?.completion_tokens??0}}}(await e.json())}async function n(a){let b;if("anthropic"===a.provider){let b=new d.Ay({apiKey:a.apiKey,baseURL:a.baseURL||void 0,maxRetries:1}),c=[];try{for await(let a of b.models.list({limit:1e3}))c.push({id:a.id,name:a.display_name||a.id,created:a.created_at})}catch(a){throw Error(o(a))}return c}let c=(a.baseURL||"").replace(/\/+$/,"")+"/models";try{b=await fetch(c,{headers:{Authorization:`Bearer ${a.apiKey}`}})}catch(b){let a=b.cause;throw Error(`Cannot reach ${c} (${a?.code??a?.message??b.message})`)}if(!b.ok)throw Error(o({status:b.status,message:(await b.text().catch(()=>"")).slice(0,200)}));return((await b.json().catch(()=>({}))).data??[]).map(a=>"string"==typeof a.id?a.id:"").filter(Boolean).sort((a,b)=>a.localeCompare(b)).map(a=>({id:a,name:a}))}function o(a){return 401===a.status||403===a.status?"The API key was rejected — check that it is correct and active.":404===a.status?"This endpoint has no model list (404). Enter the model id by hand.":a.message||String(a)}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11997:a=>{"use strict";a.exports=require("punycode")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37830:a=>{"use strict";a.exports=require("node:stream/web")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71011:(a,b,c)=>{"use strict";c.d(b,{I6:()=>m,RG:()=>i,o5:()=>j,ry:()=>l,s9:()=>k,tF:()=>h});var d=c(73024),e=c(48161),f=c(76760);let g=process.env.QPILOT_HOME||(0,f.join)((0,e.homedir)(),".qpilot"),h=(0,f.join)(g,"config.json");function i(){try{let a=JSON.parse((0,d.readFileSync)(h,"utf-8"));if(!a||"object"!=typeof a)return null;return{provider:"custom"===a.provider?"custom":"anthropic",apiKey:"string"==typeof a.apiKey?a.apiKey:"",model:"string"==typeof a.model&&a.model?a.model:void 0,baseURL:"string"==typeof a.baseURL&&a.baseURL?a.baseURL:void 0}}catch{return null}}function j(a){(0,d.mkdirSync)(g,{recursive:!0,mode:448});let b=`${h}.${process.pid}.tmp`;(0,d.writeFileSync)(b,JSON.stringify(a,null,2),{mode:384}),(0,d.renameSync)(b,h)}function k(a){return a?a.length>14?`${a.slice(0,7)}…${a.slice(-4)}`:"••••":""}function l(a,b,c){let d;return a&&a.provider===b&&(d=a.baseURL,(d??"").trim().replace(/\/+$/,"")===(c??"").trim().replace(/\/+$/,""))?a.apiKey:""}function m(a,b){let c=a=>"string"==typeof a?a.trim():"",d="custom"===a.provider?"custom":"anthropic",e=c(a.model),f=c(a.baseURL).replace(/\/+$/,""),g=c(a.apiKey)||l(b,d,f);if(!g){if(b?.apiKey&&b.provider===d)throw Error("Re-enter the API key to change the base URL — the saved key is only ever sent to the address it was saved with.");throw Error("custom"===d?"API token is required":"Anthropic API key is required")}if(f&&!/^https?:\/\/\S+$/.test(f))throw Error("Base URL must start with http:// or https://");if("custom"===d){if(!f)throw Error("Base URL is required for an OpenAI-compatible provider");if(!e)throw Error("Model id is required")}return{provider:d,apiKey:g,...e?{model:e}:{},...f?{baseURL:f}:{}}}},73024:a=>{"use strict";a.exports=require("node:fs")},73566:a=>{"use strict";a.exports=require("worker_threads")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77826:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>A,PUT:()=>B,dynamic:()=>y,runtime:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(71011),w=c(6260);let x="nodejs",y="force-dynamic";function z(){let a=(0,w.Xs)(),b=a?.config;return{provider:b?.provider??"anthropic",model:b?.model??"",baseURL:b?.baseURL??"",hasKey:!!b?.apiKey,keyHint:(0,v.s9)(b?.apiKey??""),source:a?.source??"none",configured:!!b&&null===(0,w.st)((0,w.xZ)(b)),configPath:v.tF,defaultModel:w.r4}}async function A(){return u.NextResponse.json(z())}async function B(a){let b=await a.json().catch(()=>({}));try{(0,v.o5)((0,v.I6)(b,(0,w.Xs)()?.config??null))}catch(a){return u.NextResponse.json({error:a.message},{status:400})}return u.NextResponse.json(z())}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:"app/api/settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/api/settings/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){var d;let e="/api/settings/route";"/index"===e&&(e="/");let g=await C.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||C.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===C.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>C.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>C.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await C.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},78335:()=>{},79551:a=>{"use strict";a.exports=require("url")},81630:a=>{"use strict";a.exports=require("http")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,692,168],()=>b(b.s=77826));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"24630","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"75142","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"26501","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\"}],\"variableName\":\"sans\"}":{"id":5728,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\"}],\"variableName\":\"mono\"}":{"id":9678,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/globals.css":{"id":1290,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page.tsx":{"id":4166,"name":"*","chunks":["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"24630","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"75142","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"26501","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\"}],\"variableName\":\"sans\"}":{"id":5728,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\"}],\"variableName\":\"mono\"}":{"id":9678,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/globals.css":{"id":1290,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page.tsx":{"id":4166,"name":"*","chunks":["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-25363eac0e2b4fd1.js","974","static/chunks/app/page-c306a6ca88010f4b.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/settings/page.tsx":{"id":8036,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/run/[id]/page.tsx":{"id":8446,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/":[],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/layout":[{"inlined":false,"path":"static/css/6a883a6c62470f9e.css"}],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page":[],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/api/settings/route":[]},"rscModuleMapping":{"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"45144","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"41688","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--Qhl1G_NOwSotT_4T7tz8a--><html lang="en" class="__variable_8eaea4 __variable_8c25df"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/6a883a6c62470f9e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-f706f8e3ff0a415c.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-4f84124391a7dac4.js" async=""></script><script src="/_next/static/chunks/main-app-e5551aeb6fccb28b.js" async=""></script><script src="/_next/static/chunks/628-c8e9b74cd568418b.js" async=""></script><script src="/_next/static/chunks/677-f779c1efc6740046.js" async=""></script><script src="/_next/static/chunks/app/page-c306a6ca88010f4b.js" async=""></script><meta name="next-size-adjust" content=""/><title>qpilot</title><meta name="description" content="Run manual test cases with an AI agent in a real browser"/><link rel="icon" href="/icon.svg?9d47bb1b72d80a18" type="image/svg+xml" sizes="any"/><script>(function(){try{var t=localStorage.getItem("qpilot.theme")||"system";var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme: dark)").matches);var e=document.documentElement;e.classList.toggle("dark",d);e.style.colorScheme=d?"dark":"light";}catch(_){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-sans min-h-screen"><div hidden=""><!--$--><!--/$--></div><main class="flex flex-col items-center min-h-screen px-6 pt-20 pb-24"><div class="absolute right-4 top-4 flex items-center gap-2 sm:right-6 sm:top-6"><a title="Settings" class="inline-flex items-center gap-1.5 rounded-lg border border-border bg-surface px-2.5 py-1.5 text-xs text-muted-foreground hover:text-foreground hover:bg-surface-hover transition-colors" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings size-3.5" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="hidden sm:inline">Settings</span></a></div><div class="flex items-center justify-center size-11 rounded-2xl border border-border bg-surface-hover mb-6 shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot size-5 text-foreground/80" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg></div><h1 class="text-3xl font-semibold tracking-tight mb-2">qpilot</h1><p class="text-sm text-muted-foreground mb-10">Paste a test case. Watch it run.</p><div class="w-full space-y-3 max-w-2xl"><input type="file" webkitdirectory="" multiple="" class="hidden"/><input type="file" accept=".md,text/markdown" class="hidden"/><input type="file" multiple="" class="hidden"/><div class="flex items-center gap-2"><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 border-border bg-background hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5 gap-2 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder size-4" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg>Choose folder</button><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 border-border bg-background hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5 gap-2 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-upload size-4" aria-hidden="true"><path d="M12 3v12"></path><path d="m17 8-5-5-5 5"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path></svg>Upload .md</button></div><div class=""><form class="space-y-3"><div class="relative rounded-xl border transition-all duration-200 border-border"><textarea data-slot="textarea" class="flex field-sizing-content w-full border-input transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 min-h-[320px] font-mono text-[12.5px] leading-relaxed resize-none border-0 bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 rounded-xl p-4 overflow-y-auto max-h-[360px]" placeholder="Paste your test case here…" rows="16"></textarea></div><div class="flex items-center gap-2"><button type="submit" data-disabled="" tabindex="0" disabled="" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground [a]:hover:bg-primary/80 h-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 gap-2 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>Run</button><button type="button" data-disabled="" tabindex="0" disabled="" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-eye size-4" aria-hidden="true"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>Run with preview</button><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 ml-auto text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text size-4" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg>Example</button></div></form></div><div class="flex flex-wrap items-center gap-1.5"><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 h-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5 gap-2 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-paperclip size-3.5" aria-hidden="true"><path d="m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"></path></svg>Attach files</button><span class="text-[11px] text-subtle">optional — images, CSV or documents the test needs to upload</span></div></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-f706f8e3ff0a415c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[1959,[],\"ClientPageRoot\"]\n5:I[4166,[\"628\",\"static/chunks/628-c8e9b74cd568418b.js\",\"677\",\"static/chunks/677-f779c1efc6740046.js\",\"974\",\"static/chunks/app/page-c306a6ca88010f4b.js\"],\"default\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/6a883a6c62470f9e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Qhl1G-NOwSotT_4T7tz8a\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6a883a6c62470f9e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_8eaea4 __variable_8c25df\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"qpilot.theme\\\")||\\\"system\\\";var d=t===\\\"dark\\\"||(t!==\\\"light\\\"\u0026\u0026matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);var e=document.documentElement;e.classList.toggle(\\\"dark\\\",d);e.style.colorScheme=d?\\\"dark\\\":\\\"light\\\";}catch(_){}})();\"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans min-h-screen\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}],null,[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\nb:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"qpilot\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Run manual test cases with an AI agent in a real browser\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?9d47bb1b72d80a18\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L12\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--bkJayQnTQRf05bk_k7JdG--><html lang="en" class="__variable_8eaea4 __variable_8c25df"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/6a883a6c62470f9e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-f706f8e3ff0a415c.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-4f84124391a7dac4.js" async=""></script><script src="/_next/static/chunks/main-app-e5551aeb6fccb28b.js" async=""></script><script src="/_next/static/chunks/628-c8e9b74cd568418b.js" async=""></script><script src="/_next/static/chunks/677-25363eac0e2b4fd1.js" async=""></script><script src="/_next/static/chunks/app/page-c306a6ca88010f4b.js" async=""></script><meta name="next-size-adjust" content=""/><title>qpilot</title><meta name="description" content="Run manual test cases with an AI agent in a real browser"/><link rel="icon" href="/icon.svg?9d47bb1b72d80a18" type="image/svg+xml" sizes="any"/><script>(function(){try{var t=localStorage.getItem("qpilot.theme")||"system";var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme: dark)").matches);var e=document.documentElement;e.classList.toggle("dark",d);e.style.colorScheme=d?"dark":"light";}catch(_){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-sans min-h-screen"><div hidden=""><!--$--><!--/$--></div><main class="flex flex-col items-center min-h-screen px-6 pt-20 pb-24"><div class="absolute right-4 top-4 flex items-center gap-2 sm:right-6 sm:top-6"><a title="Settings" class="inline-flex items-center gap-1.5 rounded-lg border border-border bg-surface px-2.5 py-1.5 text-xs text-muted-foreground hover:text-foreground hover:bg-surface-hover transition-colors" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings size-3.5" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="hidden sm:inline">Settings</span></a></div><div class="flex items-center justify-center size-11 rounded-2xl border border-border bg-surface-hover mb-6 shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot size-5 text-foreground/80" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg></div><h1 class="text-3xl font-semibold tracking-tight mb-2">qpilot</h1><p class="text-sm text-muted-foreground mb-10">Paste a test case. Watch it run.</p><div class="w-full space-y-3 max-w-2xl"><input type="file" webkitdirectory="" multiple="" class="hidden"/><input type="file" accept=".md,text/markdown" class="hidden"/><input type="file" multiple="" class="hidden"/><div class="flex items-center gap-2"><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 border-border bg-background hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5 gap-2 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder size-4" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg>Choose folder</button><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 border-border bg-background hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5 gap-2 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-upload size-4" aria-hidden="true"><path d="M12 3v12"></path><path d="m17 8-5-5-5 5"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path></svg>Upload .md</button></div><div class=""><form class="space-y-3"><div class="relative rounded-xl border transition-all duration-200 border-border"><textarea data-slot="textarea" class="flex field-sizing-content w-full border-input transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 min-h-[320px] font-mono text-[12.5px] leading-relaxed resize-none border-0 bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 rounded-xl p-4 overflow-y-auto max-h-[360px]" placeholder="Paste your test case here…" rows="16"></textarea></div><div class="flex items-center gap-2"><button type="submit" data-disabled="" tabindex="0" disabled="" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground [a]:hover:bg-primary/80 h-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 gap-2 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>Run</button><button type="button" data-disabled="" tabindex="0" disabled="" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-eye size-4" aria-hidden="true"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>Run with preview</button><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 ml-auto text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text size-4" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg>Example</button></div></form></div><div class="flex flex-wrap items-center gap-1.5"><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 h-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5 gap-2 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-paperclip size-3.5" aria-hidden="true"><path d="m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"></path></svg>Attach files</button><span class="text-[11px] text-subtle">optional — images, CSV or documents the test needs to upload</span></div></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-f706f8e3ff0a415c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[1959,[],\"ClientPageRoot\"]\n5:I[4166,[\"628\",\"static/chunks/628-c8e9b74cd568418b.js\",\"677\",\"static/chunks/677-25363eac0e2b4fd1.js\",\"974\",\"static/chunks/app/page-c306a6ca88010f4b.js\"],\"default\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/6a883a6c62470f9e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bkJayQnTQRf05bk-k7JdG\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6a883a6c62470f9e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_8eaea4 __variable_8c25df\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"qpilot.theme\\\")||\\\"system\\\";var d=t===\\\"dark\\\"||(t!==\\\"light\\\"\u0026\u0026matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);var e=document.documentElement;e.classList.toggle(\\\"dark\\\",d);e.style.colorScheme=d?\\\"dark\\\":\\\"light\\\";}catch(_){}})();\"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans min-h-screen\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}],null,[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\nb:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"qpilot\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Run manual test cases with an AI agent in a real browser\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?9d47bb1b72d80a18\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L12\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
2:I[9766,[],""]
|
|
3
3
|
3:I[8924,[],""]
|
|
4
4
|
4:I[1959,[],"ClientPageRoot"]
|
|
5
|
-
5:I[4166,["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-
|
|
5
|
+
5:I[4166,["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-25363eac0e2b4fd1.js","974","static/chunks/app/page-c306a6ca88010f4b.js"],"default"]
|
|
6
6
|
8:I[4431,[],"OutletBoundary"]
|
|
7
7
|
a:I[5278,[],"AsyncMetadataOutlet"]
|
|
8
8
|
c:I[4431,[],"ViewportBoundary"]
|
|
@@ -12,7 +12,7 @@ f:"$Sreact.suspense"
|
|
|
12
12
|
:HL["/_next/static/media/22a5144ee8d83bca-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
13
13
|
:HL["/_next/static/media/7d4881bb7e1bf84d-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
14
|
:HL["/_next/static/css/6a883a6c62470f9e.css","style"]
|
|
15
|
-
0:{"P":null,"b":"
|
|
15
|
+
0:{"P":null,"b":"bkJayQnTQRf05bk-k7JdG","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/6a883a6c62470f9e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_8eaea4 __variable_8c25df","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"qpilot.theme\")||\"system\";var d=t===\"dark\"||(t!==\"light\"&&matchMedia(\"(prefers-color-scheme: dark)\").matches);var e=document.documentElement;e.classList.toggle(\"dark\",d);e.style.colorScheme=d?\"dark\":\"light\";}catch(_){}})();"}}]}],["$","body",null,{"className":"font-sans min-h-screen","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","searchParams":{},"params":{},"promises":["$@6","$@7"]}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
|
|
16
16
|
6:{}
|
|
17
17
|
7:"$0:f:0:1:2:children:1:props:children:0:props:params"
|
|
18
18
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"24630","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"75142","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"26501","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\"}],\"variableName\":\"sans\"}":{"id":5728,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\"}],\"variableName\":\"mono\"}":{"id":9678,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/globals.css":{"id":1290,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page.tsx":{"id":4166,"name":"*","chunks":["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"24630","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"75142","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"26501","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\"}],\"variableName\":\"sans\"}":{"id":5728,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\"}],\"variableName\":\"mono\"}":{"id":9678,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/globals.css":{"id":1290,"name":"*","chunks":["558","static/chunks/app/layout-662806276d567675.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page.tsx":{"id":4166,"name":"*","chunks":["628","static/chunks/628-c8e9b74cd568418b.js","677","static/chunks/677-25363eac0e2b4fd1.js","974","static/chunks/app/page-c306a6ca88010f4b.js"],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/settings/page.tsx":{"id":8036,"name":"*","chunks":[],"async":false},"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/run/[id]/page.tsx":{"id":8446,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/":[],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/layout":[{"inlined":false,"path":"static/css/6a883a6c62470f9e.css"}],"/Users/muhammadmahmudov/Desktop/qa/qa-antropic/app/page":[]},"rscModuleMapping":{"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4166":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8036":{"*":{"id":"45144","name":"*","chunks":[],"async":false}},"8446":{"*":{"id":"41688","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|