@zwbigi/ink-xy 0.1.20 → 0.1.21
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/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +3 -2
- package/.next/build-manifest.json +2 -2
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/describe-image/route.js +1 -1
- package/.next/server/app/api/agent/describe-image/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +2 -2
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/parse-characters/route.js +1 -1
- package/.next/server/app/api/agent/parse-characters/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js.nft.json +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/gem-xy/[id]/route.js +1 -1
- package/.next/server/app/api/gem-xy/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/gem-xy/route.js +1 -1
- package/.next/server/app/api/gem-xy/route.js.nft.json +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/inkos/route.js +1 -1
- package/.next/server/app/api/inkos/route.js.nft.json +1 -1
- package/.next/server/app/api/license/route.js +1 -0
- package/.next/server/app/api/license/route.js.nft.json +1 -0
- package/.next/server/app/api/license/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/route.js.nft.json +1 -1
- package/.next/server/app/api/register-cwd/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/lock/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/lock/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/new/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/search/route.js.nft.json +1 -1
- package/.next/server/app/api/tts/synthesize/route.js +1 -1
- package/.next/server/app/api/tts/synthesize/route.js.nft.json +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js +21 -17
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -2
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/app/{api/agent/[id]/route-63ec4518ba538b61.js → _global-error/page-63cbf8d9f448c4cc.js} +1 -1
- package/.next/static/chunks/app/api/agent/{describe-image/route-63ec4518ba538b61.js → [id]/events/route-63cbf8d9f448c4cc.js} +1 -1
- package/.next/static/chunks/app/{_global-error/page-63ec4518ba538b61.js → api/agent/[id]/route-63cbf8d9f448c4cc.js} +1 -1
- package/.next/static/chunks/app/api/agent/{[id]/events/route-63ec4518ba538b61.js → describe-image/route-63cbf8d9f448c4cc.js} +1 -1
- package/.next/static/chunks/app/api/agent/new/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/agent/parse-characters/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/gem-xy/[id]/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/gem-xy/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/home/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/inkos/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/license/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/models/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/register-cwd/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/lock/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/sessions/new/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/skills/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/api/tts/synthesize/route-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/app/{page-50fff2cb3a0ed4bc.js → page-e44dae523dff5f21.js} +35 -31
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-63cbf8d9f448c4cc.js +1 -0
- package/.next/static/css/28654ba5917696cd.css +3 -0
- package/.next/static/lpnSsjt1h_QIr2FOShVhq/_buildManifest.js +1 -0
- package/.next/trace +5 -4
- package/.next/trace-build +1 -1
- package/.next/types/app/api/license/route.ts +351 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/package.json +1 -1
- package/public/favicon.ico +0 -0
- package/public/generate_favicon.py +4 -2
- package/public/icon.png +0 -0
- package/.next/static/BwAlMPG47ng0nN8KjpAo5/_buildManifest.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/agent/parse-characters/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/gem-xy/[id]/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/gem-xy/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/home/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/inkos/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/models/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/register-cwd/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/lock/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/sessions/new/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/skills/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/app/api/tts/synthesize/route-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-63ec4518ba538b61.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-63ec4518ba538b61.js +0 -1
- package/.next/static/css/beaced3a0c85e8d4.css +0 -3
- /package/.next/static/{BwAlMPG47ng0nN8KjpAo5 → lpnSsjt1h_QIr2FOShVhq}/_ssgManifest.js +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=450,a.ids=[450],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4937:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>k});var e=c(23211),f=c(29021),g=c(33873),h=c(56429),i=c(80307),j=a([h,i]);async function k(a){try{let b,c=await a.json();console.log("POST /api/agent/new body:",JSON.stringify(c,null,2));let{cwd:d,...j}=c;if(!d||"string"!=typeof d)return e.NextResponse.json({error:"cwd is required"},{status:400});if(!(0,f.existsSync)(d))return e.NextResponse.json({error:`Directory does not exist: ${d}`},{status:400});let{provider:k,modelId:l,toolNames:m,thinkingLevel:n,gemId:o,...p}=j,q=m,r=k,s=l;if(o){let a=(0,i.qj)(o);if(a){a.provider&&a.modelId&&(r=a.provider,s=a.modelId),a.allowedTools&&a.allowedTools.length>0&&(q=a.allowedTools);let c=a.systemPrompt||"";if(a.knowledgeFiles&&a.knowledgeFiles.length>0){let b="";for(let c of a.knowledgeFiles)if((0,f.existsSync)(c))try{let a=(0,f.readFileSync)(c,"utf-8"),d=(0,g.basename)(c);b+=`
|
|
1
|
+
"use strict";(()=>{var a={};a.id=450,a.ids=[450],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3095:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(4937),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/agent/new/route",pathname:"/api/agent/new",filename:"route",bundlePath:"app/api/agent/new/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"E:\\ink-xY\\app\\api\\agent\\new\\route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/agent/new/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4937:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>k});var e=c(23211),f=c(29021),g=c(33873),h=c(56429),i=c(80307),j=a([h,i]);async function k(a){try{let b,c=await a.json();console.log("POST /api/agent/new body:",JSON.stringify(c,null,2));let{cwd:d,...j}=c;if(!d||"string"!=typeof d)return e.NextResponse.json({error:"cwd is required"},{status:400});if(!(0,f.existsSync)(d))return e.NextResponse.json({error:`Directory does not exist: ${d}`},{status:400});let{provider:k,modelId:l,toolNames:m,thinkingLevel:n,gemId:o,...p}=j,q=m,r=k,s=l;if(o){let a=(0,i.qj)(o);if(a){a.provider&&a.modelId&&(r=a.provider,s=a.modelId),a.allowedTools&&a.allowedTools.length>0&&(q=a.allowedTools);let c=a.systemPrompt||"";if(a.knowledgeFiles&&a.knowledgeFiles.length>0){let b="";for(let c of a.knowledgeFiles)if((0,f.existsSync)(c))try{let a=(0,f.readFileSync)(c,"utf-8"),d=(0,g.basename)(c);b+=`
|
|
2
2
|
|
|
3
3
|
--- KNOWLEDGE FILE: ${d} ---
|
|
4
4
|
${a}
|
|
5
5
|
`}catch(a){console.error(`Failed to read knowledge file ${c}:`,a)}b&&(c+=`
|
|
6
6
|
|
|
7
7
|
[KNOWLEDGE BASE]
|
|
8
|
-
Below is reference information from the files attached to this custom agent. Use this information to guide your answers where relevant:${b}`)}b=c}}let t=`__new__${Date.now()}`,{session:u,realSessionId:v}=await (0,h.OF)(t,"",d,q,b);if(globalThis.__piAllowedRootsCache?.roots.add(d),r&&s)try{console.log(`[new/route] Attempting to set model: ${r}/${s}`),await u.send({type:"set_model",provider:r,modelId:s}),console.log("[new/route] set_model success")}catch(a){console.error("[new/route] Error setting model in route, continuing anyway:",a)}if(n)try{console.log(`[new/route] Attempting to set thinking level: ${n}`),await u.send({type:"set_thinking_level",level:n}),console.log("[new/route] set_thinking_level success")}catch(a){console.error("[new/route] Error setting thinking level in route, continuing anyway:",a)}return console.log("[new/route] Firing promptCommand (non-blocking)..."),u.send(p).catch(a=>{console.error("[new/route] promptCommand error (async):",a)}),e.NextResponse.json({success:!0,sessionId:v})}catch(a){return console.error("Error in POST /api/agent/new:",a),e.NextResponse.json({error:String(a)},{status:500})}}[h,i]=j.then?(await j)():j,d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},80307:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$L:()=>n,Tp:()=>j,hb:()=>m,qj:()=>l}),c(23582);var e=c(75430),f=c(29021),g=c(33873),h=a([e]);function i(){return(0,g.join)((0,e.getAgentDir)(),"gem_xy.json")}e=(h.then?(await h)():h)[0];let o=[{id:"default-outline-planner",name:"大纲策划师",description:"负责小说微观冲突、宏观结构、大纲与起承转合编排",avatar:"\uD83D\uDDFA️",systemPrompt:"你是一位顶级的小说大纲策划师,擅长使用经典的“起承转合”与“三幕式结构”来协助创作者梳理故事结构。\n\n为了帮助创作者打造出逻辑严密、节奏感强且富有张力的小说大纲,请遵循以下【渐进式共创工作流】:\n\n1. 【灵感捕获】:当用户向你提供初始的故事梗概或灵感时,不要急于一次性生成完整的大纲。请先对用户的创意表示肯定,并针对该故事框架,提出 2-3 个关于【核心矛盾冲突】、【主角的终极追求】或【主要阻力/反派动机】的启发式问题,引导用户深入思考。\n2. 【大纲拟定】:在用户回复了你的提问后,结合补充信息,为用户整理出一份符合起承转合或三幕式结构的大纲草案。\n3. 【固化归档】:在大纲获得作者认可后,或者在回复的最后,若你针对大纲给出了明确的优化与修改建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了大纲与剧情结构的规划与优化建议。为了保障您的规划资产,请问您是否同意:\n✍️ 直接同步写入:将上述大纲内容直接同步覆盖或写入到当前项目根目录下的 novel_framework.md 中。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-character-smith",name:"人设雕琢师",description:"负责角色塑造、立体性格、背景动机与对话口吻雕琢",avatar:"\uD83D\uDD2E",systemPrompt:"你是一位顶尖的小说角色塑造专家,擅长通过剖析人物的内外在冲突、动机缺陷以及独特口吻来塑造丰满立体的 3D 角色。\n\n**为了帮助创作者打造让人过目不忘的真实人物,请遵循以下【渐进式共创工作流】:\n\n1. 【人设初探】:当用户向你提供初始的人物设想时,不要急于一次性生成完整的人设卡。请先肯定用户的灵感,并针对该角色,提出 2-3 个关于【核心动机与欲望】、【主要角色还是次要角色等级定位(主角/核心配角/边缘配角)】、【性格缺陷/不可告人的秘密】或【专属对话口吻】的启发式问题,引导用户展开脑暴。\n2. 【人设打磨】:在用户回复了你的提问后,结合补充信息,为用户雕琢并输出一份包含基本信息、内外在冲突、性格维度与人设背景的立体人物卡。请务必在人物卡基本信息的最顶部明确标出:\n **角色定位**:主要角色(或次要角色)\n3. 【固化归档】:在人物设定获得作者认可后,或者在回复的最后,若你针对人物人设给出了明确的修改或优化建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了角色设定与人设雕琢的优化建议。为了保障您的设定资产,请问您是否同意:\n✍️ 直接同步写入:将上述人设内容直接同步覆盖或写入到当前项目根目录下的 character_profiles.md 中。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-chapter-expander",name:"剧情修改扩写",description:"对段落进行修改、润色与扩写,增强环境细节与动作神态描写",avatar:"✍️",systemPrompt:"你是一位精于文字细节、文笔润色与段落修改的小说扩写专家。请帮助写作者修改、扩写或润色草稿。增加丰富的环境细节、微表情动作描写、感官体验,使文学段落更加细腻动人,保持叙事节奏。\n\n【提示】在回答的极少数或最后,若你针对具体章节或文件给出了任何优化、修改或扩写的建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了段落的润色与扩写内容。为了保障您的手稿安全,请问您希望如何处理这些修改?\n1. ✍️ 直接应用覆盖:将上述修改内容直接同步覆盖到当前的编辑器原稿中。\n2. \uD83D\uDCBE 另存为新版本:在同目录下为您创建一个独立的新文件(例如 xxx_修改版.md),保留初稿以便您进行版本对比。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-text-proofreader",name:"文字校对姬",description:"自动化纠错、常识查证、设定矛盾审计与词语润色",avatar:"\uD83D\uDD0D",systemPrompt:"你是一位一丝不苟的专业小说校对编辑。请帮助作者对草稿进行自动纠错、错别字校对、常识查证以及前后设定逻辑矛盾的审计。列出需修正的错漏,并提供优雅的词组替换建议,保持文字纯净通顺。\n\n【提示】在回答的最后,若你针对具体章节或文件给出了任何优化、修改或校对的建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了错漏纠错与校对修改建议。为了保障您的手稿安全,请问您希望如何处理这些修改?\n1. ✍️ 直接应用覆盖:将上述修改内容直接同步覆盖到当前的编辑器原稿中。\n2. \uD83D\uDCBE 另存为新版本:在同目录下为您创建一个独立的新文件(例如 xxx_修改版.md),保留初稿以便您进行版本对比。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-character-converter",name:"角色卡转换器",description:"将任何非结构化人设段落/表格转换为一键复制的标准 Markdown",avatar:"\uD83C\uDFAD",systemPrompt:'你是一个顶级的小说创作助手和结构化数据提取专家。你的唯一任务是接收用户输入的任何非结构化、排版混乱的角色描述文本,将其提取、规范化为符合以下标准格式的 Markdown 代码块。\n\n## 格式规范\n\n对于提取出的每一个人物,请直接输出符合以下结构的 Markdown 代码块:\n\n```markdown\n---\ntier: major # 角色等级:根据输入文本中的“角色定位”或重要性判断。主要角色为 "major",次要角色/普通配角为 "minor"。如果无法确定,默认 "major"。\nname: 姓名 # 移除任何修饰词、序号、属性括号,只保留干净的人名。例如:"1. 林墨(主角)" 转换为 "林墨"。\n---\n## Core_Tags\n标签1, 标签2, 标签3 # 核心性格/职业/身份标签列表,最多 5 个标签,用英文逗号分隔。\n\n## Contrast_Detail\n矛盾细节与立体反差维度设计(例如:"外表温和克制,面对真相时偏执狂热,容易忽视身边人的安全。父亲因秘密激活能量碎片殉职,心怀负罪感。")。从性格缺点、秘密、冲突中概括。\n\n## Back_Story\n背景故事与生平小传...\n\n## Relationship_Network\n- 与角色A:关系描述1\n- 与角色B:关系描述2\n```\n\n如果文本中包含多个人物,请使用 `---` 分割线将他们隔开。\n\n## 转换步骤\n1. **判断角色等级 (tier)**:仔细查找输入文本中是否包含“角色定位”或者类似的等级信息(如主角/核心配角/主要角色 -> major,次要角色/配角/龙套 -> minor)。\n2. **清洗姓名**:提取干净的名字作为 frontmatter 的 `name` 属性。\n3. **分析人际关系**:在 `Relationship_Network` 中提取该角色与提及的所有其他角色之间的关系。\n4. **矛盾反差**:将人物的内在冲突、心理阴影或反差设计提炼到 `Contrast_Detail` 中。\n5. **背景故事**:将生平、核心动机等提炼到 `Back_Story` 中。\n6. **只输出标准格式**:你的回答应该仅包含符合上述要求的 Markdown 代码块,不要有任何前导或后继的客套话。确保代码块在页面中可以通过右上角的一键复制按钮被完整复制。',modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()}];function j(){let a=i();if(!(0,f.existsSync)(a))try{return k(o),o}catch{return o}try{let b=(0,f.readFileSync)(a,"utf-8"),c=JSON.parse(b),d=!1,e=c.map(a=>{let b=o.find(b=>b.id===a.id);if(b){let c=!a.allowedTools||0===a.allowedTools.length,e=a.systemPrompt.includes("我已经为您完成了这一章节的润色与修改")||"default-outline-planner"===a.id&&a.systemPrompt.includes("另存为新版本")||"default-character-smith"===a.id&&a.systemPrompt.includes("另存为新版本");if(c||e)return d=!0,{...a,systemPrompt:e?b.systemPrompt:a.systemPrompt,allowedTools:c?b.allowedTools:a.allowedTools,modified:new Date().toISOString()}}return a}),g=o.filter(a=>!e.some(b=>b.id===a.id));if(g.length>0&&(e.push(...g),d=!0),d){try{k(e)}catch(a){console.error("Failed to write upgraded gems:",a)}return e}return c}catch(a){return console.error("Failed to read gem_xy.json:",a),[]}}function k(a){let b=i();try{(0,f.writeFileSync)(b,JSON.stringify(a,null,2),"utf-8")}catch(a){throw console.error("Failed to write gem_xy.json:",a),a}}function l(a){return j().find(b=>b.id===a)??null}function m(a){let b,c=j(),d=new Date().toISOString();if(a.id){let e=c.findIndex(b=>b.id===a.id);-1!==e?(b={...c[e],...a,modified:d},c[e]=b):(b={id:a.id,name:a.name,description:a.description||"",avatar:a.avatar||"\uD83E\uDD16",systemPrompt:a.systemPrompt,modelId:a.modelId||"",provider:a.provider||"",allowedTools:a.allowedTools||[],knowledgeFiles:a.knowledgeFiles||[],created:d,modified:d},c.push(b))}else b={id:Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),name:a.name,description:a.description||"",avatar:a.avatar||"\uD83E\uDD16",systemPrompt:a.systemPrompt,modelId:a.modelId||"",provider:a.provider||"",allowedTools:a.allowedTools||[],knowledgeFiles:a.knowledgeFiles||[],created:d,modified:d},c.push(b);return k(c),b}function n(a){let b=j(),c=b.length,d=b.filter(b=>b.id!==a);return d.length<c&&(k(d),!0)}d()}catch(a){d(a)}})},86360:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(4937),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/agent/new/route",pathname:"/api/agent/new",filename:"route",bundlePath:"app/api/agent/new/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"E:\\ink-xY\\app\\api\\agent\\new\\route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/agent/new/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[741,813,601],()=>b(b.s=86360));module.exports=c})();
|
|
8
|
+
Below is reference information from the files attached to this custom agent. Use this information to guide your answers where relevant:${b}`)}b=c}}let t=`__new__${Date.now()}`,{session:u,realSessionId:v}=await (0,h.OF)(t,"",d,q,b);if(globalThis.__piAllowedRootsCache?.roots.add(d),r&&s)try{console.log(`[new/route] Attempting to set model: ${r}/${s}`),await u.send({type:"set_model",provider:r,modelId:s}),console.log("[new/route] set_model success")}catch(a){console.error("[new/route] Error setting model in route, continuing anyway:",a)}if(n)try{console.log(`[new/route] Attempting to set thinking level: ${n}`),await u.send({type:"set_thinking_level",level:n}),console.log("[new/route] set_thinking_level success")}catch(a){console.error("[new/route] Error setting thinking level in route, continuing anyway:",a)}return console.log("[new/route] Firing promptCommand (non-blocking)..."),u.send(p).catch(a=>{console.error("[new/route] promptCommand error (async):",a)}),e.NextResponse.json({success:!0,sessionId:v})}catch(a){return console.error("Error in POST /api/agent/new:",a),e.NextResponse.json({error:String(a)},{status:500})}}[h,i]=j.then?(await j)():j,d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},80307:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$L:()=>n,Tp:()=>j,hb:()=>m,qj:()=>l}),c(23582);var e=c(75430),f=c(29021),g=c(33873),h=a([e]);function i(){return(0,g.join)((0,e.getAgentDir)(),"gem_xy.json")}e=(h.then?(await h)():h)[0];let o=[{id:"default-outline-planner",name:"大纲策划师",description:"负责小说微观冲突、宏观结构、大纲与起承转合编排",avatar:"\uD83D\uDDFA️",systemPrompt:"你是一位顶级的小说大纲策划师,擅长使用经典的“起承转合”与“三幕式结构”来协助创作者梳理故事结构。\n\n为了帮助创作者打造出逻辑严密、节奏感强且富有张力的小说大纲,请遵循以下【渐进式共创工作流】:\n\n1. 【灵感捕获】:当用户向你提供初始的故事梗概或灵感时,不要急于一次性生成完整的大纲。请先对用户的创意表示肯定,并针对该故事框架,提出 2-3 个关于【核心矛盾冲突】、【主角的终极追求】或【主要阻力/反派动机】的启发式问题,引导用户深入思考。\n2. 【大纲拟定】:在用户回复了你的提问后,结合补充信息,为用户整理出一份符合起承转合或三幕式结构的大纲草案。\n3. 【固化归档】:在大纲获得作者认可后,或者在回复的最后,若你针对大纲给出了明确的优化与修改建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了大纲与剧情结构的规划与优化建议。为了保障您的规划资产,请问您是否同意:\n✍️ 直接同步写入:将上述大纲内容直接同步覆盖或写入到当前项目根目录下的 novel_framework.md 中。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-character-smith",name:"人设雕琢师",description:"负责角色塑造、立体性格、背景动机与对话口吻雕琢",avatar:"\uD83D\uDD2E",systemPrompt:"你是一位顶尖的小说角色塑造专家,擅长通过剖析人物的内外在冲突、动机缺陷以及独特口吻来塑造丰满立体的 3D 角色。\n\n**为了帮助创作者打造让人过目不忘的真实人物,请遵循以下【渐进式共创工作流】:\n\n1. 【人设初探】:当用户向你提供初始的人物设想时,不要急于一次性生成完整的人设卡。请先肯定用户的灵感,并针对该角色,提出 2-3 个关于【核心动机与欲望】、【主要角色还是次要角色等级定位(主角/核心配角/边缘配角)】、【性格缺陷/不可告人的秘密】或【专属对话口吻】的启发式问题,引导用户展开脑暴。\n2. 【人设打磨】:在用户回复了你的提问后,结合补充信息,为用户雕琢并输出一份包含基本信息、内外在冲突、性格维度与人设背景的立体人物卡。请务必在人物卡基本信息的最顶部明确标出:\n **角色定位**:主要角色(或次要角色)\n3. 【固化归档】:在人物设定获得作者认可后,或者在回复的最后,若你针对人物人设给出了明确的修改或优化建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了角色设定与人设雕琢的优化建议。为了保障您的设定资产,请问您是否同意:\n✍️ 直接同步写入:将上述人设内容直接同步覆盖或写入到当前项目根目录下的 character_profiles.md 中。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-chapter-expander",name:"剧情修改扩写",description:"对段落进行修改、润色与扩写,增强环境细节与动作神态描写",avatar:"✍️",systemPrompt:"你是一位精于文字细节、文笔润色与段落修改的小说扩写专家。请帮助写作者修改、扩写或润色草稿。增加丰富的环境细节、微表情动作描写、感官体验,使文学段落更加细腻动人,保持叙事节奏。\n\n【提示】在回答的极少数或最后,若你针对具体章节或文件给出了任何优化、修改或扩写的建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了段落的润色与扩写内容。为了保障您的手稿安全,请问您希望如何处理这些修改?\n1. ✍️ 直接应用覆盖:将上述修改内容直接同步覆盖到当前的编辑器原稿中。\n2. \uD83D\uDCBE 另存为新版本:在同目录下为您创建一个独立的新文件(例如 xxx_修改版.md),保留初稿以便您进行版本对比。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-text-proofreader",name:"文字校对姬",description:"自动化纠错、常识查证、设定矛盾审计与词语润色",avatar:"\uD83D\uDD0D",systemPrompt:"你是一位一丝不苟的专业小说校对编辑。请帮助作者对草稿进行自动纠错、错别字校对、常识查证以及前后设定逻辑矛盾的审计。列出需修正的错漏,并提供优雅的词组替换建议,保持文字纯净通顺。\n\n【提示】在回答的最后,若你针对具体章节或文件给出了任何优化、修改或校对的建议,请在回复结尾加上以下引导话术:\n「我已经为您完成了错漏纠错与校对修改建议。为了保障您的手稿安全,请问您希望如何处理这些修改?\n1. ✍️ 直接应用覆盖:将上述修改内容直接同步覆盖到当前的编辑器原稿中。\n2. \uD83D\uDCBE 另存为新版本:在同目录下为您创建一个独立的新文件(例如 xxx_修改版.md),保留初稿以便您进行版本对比。」",modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()},{id:"default-character-converter",name:"角色卡转换器",description:"将任何非结构化人设段落/表格转换为一键复制的标准 Markdown",avatar:"\uD83C\uDFAD",systemPrompt:'你是一个顶级的小说创作助手和结构化数据提取专家。你的唯一任务是接收用户输入的任何非结构化、排版混乱的角色描述文本,将其提取、规范化为符合以下标准格式的 Markdown 代码块。\n\n## 格式规范\n\n对于提取出的每一个人物,请直接输出符合以下结构的 Markdown 代码块:\n\n```markdown\n---\ntier: major # 角色等级:根据输入文本中的“角色定位”或重要性判断。主要角色为 "major",次要角色/普通配角为 "minor"。如果无法确定,默认 "major"。\nname: 姓名 # 移除任何修饰词、序号、属性括号,只保留干净的人名。例如:"1. 林墨(主角)" 转换为 "林墨"。\n---\n## Core_Tags\n标签1, 标签2, 标签3 # 核心性格/职业/身份标签列表,最多 5 个标签,用英文逗号分隔。\n\n## Contrast_Detail\n矛盾细节与立体反差维度设计(例如:"外表温和克制,面对真相时偏执狂热,容易忽视身边人的安全。父亲因秘密激活能量碎片殉职,心怀负罪感。")。从性格缺点、秘密、冲突中概括。\n\n## Back_Story\n背景故事与生平小传...\n\n## Relationship_Network\n- 与角色A:关系描述1\n- 与角色B:关系描述2\n```\n\n如果文本中包含多个人物,请使用 `---` 分割线将他们隔开。\n\n## 转换步骤\n1. **判断角色等级 (tier)**:仔细查找输入文本中是否包含“角色定位”或者类似的等级信息(如主角/核心配角/主要角色 -> major,次要角色/配角/龙套 -> minor)。\n2. **清洗姓名**:提取干净的名字作为 frontmatter 的 `name` 属性。\n3. **分析人际关系**:在 `Relationship_Network` 中提取该角色与提及的所有其他角色之间的关系。\n4. **矛盾反差**:将人物的内在冲突、心理阴影或反差设计提炼到 `Contrast_Detail` 中。\n5. **背景故事**:将生平、核心动机等提炼到 `Back_Story` 中。\n6. **只输出标准格式**:你的回答应该仅包含符合上述要求的 Markdown 代码块,不要有任何前导或后继的客套话。确保代码块在页面中可以通过右上角的一键复制按钮被完整复制。',modelId:"",provider:"",allowedTools:["read","grep","find","ls","edit","write"],knowledgeFiles:[],created:new Date().toISOString(),modified:new Date().toISOString()}];function j(){let a=i();if(!(0,f.existsSync)(a))try{return k(o),o}catch{return o}try{let b=(0,f.readFileSync)(a,"utf-8"),c=JSON.parse(b),d=!1,e=c.map(a=>{let b=o.find(b=>b.id===a.id);if(b){let c=!a.allowedTools||0===a.allowedTools.length,e=a.systemPrompt.includes("我已经为您完成了这一章节的润色与修改")||"default-outline-planner"===a.id&&a.systemPrompt.includes("另存为新版本")||"default-character-smith"===a.id&&a.systemPrompt.includes("另存为新版本");if(c||e)return d=!0,{...a,systemPrompt:e?b.systemPrompt:a.systemPrompt,allowedTools:c?b.allowedTools:a.allowedTools,modified:new Date().toISOString()}}return a}),g=o.filter(a=>!e.some(b=>b.id===a.id));if(g.length>0&&(e.push(...g),d=!0),d){try{k(e)}catch(a){console.error("Failed to write upgraded gems:",a)}return e}return c}catch(a){return console.error("Failed to read gem_xy.json:",a),[]}}function k(a){let b=i();try{(0,f.writeFileSync)(b,JSON.stringify(a,null,2),"utf-8")}catch(a){throw console.error("Failed to write gem_xy.json:",a),a}}function l(a){return j().find(b=>b.id===a)??null}function m(a){let b,c=j(),d=new Date().toISOString();if(a.id){let e=c.findIndex(b=>b.id===a.id);-1!==e?(b={...c[e],...a,modified:d},c[e]=b):(b={id:a.id,name:a.name,description:a.description||"",avatar:a.avatar||"\uD83E\uDD16",systemPrompt:a.systemPrompt,modelId:a.modelId||"",provider:a.provider||"",allowedTools:a.allowedTools||[],knowledgeFiles:a.knowledgeFiles||[],created:d,modified:d},c.push(b))}else b={id:Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),name:a.name,description:a.description||"",avatar:a.avatar||"\uD83E\uDD16",systemPrompt:a.systemPrompt,modelId:a.modelId||"",provider:a.provider||"",allowedTools:a.allowedTools||[],knowledgeFiles:a.knowledgeFiles||[],created:d,modified:d},c.push(b);return k(c),b}function n(a){let b=j(),c=b.length,d=b.filter(b=>b.id!==a);return d.length<c&&(k(d),!0)}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[741,813,601],()=>b(b.s=3095));module.exports=c})();
|