clawpad 0.3.8 → 0.3.9
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-path-routes-manifest.json +6 -6
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- 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/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/ai/write/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/record/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/revert/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/abort/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/pages/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/recent/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/spaces/[space]/pages/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/watch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/detect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/features/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/history/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/resolve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/openclaw/commands/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/search-status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/bootstrap/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/bootstrap-workspace/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/trigger-onboarding/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 +1 -1
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/connection/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/connection.html +1 -1
- package/.next/standalone/.next/server/app/settings/connection.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/relay/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/relay.html +1 -1
- package/.next/standalone/.next/server/app/settings/relay.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/settings/relay/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/settings/relay.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/waitlist.html +1 -1
- package/.next/standalone/.next/server/app/waitlist.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/waitlist/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/waitlist.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspace/search/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspace/search.html +2 -2
- package/.next/standalone/.next/server/app/workspace/search.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace/search.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace/search.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/search.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/search.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/search.segments/workspace.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace.html +2 -2
- package/.next/standalone/.next/server/app/workspace.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace.segments/workspace.segment.rsc +2 -2
- package/.next/standalone/.next/server/app-paths-manifest.json +6 -6
- package/.next/standalone/.next/server/chunks/4153.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/{ba12c10f-711be30d2e4894a2.js → ba12c10f-4a76b94632273ce4.js} +1 -1
- package/bin/clawpad.js +99 -7
- package/package.json +1 -1
- /package/.next/static/{lPQAvW9U_0cnBIN_JiTvo → XDWDXDskWGxAUH6Kn_WxX}/_buildManifest.js +0 -0
- /package/.next/static/{lPQAvW9U_0cnBIN_JiTvo → XDWDXDskWGxAUH6Kn_WxX}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8803],{86726:(e,t,a)=>{a.d(t,{rL:()=>ee,vl:()=>et});var r,o,s=a(67506),i=a(13897),n=a(44916);a(41463);var l=Object.defineProperty,p=Symbol.for("vercel.ai.error.AI_InvalidArgumentError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidStreamPartError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidToolApprovalError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidToolInputError");i.bD;Symbol.for("vercel.ai.error.AI_ToolCallNotFoundForApprovalError");i.bD;Symbol.for("vercel.ai.error.AI_MissingToolResultsError");i.bD;Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");i.bD;var d="AI_NoObjectGeneratedError",u=`vercel.ai.error.${d}`,c=Symbol.for(u),h=class extends i.bD{constructor({message:e="No object generated.",cause:t,text:a,response:o,usage:s,finishReason:i}){super({name:d,message:e,cause:t}),this[r]=!0,this.text=a,this.response=o,this.usage=s,this.finishReason=i}static isInstance(e){return i.bD.hasMarker(e,u)}};r=c;Symbol.for("vercel.ai.error.AI_NoOutputGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoSpeechGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoTranscriptGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoVideoGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoSuchToolError");i.bD;Symbol.for("vercel.ai.error.AI_ToolCallRepairError");i.bD,i.bD;var m="AI_UIMessageStreamError",g=`vercel.ai.error.${m}`,z=Symbol.for(g),v=class extends i.bD{constructor({chunkType:e,chunkId:t,message:a}){super({name:m,message:a}),this[o]=!0,this.chunkType=e,this.chunkId=t}static isInstance(e){return i.bD.hasMarker(e,g)}};o=z;Symbol.for("vercel.ai.error.AI_InvalidDataContentError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidMessageRoleError");i.bD;Symbol.for("vercel.ai.error.AI_MessageConversionError");i.bD;Symbol.for("vercel.ai.error.AI_RetryError");i.bD;var b="6.0.88",y=async({url:e,maxBytes:t,abortSignal:a})=>{var r;let o=e.toString();try{let e=await fetch(o,{headers:(0,s.WZ)({},`ai-sdk/${b}`,(0,s.G1)()),signal:a});if(!e.ok)throw new s.nV({url:o,statusCode:e.status,statusText:e.statusText});return{data:await (0,s.cS)({response:e,url:o,maxBytes:null!=t?t:s.W}),mediaType:null!=(r=e.headers.get("content-type"))?r:void 0}}catch(e){if(s.nV.isInstance(e))throw e;throw new s.nV({url:o,cause:e})}},I=n.z.union([n.z.string(),n.z.instanceof(Uint8Array),n.z.instanceof(ArrayBuffer),n.z.custom(e=>{var t,a;return null!=(a=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&a},{message:"Must be a Buffer"})]),f=n.z.lazy(()=>n.z.union([n.z.null(),n.z.string(),n.z.number(),n.z.boolean(),n.z.record(n.z.string(),f.optional()),n.z.array(f)])),E=n.z.record(n.z.string(),n.z.record(n.z.string(),f.optional())),x=n.z.object({type:n.z.literal("text"),text:n.z.string(),providerOptions:E.optional()}),T=n.z.object({type:n.z.literal("image"),image:n.z.union([I,n.z.instanceof(URL)]),mediaType:n.z.string().optional(),providerOptions:E.optional()}),w=n.z.object({type:n.z.literal("file"),data:n.z.union([I,n.z.instanceof(URL)]),filename:n.z.string().optional(),mediaType:n.z.string(),providerOptions:E.optional()}),R=n.z.object({type:n.z.literal("reasoning"),text:n.z.string(),providerOptions:E.optional()}),M=n.z.object({type:n.z.literal("tool-call"),toolCallId:n.z.string(),toolName:n.z.string(),input:n.z.unknown(),providerOptions:E.optional(),providerExecuted:n.z.boolean().optional()}),_=n.z.discriminatedUnion("type",[n.z.object({type:n.z.literal("text"),value:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("json"),value:f,providerOptions:E.optional()}),n.z.object({type:n.z.literal("execution-denied"),reason:n.z.string().optional(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("error-text"),value:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("error-json"),value:f,providerOptions:E.optional()}),n.z.object({type:n.z.literal("content"),value:n.z.array(n.z.union([n.z.object({type:n.z.literal("text"),text:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("media"),data:n.z.string(),mediaType:n.z.string()}),n.z.object({type:n.z.literal("file-data"),data:n.z.string(),mediaType:n.z.string(),filename:n.z.string().optional(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("file-url"),url:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("file-id"),fileId:n.z.union([n.z.string(),n.z.record(n.z.string(),n.z.string())]),providerOptions:E.optional()}),n.z.object({type:n.z.literal("image-data"),data:n.z.string(),mediaType:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("image-url"),url:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("image-file-id"),fileId:n.z.union([n.z.string(),n.z.record(n.z.string(),n.z.string())]),providerOptions:E.optional()}),n.z.object({type:n.z.literal("custom"),providerOptions:E.optional()})]))})]),k=n.z.object({type:n.z.literal("tool-result"),toolCallId:n.z.string(),toolName:n.z.string(),output:_,providerOptions:E.optional()}),A=n.z.object({type:n.z.literal("tool-approval-request"),approvalId:n.z.string(),toolCallId:n.z.string()}),j=n.z.object({type:n.z.literal("tool-approval-response"),approvalId:n.z.string(),approved:n.z.boolean(),reason:n.z.string().optional()}),S=n.z.object({role:n.z.literal("system"),content:n.z.string(),providerOptions:E.optional()}),N=n.z.object({role:n.z.literal("user"),content:n.z.union([n.z.string(),n.z.array(n.z.union([x,T,w]))]),providerOptions:E.optional()}),C=n.z.object({role:n.z.literal("assistant"),content:n.z.union([n.z.string(),n.z.array(n.z.union([x,w,R,M,k,A]))]),providerOptions:E.optional()}),O=n.z.object({role:n.z.literal("tool"),content:n.z.array(n.z.union([k,j])),providerOptions:E.optional()});n.z.union([S,N,C,O]);var D={},P={array:()=>W,choice:()=>U,json:()=>J,object:()=>L,text:()=>B};for(var F in P)l(D,F,{get:P[F],enumerable:!0});async function q(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await (0,s.N8)({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await (0,s.N8)({text:function(e){let t=["ROOT"],a=-1,r=null;function o(e,o,s){switch(e){case'"':a=o,t.pop(),t.push(s),t.push("INSIDE_STRING");break;case"f":case"t":case"n":a=o,r=o,t.pop(),t.push(s),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(s),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":a=o,t.pop(),t.push(s),t.push("INSIDE_NUMBER");break;case"{":a=o,t.pop(),t.push(s),t.push("INSIDE_OBJECT_START");break;case"[":a=o,t.pop(),t.push(s),t.push("INSIDE_ARRAY_START")}}function s(e,r){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":a=r,t.pop()}}function i(e,r){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":a=r,t.pop()}}for(let n=0;n<e.length;n++){let l=e[n];switch(t[t.length-1]){case"ROOT":o(l,n,"FINISH");break;case"INSIDE_OBJECT_START":switch(l){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":a=n,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break;case"INSIDE_OBJECT_KEY":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break;case"INSIDE_OBJECT_AFTER_KEY":":"===l&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":o(l,n,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":s(l,n);break;case"INSIDE_STRING":switch(l){case'"':t.pop(),a=n;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:a=n}break;case"INSIDE_ARRAY_START":"]"===l?(a=n,t.pop()):(a=n,o(l,n,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(l){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":a=n,t.pop();break;default:a=n}break;case"INSIDE_ARRAY_AFTER_COMMA":o(l,n,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),a=n;break;case"INSIDE_NUMBER":switch(l){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":a=n;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(l,n),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&s(l,n);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&s(l,n);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(l,n);break;default:t.pop()}break;case"INSIDE_LITERAL":{let o=e.substring(r,n+1);"false".startsWith(o)||"true".startsWith(o)||"null".startsWith(o)?a=n:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?s(l,n):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(l,n))}}}let n=e.slice(0,a+1);for(let a=t.length-1;a>=0;a--)switch(t[a]){case"INSIDE_STRING":n+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":n+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":n+="]";break;case"INSIDE_LITERAL":{let t=e.substring(r,e.length);"true".startsWith(t)?n+="true".slice(t.length):"false".startsWith(t)?n+="false".slice(t.length):"null".startsWith(t)&&(n+="null".slice(t.length))}}return n}(e)})).success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"}}var B=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),parseCompleteOutput:async({text:e})=>e,parsePartialOutput:async({text:e})=>({partial:e}),createElementStreamTransform(){}}),L=({schema:e,name:t,description:a})=>{let r=(0,s.mD)(e);return{name:"object",responseFormat:(0,s.hd)(r.jsonSchema).then(e=>({type:"json",schema:e,...null!=t&&{name:t},...null!=a&&{description:a}})),async parseCompleteOutput({text:e},t){let a=await (0,s.N8)({text:e});if(!a.success)throw new h({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let o=await (0,s.ZZ)({value:a.value,schema:r});if(!o.success)throw new h({message:"No object generated: response did not match schema.",cause:o.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return o.value},async parsePartialOutput({text:e}){let t=await q(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value}}},createElementStreamTransform(){}}},W=({element:e,name:t,description:a})=>{let r=(0,s.mD)(e);return{name:"array",responseFormat:(0,s.hd)(r.jsonSchema).then(e=>{let{$schema:r,...o}=e;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:o}},required:["elements"],additionalProperties:!1},...null!=t&&{name:t},...null!=a&&{description:a}}}),async parseCompleteOutput({text:e},t){let a=await (0,s.N8)({text:e});if(!a.success)throw new h({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let o=a.value;if(null==o||"object"!=typeof o||!("elements"in o)||!Array.isArray(o.elements))throw new h({message:"No object generated: response did not match schema.",cause:new i.iM({value:o,cause:"response must be an object with an elements array"}),text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});for(let a of o.elements){let o=await (0,s.ZZ)({value:a,schema:r});if(!o.success)throw new h({message:"No object generated: response did not match schema.",cause:o.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason})}return o.elements},async parsePartialOutput({text:e}){let t=await q(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let e=t.value;if(null==e||"object"!=typeof e||!("elements"in e)||!Array.isArray(e.elements))return;let a="repaired-parse"===t.state&&e.elements.length>0?e.elements.slice(0,-1):e.elements,o=[];for(let e of a){let t=await (0,s.ZZ)({value:e,schema:r});t.success&&o.push(t.value)}return{partial:o}}}},createElementStreamTransform(){let e=0;return new TransformStream({transform({partialOutput:t},a){if(null!=t)for(;e<t.length;e++)a.enqueue(t[e])}})}}},U=({options:e,name:t,description:a})=>({name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1},...null!=t&&{name:t},...null!=a&&{description:a}}),async parseCompleteOutput({text:t},a){let r=await (0,s.N8)({text:t});if(!r.success)throw new h({message:"No object generated: could not parse the response.",cause:r.error,text:t,response:a.response,usage:a.usage,finishReason:a.finishReason});let o=r.value;if(null==o||"object"!=typeof o||!("result"in o)||"string"!=typeof o.result||!e.includes(o.result))throw new h({message:"No object generated: response did not match schema.",cause:new i.iM({value:o,cause:"response must be an object that contains a choice value."}),text:t,response:a.response,usage:a.usage,finishReason:a.finishReason});return o.result},async parsePartialOutput({text:t}){let a=await q(t);switch(a.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let t=a.value;if(null==t||"object"!=typeof t||!("result"in t)||"string"!=typeof t.result)return;let r=e.filter(e=>e.startsWith(t.result));if("successful-parse"===a.state)return r.includes(t.result)?{partial:t.result}:void 0;return 1===r.length?{partial:r[0]}:void 0}}},createElementStreamTransform(){}}),J=({name:e,description:t}={})=>({name:"json",responseFormat:Promise.resolve({type:"json",...null!=e&&{name:e},...null!=t&&{description:t}}),async parseCompleteOutput({text:e},t){let a=await (0,s.N8)({text:e});if(!a.success)throw new h({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return a.value},async parsePartialOutput({text:e}){let t=await q(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return void 0===t.value?void 0:{partial:t.value}}},createElementStreamTransform(){}});(0,s.hK)({prefix:"aitxt",size:24}),TransformStream;var Y=(0,s.ID)(()=>(0,s.jN)(n.z.union([n.z.strictObject({type:n.z.literal("text-start"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("text-delta"),id:n.z.string(),delta:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("text-end"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("error"),errorText:n.z.string()}),n.z.strictObject({type:n.z.literal("tool-input-start"),toolCallId:n.z.string(),toolName:n.z.string(),providerExecuted:n.z.boolean().optional(),providerMetadata:E.optional(),dynamic:n.z.boolean().optional(),title:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("tool-input-delta"),toolCallId:n.z.string(),inputTextDelta:n.z.string()}),n.z.strictObject({type:n.z.literal("tool-input-available"),toolCallId:n.z.string(),toolName:n.z.string(),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),providerMetadata:E.optional(),dynamic:n.z.boolean().optional(),title:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("tool-input-error"),toolCallId:n.z.string(),toolName:n.z.string(),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),providerMetadata:E.optional(),dynamic:n.z.boolean().optional(),errorText:n.z.string(),title:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("tool-approval-request"),approvalId:n.z.string(),toolCallId:n.z.string()}),n.z.strictObject({type:n.z.literal("tool-output-available"),toolCallId:n.z.string(),output:n.z.unknown(),providerExecuted:n.z.boolean().optional(),dynamic:n.z.boolean().optional(),preliminary:n.z.boolean().optional()}),n.z.strictObject({type:n.z.literal("tool-output-error"),toolCallId:n.z.string(),errorText:n.z.string(),providerExecuted:n.z.boolean().optional(),dynamic:n.z.boolean().optional()}),n.z.strictObject({type:n.z.literal("tool-output-denied"),toolCallId:n.z.string()}),n.z.strictObject({type:n.z.literal("reasoning-start"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("reasoning-delta"),id:n.z.string(),delta:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("reasoning-end"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("source-url"),sourceId:n.z.string(),url:n.z.string(),title:n.z.string().optional(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("source-document"),sourceId:n.z.string(),mediaType:n.z.string(),title:n.z.string(),filename:n.z.string().optional(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("file"),url:n.z.string(),mediaType:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.custom(e=>"string"==typeof e&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:n.z.string().optional(),data:n.z.unknown(),transient:n.z.boolean().optional()}),n.z.strictObject({type:n.z.literal("start-step")}),n.z.strictObject({type:n.z.literal("finish-step")}),n.z.strictObject({type:n.z.literal("start"),messageId:n.z.string().optional(),messageMetadata:n.z.unknown().optional()}),n.z.strictObject({type:n.z.literal("finish"),finishReason:n.z.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:n.z.unknown().optional()}),n.z.strictObject({type:n.z.literal("abort"),reason:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("message-metadata"),messageMetadata:n.z.unknown()})])));function $(e){return e.type.startsWith("tool-")}function V(e){return $(e)||"dynamic-tool"===e.type}function G(e){return e.type.split("-").slice(1).join("-")}async function K({stream:e,onError:t}){let a=e.getReader();try{for(;;){let{done:e}=await a.read();if(e)break}}catch(e){null==t||t(e)}finally{a.releaseLock()}}function Z(e){return({url:t,abortSignal:a})=>y({url:t,maxBytes:null==e?void 0:e.maxBytes,abortSignal:a})}(0,s.hK)({prefix:"aitxt",size:24}),(0,s.ID)(()=>(0,s.jN)(n.z.array(n.z.object({id:n.z.string(),role:n.z.enum(["system","user","assistant"]),metadata:n.z.unknown().optional(),parts:n.z.array(n.z.union([n.z.object({type:n.z.literal("text"),text:n.z.string(),state:n.z.enum(["streaming","done"]).optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("reasoning"),text:n.z.string(),state:n.z.enum(["streaming","done"]).optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("source-url"),sourceId:n.z.string(),url:n.z.string(),title:n.z.string().optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("source-document"),sourceId:n.z.string(),mediaType:n.z.string(),title:n.z.string(),filename:n.z.string().optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("file"),mediaType:n.z.string(),filename:n.z.string().optional(),url:n.z.string(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("step-start")}),n.z.object({type:n.z.string().startsWith("data-"),id:n.z.string().optional(),data:n.z.unknown()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("input-streaming"),input:n.z.unknown().optional(),providerExecuted:n.z.boolean().optional(),callProviderMetadata:E.optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("input-available"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("approval-requested"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.never().optional(),reason:n.z.never().optional()})}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("approval-responded"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.boolean(),reason:n.z.string().optional()})}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("output-available"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.unknown(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),preliminary:n.z.boolean().optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("output-error"),input:n.z.unknown(),rawInput:n.z.unknown().optional(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.string(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("output-denied"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!1),reason:n.z.string().optional()})}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("input-streaming"),providerExecuted:n.z.boolean().optional(),callProviderMetadata:E.optional(),input:n.z.unknown().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("input-available"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("approval-requested"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.never().optional(),reason:n.z.never().optional()})}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("approval-responded"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.boolean(),reason:n.z.string().optional()})}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("output-available"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),output:n.z.unknown(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),preliminary:n.z.boolean().optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("output-error"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),rawInput:n.z.unknown().optional(),output:n.z.never().optional(),errorText:n.z.string(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("output-denied"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!1),reason:n.z.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty"))),(0,s.hK)({prefix:"aiobj",size:24});var Q=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,a)=>{this.queue.push(async()=>{try{await e(),t()}catch(e){a(e)}}),this.processQueue()})}};(0,s.hK)({prefix:"aiobj",size:24}),Z();Symbol.for("vercel.ai.error.AI_NoSuchProviderError");async function H(e){if(null==e)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async e=>{let{name:t,type:a}=e;return{type:"file",mediaType:a,filename:t,url:await new Promise((t,a)=>{let r=new FileReader;r.onload=e=>{var a;t(null==(a=e.target)?void 0:a.result)},r.onerror=e=>a(e),r.readAsDataURL(e)})}}))}i.eM,Z();var X=class{constructor({api:e="/api/chat",credentials:t,headers:a,body:r,fetch:o,prepareSendMessagesRequest:s,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=a,this.body=r,this.fetch=o,this.prepareSendMessagesRequest=s,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var a,r,o,i,n;let l=await (0,s.hd)(this.body),p=await (0,s.hd)(this.headers),d=await (0,s.hd)(this.credentials),u={...(0,s.qx)(p),...(0,s.qx)(t.headers)},c=await (null==(a=this.prepareSendMessagesRequest)?void 0:a.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...l,...t.body},headers:u,credentials:d,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),h=null!=(r=null==c?void 0:c.api)?r:this.api,m=(null==c?void 0:c.headers)!==void 0?(0,s.qx)(c.headers):u,g=(null==c?void 0:c.body)!==void 0?c.body:{...l,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},z=null!=(o=null==c?void 0:c.credentials)?o:d,v=null!=(i=this.fetch)?i:globalThis.fetch,y=await v(h,{method:"POST",headers:(0,s.WZ)({"Content-Type":"application/json",...m},`ai-sdk/${b}`,(0,s.G1)()),body:JSON.stringify(g),credentials:z,signal:e});if(!y.ok)throw Error(null!=(n=await y.text())?n:"Failed to fetch the chat response.");if(!y.body)throw Error("The response body is empty.");return this.processResponseStream(y.body)}async reconnectToStream(e){var t,a,r,o,i;let n=await (0,s.hd)(this.body),l=await (0,s.hd)(this.headers),p=await (0,s.hd)(this.credentials),d={...(0,s.qx)(l),...(0,s.qx)(e.headers)},u=await (null==(t=this.prepareReconnectToStreamRequest)?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...n,...e.body},headers:d,credentials:p,requestMetadata:e.metadata})),c=null!=(a=null==u?void 0:u.api)?a:`${this.api}/${e.chatId}/stream`,h=(null==u?void 0:u.headers)!==void 0?(0,s.qx)(u.headers):d,m=null!=(r=null==u?void 0:u.credentials)?r:p,g=null!=(o=this.fetch)?o:globalThis.fetch,z=await g(c,{method:"GET",headers:(0,s.WZ)(h,`ai-sdk/${b}`,(0,s.G1)()),credentials:m});if(204===z.status)return null;if(!z.ok)throw Error(null!=(i=await z.text())?i:"Failed to fetch the chat response.");if(!z.body)throw Error("The response body is empty.");return this.processResponseStream(z.body)}},ee=class extends X{constructor(e={}){super(e)}processResponseStream(e){return(0,s._Z)({stream:e,schema:Y}).pipeThrough(new TransformStream({async transform(e,t){if(!e.success)throw e.error;t.enqueue(e.value)}}))}},et=class{constructor({generateId:e=s.$C,id:t=e(),transport:a=new ee,messageMetadataSchema:r,dataPartSchemas:o,state:i,onError:n,onToolCall:l,onFinish:p,onData:d,sendAutomaticallyWhen:u}){this.activeResponse=void 0,this.jobExecutor=new Q,this.sendMessage=async(e,t)=>{var a,r,o,s;let i;if(null==e)return void await this.makeRequest({trigger:"submit-message",messageId:null==(a=this.lastMessage)?void 0:a.id,...t});if(i="text"in e||"files"in e?{parts:[...Array.isArray(e.files)?e.files:await H(e.files),..."text"in e&&null!=e.text?[{type:"text",text:e.text}]:[]]}:e,null!=e.messageId){let t=this.state.messages.findIndex(t=>t.id===e.messageId);if(-1===t)throw Error(`message with id ${e.messageId} not found`);if("user"!==this.state.messages[t].role)throw Error(`message with id ${e.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,t+1),this.state.replaceMessage(t,{...i,id:e.messageId,role:null!=(r=i.role)?r:"user",metadata:e.metadata})}else this.state.pushMessage({...i,id:null!=(o=i.id)?o:this.generateId(),role:null!=(s=i.role)?s:"user",metadata:e.metadata});await this.makeRequest({trigger:"submit-message",messageId:e.messageId,...t})},this.regenerate=async({messageId:e,...t}={})=>{let a=null==e?this.state.messages.length-1:this.state.messages.findIndex(t=>t.id===e);if(-1===a)throw Error(`message ${e} not found`);this.state.messages=this.state.messages.slice(0,"assistant"===this.messages[a].role?a:a+1),await this.makeRequest({trigger:"regenerate-message",messageId:e,...t})},this.resumeStream=async(e={})=>{await this.makeRequest({trigger:"resume-stream",...e})},this.clearError=()=>{"error"===this.status&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:e,approved:t,reason:a})=>this.jobExecutor.run(async()=>{let r=this.state.messages,o=r[r.length-1],s=r=>V(r)&&"approval-requested"===r.state&&r.approval.id===e?{...r,state:"approval-responded",approval:{id:e,approved:t,reason:a}}:r;this.state.replaceMessage(r.length-1,{...o,parts:o.parts.map(s)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(s)),"streaming"!==this.status&&"submitted"!==this.status&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(e=>{var t;e&&this.makeRequest({trigger:"submit-message",messageId:null==(t=this.lastMessage)?void 0:t.id})})}),this.addToolOutput=async({state:e="output-available",tool:t,toolCallId:a,output:r,errorText:o})=>this.jobExecutor.run(async()=>{let t=this.state.messages,s=t[t.length-1],i=t=>V(t)&&t.toolCallId===a?{...t,state:e,output:r,errorText:o}:t;this.state.replaceMessage(t.length-1,{...s,parts:s.parts.map(i)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(i)),"streaming"!==this.status&&"submitted"!==this.status&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(e=>{var t;e&&this.makeRequest({trigger:"submit-message",messageId:null==(t=this.lastMessage)?void 0:t.id})})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var e;("streaming"===this.status||"submitted"===this.status)&&(null==(e=this.activeResponse)?void 0:e.abortController)&&this.activeResponse.abortController.abort()},this.id=t,this.transport=a,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=o,this.state=i,this.onError=n,this.onToolCall=l,this.onFinish=p,this.onData=d,this.sendAutomaticallyWhen=u}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async shouldSendAutomatically(){if(!this.sendAutomaticallyWhen)return!1;let e=this.sendAutomaticallyWhen({messages:this.state.messages});return e&&"object"==typeof e&&"then"in e?await e:e}async makeRequest({trigger:e,metadata:t,headers:a,body:r,messageId:o}){var i,n,l;this.setStatus({status:"submitted",error:void 0});let p=this.lastMessage,d=!1,u=!1,c=!1;try{let i,n={state:function({lastMessage:e,messageId:t}){return{message:(null==e?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}({lastMessage:this.state.snapshot(p),messageId:this.generateId()}),abortController:new AbortController};if(n.abortController.signal.addEventListener("abort",()=>{d=!0}),this.activeResponse=n,"resume-stream"===e){let e=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:a,body:r});if(null==e)return void this.setStatus({status:"ready"});i=e}else i=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:n.abortController.signal,metadata:t,headers:a,body:r,trigger:e,messageId:o});let l=e=>this.jobExecutor.run(()=>e({state:n.state,write:()=>{var e;this.setStatus({status:"streaming"}),n.state.message.id===(null==(e=this.lastMessage)?void 0:e.id)?this.state.replaceMessage(this.state.messages.length-1,n.state.message):this.state.pushMessage(n.state.message)}}));await K({stream:function({stream:e,messageMetadataSchema:t,dataPartSchemas:a,runUpdateMessageJob:r,onError:o,onToolCall:i,onData:n}){return e.pipeThrough(new TransformStream({async transform(e,l){await r(async({state:r,write:p})=>{var d,u,c,h;function m(e){let t=r.message.parts.filter(V).find(t=>t.toolCallId===e);if(null==t)throw new v({chunkType:"tool-invocation",chunkId:e,message:`No tool invocation found for tool call ID "${e}".`});return t}function g(e){var t;let a=r.message.parts.find(t=>$(t)&&t.toolCallId===e.toolCallId);null!=a?(a.state=e.state,a.input=e.input,a.output=e.output,a.errorText=e.errorText,a.rawInput=e.rawInput,a.preliminary=e.preliminary,void 0!==e.title&&(a.title=e.title),a.providerExecuted=null!=(t=e.providerExecuted)?t:a.providerExecuted,null!=e.providerMetadata&&(a.callProviderMetadata=e.providerMetadata)):r.message.parts.push({type:`tool-${e.toolName}`,toolCallId:e.toolCallId,state:e.state,title:e.title,input:e.input,output:e.output,rawInput:e.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,preliminary:e.preliminary,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}function z(e){var t,a;let o=r.message.parts.find(t=>"dynamic-tool"===t.type&&t.toolCallId===e.toolCallId);null!=o?(o.state=e.state,o.toolName=e.toolName,o.input=e.input,o.output=e.output,o.errorText=e.errorText,o.rawInput=null!=(t=e.rawInput)?t:o.rawInput,o.preliminary=e.preliminary,void 0!==e.title&&(o.title=e.title),o.providerExecuted=null!=(a=e.providerExecuted)?a:o.providerExecuted,null!=e.providerMetadata&&(o.callProviderMetadata=e.providerMetadata)):r.message.parts.push({type:"dynamic-tool",toolName:e.toolName,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,errorText:e.errorText,preliminary:e.preliminary,providerExecuted:e.providerExecuted,title:e.title,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}async function b(e){if(null!=e){let a=null!=r.message.metadata?function e(t,a){if(void 0===t&&void 0===a)return;if(void 0===t)return a;if(void 0===a)return t;let r={...t};for(let o in a)if(Object.prototype.hasOwnProperty.call(a,o)){let s=a[o];if(void 0===s)continue;let i=o in t?t[o]:void 0,n=null!==s&&"object"==typeof s&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),l=null!=i&&"object"==typeof i&&!Array.isArray(i)&&!(i instanceof Date)&&!(i instanceof RegExp);n&&l?r[o]=e(i,s):r[o]=s}return r}(r.message.metadata,e):e;null!=t&&await (0,s.k5)({value:a,schema:t,context:{field:"message.metadata",entityId:r.message.id}}),r.message.metadata=a}}switch(e.type){case"text-start":{let t={type:"text",text:"",providerMetadata:e.providerMetadata,state:"streaming"};r.activeTextParts[e.id]=t,r.message.parts.push(t),p();break}case"text-delta":{let t=r.activeTextParts[e.id];if(null==t)throw new v({chunkType:"text-delta",chunkId:e.id,message:`Received text-delta for missing text part with ID "${e.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});t.text+=e.delta,t.providerMetadata=null!=(d=e.providerMetadata)?d:t.providerMetadata,p();break}case"text-end":{let t=r.activeTextParts[e.id];if(null==t)throw new v({chunkType:"text-end",chunkId:e.id,message:`Received text-end for missing text part with ID "${e.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});t.state="done",t.providerMetadata=null!=(u=e.providerMetadata)?u:t.providerMetadata,delete r.activeTextParts[e.id],p();break}case"reasoning-start":{let t={type:"reasoning",text:"",providerMetadata:e.providerMetadata,state:"streaming"};r.activeReasoningParts[e.id]=t,r.message.parts.push(t),p();break}case"reasoning-delta":{let t=r.activeReasoningParts[e.id];if(null==t)throw new v({chunkType:"reasoning-delta",chunkId:e.id,message:`Received reasoning-delta for missing reasoning part with ID "${e.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});t.text+=e.delta,t.providerMetadata=null!=(c=e.providerMetadata)?c:t.providerMetadata,p();break}case"reasoning-end":{let t=r.activeReasoningParts[e.id];if(null==t)throw new v({chunkType:"reasoning-end",chunkId:e.id,message:`Received reasoning-end for missing reasoning part with ID "${e.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});t.providerMetadata=null!=(h=e.providerMetadata)?h:t.providerMetadata,t.state="done",delete r.activeReasoningParts[e.id],p();break}case"file":r.message.parts.push({type:"file",mediaType:e.mediaType,url:e.url}),p();break;case"source-url":r.message.parts.push({type:"source-url",sourceId:e.sourceId,url:e.url,title:e.title,providerMetadata:e.providerMetadata}),p();break;case"source-document":r.message.parts.push({type:"source-document",sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename,providerMetadata:e.providerMetadata}),p();break;case"tool-input-start":{let t=r.message.parts.filter($);r.partialToolCalls[e.toolCallId]={text:"",toolName:e.toolName,index:t.length,dynamic:e.dynamic,title:e.title},e.dynamic?z({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted,title:e.title,providerMetadata:e.providerMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted,title:e.title,providerMetadata:e.providerMetadata}),p();break}case"tool-input-delta":{let t=r.partialToolCalls[e.toolCallId];if(null==t)throw new v({chunkType:"tool-input-delta",chunkId:e.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${e.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});t.text+=e.inputTextDelta;let{value:a}=await q(t.text);t.dynamic?z({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:a,title:t.title}):g({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:a,title:t.title}),p();break}case"tool-input-available":e.dynamic?z({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:e.title}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:e.title}),p(),i&&!e.providerExecuted&&await i({toolCall:e});break;case"tool-input-error":e.dynamic?z({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:void 0,rawInput:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),p();break;case"tool-approval-request":{let t=m(e.toolCallId);t.state="approval-requested",t.approval={id:e.approvalId},p();break}case"tool-output-denied":m(e.toolCallId).state="output-denied",p();break;case"tool-output-available":{let t=m(e.toolCallId);"dynamic-tool"===t.type?z({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-available",input:t.input,output:e.output,preliminary:e.preliminary,providerExecuted:e.providerExecuted,title:t.title}):g({toolCallId:e.toolCallId,toolName:G(t),state:"output-available",input:t.input,output:e.output,providerExecuted:e.providerExecuted,preliminary:e.preliminary,title:t.title}),p();break}case"tool-output-error":{let t=m(e.toolCallId);"dynamic-tool"===t.type?z({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-error",input:t.input,errorText:e.errorText,providerExecuted:e.providerExecuted,title:t.title}):g({toolCallId:e.toolCallId,toolName:G(t),state:"output-error",input:t.input,rawInput:t.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,title:t.title}),p();break}case"start-step":r.message.parts.push({type:"step-start"});break;case"finish-step":r.activeTextParts={},r.activeReasoningParts={};break;case"start":null!=e.messageId&&(r.message.id=e.messageId),await b(e.messageMetadata),(null!=e.messageId||null!=e.messageMetadata)&&p();break;case"finish":null!=e.finishReason&&(r.finishReason=e.finishReason),await b(e.messageMetadata),null!=e.messageMetadata&&p();break;case"message-metadata":await b(e.messageMetadata),null!=e.messageMetadata&&p();break;case"error":null==o||o(Error(e.errorText));break;default:if(e.type.startsWith("data-")){if((null==a?void 0:a[e.type])!=null){let t=r.message.parts.findIndex(t=>"id"in t&&"data"in t&&t.id===e.id&&t.type===e.type),o=t>=0?t:r.message.parts.length;await (0,s.k5)({value:e.data,schema:a[e.type],context:{field:`message.parts[${o}].data`,entityName:e.type,entityId:e.id}})}if(e.transient){null==n||n(e);break}let t=null!=e.id?r.message.parts.find(t=>e.type===t.type&&e.id===t.id):void 0;null!=t?t.data=e.data:r.message.parts.push(e),null==n||n(e),p()}}l.enqueue(e)})}}))}({stream:i,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:l,onError:e=>{throw e}}),onError:e=>{throw e}}),this.setStatus({status:"ready"})}catch(e){if(d||"AbortError"===e.name)return d=!0,this.setStatus({status:"ready"}),null;c=!0,e instanceof TypeError&&(e.message.toLowerCase().includes("fetch")||e.message.toLowerCase().includes("network"))&&(u=!0),this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e})}finally{try{null==(n=this.onFinish)||n.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:d,isDisconnect:u,isError:c,finishReason:null==(i=this.activeResponse)?void 0:i.state.finishReason})}catch(e){console.error(e)}this.activeResponse=void 0}!c&&await this.shouldSendAutomatically()&&await this.makeRequest({trigger:"submit-message",messageId:null==(l=this.lastMessage)?void 0:l.id,metadata:t,headers:a,body:r})}}}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8803],{86726:(e,t,a)=>{a.d(t,{rL:()=>ee,vl:()=>et});var r,o,s=a(67506),i=a(13897),n=a(44916);a(41463);var l=Object.defineProperty,p=Symbol.for("vercel.ai.error.AI_InvalidArgumentError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidStreamPartError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidToolApprovalError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidToolInputError");i.bD;Symbol.for("vercel.ai.error.AI_ToolCallNotFoundForApprovalError");i.bD;Symbol.for("vercel.ai.error.AI_MissingToolResultsError");i.bD;Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");i.bD;var d="AI_NoObjectGeneratedError",u=`vercel.ai.error.${d}`,c=Symbol.for(u),h=class extends i.bD{constructor({message:e="No object generated.",cause:t,text:a,response:o,usage:s,finishReason:i}){super({name:d,message:e,cause:t}),this[r]=!0,this.text=a,this.response=o,this.usage=s,this.finishReason=i}static isInstance(e){return i.bD.hasMarker(e,u)}};r=c;Symbol.for("vercel.ai.error.AI_NoOutputGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoSpeechGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoTranscriptGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoVideoGeneratedError");i.bD;Symbol.for("vercel.ai.error.AI_NoSuchToolError");i.bD;Symbol.for("vercel.ai.error.AI_ToolCallRepairError");i.bD,i.bD;var m="AI_UIMessageStreamError",g=`vercel.ai.error.${m}`,z=Symbol.for(g),v=class extends i.bD{constructor({chunkType:e,chunkId:t,message:a}){super({name:m,message:a}),this[o]=!0,this.chunkType=e,this.chunkId=t}static isInstance(e){return i.bD.hasMarker(e,g)}};o=z;Symbol.for("vercel.ai.error.AI_InvalidDataContentError");i.bD;Symbol.for("vercel.ai.error.AI_InvalidMessageRoleError");i.bD;Symbol.for("vercel.ai.error.AI_MessageConversionError");i.bD;Symbol.for("vercel.ai.error.AI_RetryError");i.bD;var b="6.0.89",y=async({url:e,maxBytes:t,abortSignal:a})=>{var r;let o=e.toString();try{let e=await fetch(o,{headers:(0,s.WZ)({},`ai-sdk/${b}`,(0,s.G1)()),signal:a});if(!e.ok)throw new s.nV({url:o,statusCode:e.status,statusText:e.statusText});return{data:await (0,s.cS)({response:e,url:o,maxBytes:null!=t?t:s.W}),mediaType:null!=(r=e.headers.get("content-type"))?r:void 0}}catch(e){if(s.nV.isInstance(e))throw e;throw new s.nV({url:o,cause:e})}},I=n.z.union([n.z.string(),n.z.instanceof(Uint8Array),n.z.instanceof(ArrayBuffer),n.z.custom(e=>{var t,a;return null!=(a=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&a},{message:"Must be a Buffer"})]),f=n.z.lazy(()=>n.z.union([n.z.null(),n.z.string(),n.z.number(),n.z.boolean(),n.z.record(n.z.string(),f.optional()),n.z.array(f)])),E=n.z.record(n.z.string(),n.z.record(n.z.string(),f.optional())),x=n.z.object({type:n.z.literal("text"),text:n.z.string(),providerOptions:E.optional()}),T=n.z.object({type:n.z.literal("image"),image:n.z.union([I,n.z.instanceof(URL)]),mediaType:n.z.string().optional(),providerOptions:E.optional()}),w=n.z.object({type:n.z.literal("file"),data:n.z.union([I,n.z.instanceof(URL)]),filename:n.z.string().optional(),mediaType:n.z.string(),providerOptions:E.optional()}),R=n.z.object({type:n.z.literal("reasoning"),text:n.z.string(),providerOptions:E.optional()}),M=n.z.object({type:n.z.literal("tool-call"),toolCallId:n.z.string(),toolName:n.z.string(),input:n.z.unknown(),providerOptions:E.optional(),providerExecuted:n.z.boolean().optional()}),_=n.z.discriminatedUnion("type",[n.z.object({type:n.z.literal("text"),value:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("json"),value:f,providerOptions:E.optional()}),n.z.object({type:n.z.literal("execution-denied"),reason:n.z.string().optional(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("error-text"),value:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("error-json"),value:f,providerOptions:E.optional()}),n.z.object({type:n.z.literal("content"),value:n.z.array(n.z.union([n.z.object({type:n.z.literal("text"),text:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("media"),data:n.z.string(),mediaType:n.z.string()}),n.z.object({type:n.z.literal("file-data"),data:n.z.string(),mediaType:n.z.string(),filename:n.z.string().optional(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("file-url"),url:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("file-id"),fileId:n.z.union([n.z.string(),n.z.record(n.z.string(),n.z.string())]),providerOptions:E.optional()}),n.z.object({type:n.z.literal("image-data"),data:n.z.string(),mediaType:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("image-url"),url:n.z.string(),providerOptions:E.optional()}),n.z.object({type:n.z.literal("image-file-id"),fileId:n.z.union([n.z.string(),n.z.record(n.z.string(),n.z.string())]),providerOptions:E.optional()}),n.z.object({type:n.z.literal("custom"),providerOptions:E.optional()})]))})]),k=n.z.object({type:n.z.literal("tool-result"),toolCallId:n.z.string(),toolName:n.z.string(),output:_,providerOptions:E.optional()}),A=n.z.object({type:n.z.literal("tool-approval-request"),approvalId:n.z.string(),toolCallId:n.z.string()}),j=n.z.object({type:n.z.literal("tool-approval-response"),approvalId:n.z.string(),approved:n.z.boolean(),reason:n.z.string().optional()}),S=n.z.object({role:n.z.literal("system"),content:n.z.string(),providerOptions:E.optional()}),N=n.z.object({role:n.z.literal("user"),content:n.z.union([n.z.string(),n.z.array(n.z.union([x,T,w]))]),providerOptions:E.optional()}),C=n.z.object({role:n.z.literal("assistant"),content:n.z.union([n.z.string(),n.z.array(n.z.union([x,w,R,M,k,A]))]),providerOptions:E.optional()}),O=n.z.object({role:n.z.literal("tool"),content:n.z.array(n.z.union([k,j])),providerOptions:E.optional()});n.z.union([S,N,C,O]);var D={},P={array:()=>W,choice:()=>U,json:()=>J,object:()=>L,text:()=>B};for(var F in P)l(D,F,{get:P[F],enumerable:!0});async function q(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await (0,s.N8)({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await (0,s.N8)({text:function(e){let t=["ROOT"],a=-1,r=null;function o(e,o,s){switch(e){case'"':a=o,t.pop(),t.push(s),t.push("INSIDE_STRING");break;case"f":case"t":case"n":a=o,r=o,t.pop(),t.push(s),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(s),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":a=o,t.pop(),t.push(s),t.push("INSIDE_NUMBER");break;case"{":a=o,t.pop(),t.push(s),t.push("INSIDE_OBJECT_START");break;case"[":a=o,t.pop(),t.push(s),t.push("INSIDE_ARRAY_START")}}function s(e,r){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":a=r,t.pop()}}function i(e,r){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":a=r,t.pop()}}for(let n=0;n<e.length;n++){let l=e[n];switch(t[t.length-1]){case"ROOT":o(l,n,"FINISH");break;case"INSIDE_OBJECT_START":switch(l){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":a=n,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break;case"INSIDE_OBJECT_KEY":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break;case"INSIDE_OBJECT_AFTER_KEY":":"===l&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":o(l,n,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":s(l,n);break;case"INSIDE_STRING":switch(l){case'"':t.pop(),a=n;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:a=n}break;case"INSIDE_ARRAY_START":"]"===l?(a=n,t.pop()):(a=n,o(l,n,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(l){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":a=n,t.pop();break;default:a=n}break;case"INSIDE_ARRAY_AFTER_COMMA":o(l,n,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),a=n;break;case"INSIDE_NUMBER":switch(l){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":a=n;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(l,n),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&s(l,n);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&s(l,n);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(l,n);break;default:t.pop()}break;case"INSIDE_LITERAL":{let o=e.substring(r,n+1);"false".startsWith(o)||"true".startsWith(o)||"null".startsWith(o)?a=n:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?s(l,n):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(l,n))}}}let n=e.slice(0,a+1);for(let a=t.length-1;a>=0;a--)switch(t[a]){case"INSIDE_STRING":n+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":n+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":n+="]";break;case"INSIDE_LITERAL":{let t=e.substring(r,e.length);"true".startsWith(t)?n+="true".slice(t.length):"false".startsWith(t)?n+="false".slice(t.length):"null".startsWith(t)&&(n+="null".slice(t.length))}}return n}(e)})).success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"}}var B=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),parseCompleteOutput:async({text:e})=>e,parsePartialOutput:async({text:e})=>({partial:e}),createElementStreamTransform(){}}),L=({schema:e,name:t,description:a})=>{let r=(0,s.mD)(e);return{name:"object",responseFormat:(0,s.hd)(r.jsonSchema).then(e=>({type:"json",schema:e,...null!=t&&{name:t},...null!=a&&{description:a}})),async parseCompleteOutput({text:e},t){let a=await (0,s.N8)({text:e});if(!a.success)throw new h({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let o=await (0,s.ZZ)({value:a.value,schema:r});if(!o.success)throw new h({message:"No object generated: response did not match schema.",cause:o.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return o.value},async parsePartialOutput({text:e}){let t=await q(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value}}},createElementStreamTransform(){}}},W=({element:e,name:t,description:a})=>{let r=(0,s.mD)(e);return{name:"array",responseFormat:(0,s.hd)(r.jsonSchema).then(e=>{let{$schema:r,...o}=e;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:o}},required:["elements"],additionalProperties:!1},...null!=t&&{name:t},...null!=a&&{description:a}}}),async parseCompleteOutput({text:e},t){let a=await (0,s.N8)({text:e});if(!a.success)throw new h({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let o=a.value;if(null==o||"object"!=typeof o||!("elements"in o)||!Array.isArray(o.elements))throw new h({message:"No object generated: response did not match schema.",cause:new i.iM({value:o,cause:"response must be an object with an elements array"}),text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});for(let a of o.elements){let o=await (0,s.ZZ)({value:a,schema:r});if(!o.success)throw new h({message:"No object generated: response did not match schema.",cause:o.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason})}return o.elements},async parsePartialOutput({text:e}){let t=await q(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let e=t.value;if(null==e||"object"!=typeof e||!("elements"in e)||!Array.isArray(e.elements))return;let a="repaired-parse"===t.state&&e.elements.length>0?e.elements.slice(0,-1):e.elements,o=[];for(let e of a){let t=await (0,s.ZZ)({value:e,schema:r});t.success&&o.push(t.value)}return{partial:o}}}},createElementStreamTransform(){let e=0;return new TransformStream({transform({partialOutput:t},a){if(null!=t)for(;e<t.length;e++)a.enqueue(t[e])}})}}},U=({options:e,name:t,description:a})=>({name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1},...null!=t&&{name:t},...null!=a&&{description:a}}),async parseCompleteOutput({text:t},a){let r=await (0,s.N8)({text:t});if(!r.success)throw new h({message:"No object generated: could not parse the response.",cause:r.error,text:t,response:a.response,usage:a.usage,finishReason:a.finishReason});let o=r.value;if(null==o||"object"!=typeof o||!("result"in o)||"string"!=typeof o.result||!e.includes(o.result))throw new h({message:"No object generated: response did not match schema.",cause:new i.iM({value:o,cause:"response must be an object that contains a choice value."}),text:t,response:a.response,usage:a.usage,finishReason:a.finishReason});return o.result},async parsePartialOutput({text:t}){let a=await q(t);switch(a.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let t=a.value;if(null==t||"object"!=typeof t||!("result"in t)||"string"!=typeof t.result)return;let r=e.filter(e=>e.startsWith(t.result));if("successful-parse"===a.state)return r.includes(t.result)?{partial:t.result}:void 0;return 1===r.length?{partial:r[0]}:void 0}}},createElementStreamTransform(){}}),J=({name:e,description:t}={})=>({name:"json",responseFormat:Promise.resolve({type:"json",...null!=e&&{name:e},...null!=t&&{description:t}}),async parseCompleteOutput({text:e},t){let a=await (0,s.N8)({text:e});if(!a.success)throw new h({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return a.value},async parsePartialOutput({text:e}){let t=await q(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return void 0===t.value?void 0:{partial:t.value}}},createElementStreamTransform(){}});(0,s.hK)({prefix:"aitxt",size:24}),TransformStream;var Y=(0,s.ID)(()=>(0,s.jN)(n.z.union([n.z.strictObject({type:n.z.literal("text-start"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("text-delta"),id:n.z.string(),delta:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("text-end"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("error"),errorText:n.z.string()}),n.z.strictObject({type:n.z.literal("tool-input-start"),toolCallId:n.z.string(),toolName:n.z.string(),providerExecuted:n.z.boolean().optional(),providerMetadata:E.optional(),dynamic:n.z.boolean().optional(),title:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("tool-input-delta"),toolCallId:n.z.string(),inputTextDelta:n.z.string()}),n.z.strictObject({type:n.z.literal("tool-input-available"),toolCallId:n.z.string(),toolName:n.z.string(),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),providerMetadata:E.optional(),dynamic:n.z.boolean().optional(),title:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("tool-input-error"),toolCallId:n.z.string(),toolName:n.z.string(),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),providerMetadata:E.optional(),dynamic:n.z.boolean().optional(),errorText:n.z.string(),title:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("tool-approval-request"),approvalId:n.z.string(),toolCallId:n.z.string()}),n.z.strictObject({type:n.z.literal("tool-output-available"),toolCallId:n.z.string(),output:n.z.unknown(),providerExecuted:n.z.boolean().optional(),dynamic:n.z.boolean().optional(),preliminary:n.z.boolean().optional()}),n.z.strictObject({type:n.z.literal("tool-output-error"),toolCallId:n.z.string(),errorText:n.z.string(),providerExecuted:n.z.boolean().optional(),dynamic:n.z.boolean().optional()}),n.z.strictObject({type:n.z.literal("tool-output-denied"),toolCallId:n.z.string()}),n.z.strictObject({type:n.z.literal("reasoning-start"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("reasoning-delta"),id:n.z.string(),delta:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("reasoning-end"),id:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("source-url"),sourceId:n.z.string(),url:n.z.string(),title:n.z.string().optional(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("source-document"),sourceId:n.z.string(),mediaType:n.z.string(),title:n.z.string(),filename:n.z.string().optional(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.literal("file"),url:n.z.string(),mediaType:n.z.string(),providerMetadata:E.optional()}),n.z.strictObject({type:n.z.custom(e=>"string"==typeof e&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:n.z.string().optional(),data:n.z.unknown(),transient:n.z.boolean().optional()}),n.z.strictObject({type:n.z.literal("start-step")}),n.z.strictObject({type:n.z.literal("finish-step")}),n.z.strictObject({type:n.z.literal("start"),messageId:n.z.string().optional(),messageMetadata:n.z.unknown().optional()}),n.z.strictObject({type:n.z.literal("finish"),finishReason:n.z.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:n.z.unknown().optional()}),n.z.strictObject({type:n.z.literal("abort"),reason:n.z.string().optional()}),n.z.strictObject({type:n.z.literal("message-metadata"),messageMetadata:n.z.unknown()})])));function $(e){return e.type.startsWith("tool-")}function V(e){return $(e)||"dynamic-tool"===e.type}function G(e){return e.type.split("-").slice(1).join("-")}async function K({stream:e,onError:t}){let a=e.getReader();try{for(;;){let{done:e}=await a.read();if(e)break}}catch(e){null==t||t(e)}finally{a.releaseLock()}}function Z(e){return({url:t,abortSignal:a})=>y({url:t,maxBytes:null==e?void 0:e.maxBytes,abortSignal:a})}(0,s.hK)({prefix:"aitxt",size:24}),(0,s.ID)(()=>(0,s.jN)(n.z.array(n.z.object({id:n.z.string(),role:n.z.enum(["system","user","assistant"]),metadata:n.z.unknown().optional(),parts:n.z.array(n.z.union([n.z.object({type:n.z.literal("text"),text:n.z.string(),state:n.z.enum(["streaming","done"]).optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("reasoning"),text:n.z.string(),state:n.z.enum(["streaming","done"]).optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("source-url"),sourceId:n.z.string(),url:n.z.string(),title:n.z.string().optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("source-document"),sourceId:n.z.string(),mediaType:n.z.string(),title:n.z.string(),filename:n.z.string().optional(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("file"),mediaType:n.z.string(),filename:n.z.string().optional(),url:n.z.string(),providerMetadata:E.optional()}),n.z.object({type:n.z.literal("step-start")}),n.z.object({type:n.z.string().startsWith("data-"),id:n.z.string().optional(),data:n.z.unknown()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("input-streaming"),input:n.z.unknown().optional(),providerExecuted:n.z.boolean().optional(),callProviderMetadata:E.optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("input-available"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("approval-requested"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.never().optional(),reason:n.z.never().optional()})}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("approval-responded"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.boolean(),reason:n.z.string().optional()})}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("output-available"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.unknown(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),preliminary:n.z.boolean().optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("output-error"),input:n.z.unknown(),rawInput:n.z.unknown().optional(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.string(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.literal("dynamic-tool"),toolName:n.z.string(),toolCallId:n.z.string(),state:n.z.literal("output-denied"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!1),reason:n.z.string().optional()})}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("input-streaming"),providerExecuted:n.z.boolean().optional(),callProviderMetadata:E.optional(),input:n.z.unknown().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("input-available"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.never().optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("approval-requested"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.never().optional(),reason:n.z.never().optional()})}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("approval-responded"),input:n.z.unknown(),providerExecuted:n.z.boolean().optional(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.boolean(),reason:n.z.string().optional()})}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("output-available"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),output:n.z.unknown(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),preliminary:n.z.boolean().optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("output-error"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),rawInput:n.z.unknown().optional(),output:n.z.never().optional(),errorText:n.z.string(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!0),reason:n.z.string().optional()}).optional()}),n.z.object({type:n.z.string().startsWith("tool-"),toolCallId:n.z.string(),state:n.z.literal("output-denied"),providerExecuted:n.z.boolean().optional(),input:n.z.unknown(),output:n.z.never().optional(),errorText:n.z.never().optional(),callProviderMetadata:E.optional(),approval:n.z.object({id:n.z.string(),approved:n.z.literal(!1),reason:n.z.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty"))),(0,s.hK)({prefix:"aiobj",size:24});var Q=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,a)=>{this.queue.push(async()=>{try{await e(),t()}catch(e){a(e)}}),this.processQueue()})}};(0,s.hK)({prefix:"aiobj",size:24}),Z();Symbol.for("vercel.ai.error.AI_NoSuchProviderError");async function H(e){if(null==e)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async e=>{let{name:t,type:a}=e;return{type:"file",mediaType:a,filename:t,url:await new Promise((t,a)=>{let r=new FileReader;r.onload=e=>{var a;t(null==(a=e.target)?void 0:a.result)},r.onerror=e=>a(e),r.readAsDataURL(e)})}}))}i.eM,Z();var X=class{constructor({api:e="/api/chat",credentials:t,headers:a,body:r,fetch:o,prepareSendMessagesRequest:s,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=a,this.body=r,this.fetch=o,this.prepareSendMessagesRequest=s,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var a,r,o,i,n;let l=await (0,s.hd)(this.body),p=await (0,s.hd)(this.headers),d=await (0,s.hd)(this.credentials),u={...(0,s.qx)(p),...(0,s.qx)(t.headers)},c=await (null==(a=this.prepareSendMessagesRequest)?void 0:a.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...l,...t.body},headers:u,credentials:d,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),h=null!=(r=null==c?void 0:c.api)?r:this.api,m=(null==c?void 0:c.headers)!==void 0?(0,s.qx)(c.headers):u,g=(null==c?void 0:c.body)!==void 0?c.body:{...l,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},z=null!=(o=null==c?void 0:c.credentials)?o:d,v=null!=(i=this.fetch)?i:globalThis.fetch,y=await v(h,{method:"POST",headers:(0,s.WZ)({"Content-Type":"application/json",...m},`ai-sdk/${b}`,(0,s.G1)()),body:JSON.stringify(g),credentials:z,signal:e});if(!y.ok)throw Error(null!=(n=await y.text())?n:"Failed to fetch the chat response.");if(!y.body)throw Error("The response body is empty.");return this.processResponseStream(y.body)}async reconnectToStream(e){var t,a,r,o,i;let n=await (0,s.hd)(this.body),l=await (0,s.hd)(this.headers),p=await (0,s.hd)(this.credentials),d={...(0,s.qx)(l),...(0,s.qx)(e.headers)},u=await (null==(t=this.prepareReconnectToStreamRequest)?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...n,...e.body},headers:d,credentials:p,requestMetadata:e.metadata})),c=null!=(a=null==u?void 0:u.api)?a:`${this.api}/${e.chatId}/stream`,h=(null==u?void 0:u.headers)!==void 0?(0,s.qx)(u.headers):d,m=null!=(r=null==u?void 0:u.credentials)?r:p,g=null!=(o=this.fetch)?o:globalThis.fetch,z=await g(c,{method:"GET",headers:(0,s.WZ)(h,`ai-sdk/${b}`,(0,s.G1)()),credentials:m});if(204===z.status)return null;if(!z.ok)throw Error(null!=(i=await z.text())?i:"Failed to fetch the chat response.");if(!z.body)throw Error("The response body is empty.");return this.processResponseStream(z.body)}},ee=class extends X{constructor(e={}){super(e)}processResponseStream(e){return(0,s._Z)({stream:e,schema:Y}).pipeThrough(new TransformStream({async transform(e,t){if(!e.success)throw e.error;t.enqueue(e.value)}}))}},et=class{constructor({generateId:e=s.$C,id:t=e(),transport:a=new ee,messageMetadataSchema:r,dataPartSchemas:o,state:i,onError:n,onToolCall:l,onFinish:p,onData:d,sendAutomaticallyWhen:u}){this.activeResponse=void 0,this.jobExecutor=new Q,this.sendMessage=async(e,t)=>{var a,r,o,s;let i;if(null==e)return void await this.makeRequest({trigger:"submit-message",messageId:null==(a=this.lastMessage)?void 0:a.id,...t});if(i="text"in e||"files"in e?{parts:[...Array.isArray(e.files)?e.files:await H(e.files),..."text"in e&&null!=e.text?[{type:"text",text:e.text}]:[]]}:e,null!=e.messageId){let t=this.state.messages.findIndex(t=>t.id===e.messageId);if(-1===t)throw Error(`message with id ${e.messageId} not found`);if("user"!==this.state.messages[t].role)throw Error(`message with id ${e.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,t+1),this.state.replaceMessage(t,{...i,id:e.messageId,role:null!=(r=i.role)?r:"user",metadata:e.metadata})}else this.state.pushMessage({...i,id:null!=(o=i.id)?o:this.generateId(),role:null!=(s=i.role)?s:"user",metadata:e.metadata});await this.makeRequest({trigger:"submit-message",messageId:e.messageId,...t})},this.regenerate=async({messageId:e,...t}={})=>{let a=null==e?this.state.messages.length-1:this.state.messages.findIndex(t=>t.id===e);if(-1===a)throw Error(`message ${e} not found`);this.state.messages=this.state.messages.slice(0,"assistant"===this.messages[a].role?a:a+1),await this.makeRequest({trigger:"regenerate-message",messageId:e,...t})},this.resumeStream=async(e={})=>{await this.makeRequest({trigger:"resume-stream",...e})},this.clearError=()=>{"error"===this.status&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:e,approved:t,reason:a})=>this.jobExecutor.run(async()=>{let r=this.state.messages,o=r[r.length-1],s=r=>V(r)&&"approval-requested"===r.state&&r.approval.id===e?{...r,state:"approval-responded",approval:{id:e,approved:t,reason:a}}:r;this.state.replaceMessage(r.length-1,{...o,parts:o.parts.map(s)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(s)),"streaming"!==this.status&&"submitted"!==this.status&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(e=>{var t;e&&this.makeRequest({trigger:"submit-message",messageId:null==(t=this.lastMessage)?void 0:t.id})})}),this.addToolOutput=async({state:e="output-available",tool:t,toolCallId:a,output:r,errorText:o})=>this.jobExecutor.run(async()=>{let t=this.state.messages,s=t[t.length-1],i=t=>V(t)&&t.toolCallId===a?{...t,state:e,output:r,errorText:o}:t;this.state.replaceMessage(t.length-1,{...s,parts:s.parts.map(i)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(i)),"streaming"!==this.status&&"submitted"!==this.status&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(e=>{var t;e&&this.makeRequest({trigger:"submit-message",messageId:null==(t=this.lastMessage)?void 0:t.id})})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var e;("streaming"===this.status||"submitted"===this.status)&&(null==(e=this.activeResponse)?void 0:e.abortController)&&this.activeResponse.abortController.abort()},this.id=t,this.transport=a,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=o,this.state=i,this.onError=n,this.onToolCall=l,this.onFinish=p,this.onData=d,this.sendAutomaticallyWhen=u}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async shouldSendAutomatically(){if(!this.sendAutomaticallyWhen)return!1;let e=this.sendAutomaticallyWhen({messages:this.state.messages});return e&&"object"==typeof e&&"then"in e?await e:e}async makeRequest({trigger:e,metadata:t,headers:a,body:r,messageId:o}){var i,n,l;this.setStatus({status:"submitted",error:void 0});let p=this.lastMessage,d=!1,u=!1,c=!1;try{let i,n={state:function({lastMessage:e,messageId:t}){return{message:(null==e?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}({lastMessage:this.state.snapshot(p),messageId:this.generateId()}),abortController:new AbortController};if(n.abortController.signal.addEventListener("abort",()=>{d=!0}),this.activeResponse=n,"resume-stream"===e){let e=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:a,body:r});if(null==e)return void this.setStatus({status:"ready"});i=e}else i=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:n.abortController.signal,metadata:t,headers:a,body:r,trigger:e,messageId:o});let l=e=>this.jobExecutor.run(()=>e({state:n.state,write:()=>{var e;this.setStatus({status:"streaming"}),n.state.message.id===(null==(e=this.lastMessage)?void 0:e.id)?this.state.replaceMessage(this.state.messages.length-1,n.state.message):this.state.pushMessage(n.state.message)}}));await K({stream:function({stream:e,messageMetadataSchema:t,dataPartSchemas:a,runUpdateMessageJob:r,onError:o,onToolCall:i,onData:n}){return e.pipeThrough(new TransformStream({async transform(e,l){await r(async({state:r,write:p})=>{var d,u,c,h;function m(e){let t=r.message.parts.filter(V).find(t=>t.toolCallId===e);if(null==t)throw new v({chunkType:"tool-invocation",chunkId:e,message:`No tool invocation found for tool call ID "${e}".`});return t}function g(e){var t;let a=r.message.parts.find(t=>$(t)&&t.toolCallId===e.toolCallId);null!=a?(a.state=e.state,a.input=e.input,a.output=e.output,a.errorText=e.errorText,a.rawInput=e.rawInput,a.preliminary=e.preliminary,void 0!==e.title&&(a.title=e.title),a.providerExecuted=null!=(t=e.providerExecuted)?t:a.providerExecuted,null!=e.providerMetadata&&(a.callProviderMetadata=e.providerMetadata)):r.message.parts.push({type:`tool-${e.toolName}`,toolCallId:e.toolCallId,state:e.state,title:e.title,input:e.input,output:e.output,rawInput:e.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,preliminary:e.preliminary,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}function z(e){var t,a;let o=r.message.parts.find(t=>"dynamic-tool"===t.type&&t.toolCallId===e.toolCallId);null!=o?(o.state=e.state,o.toolName=e.toolName,o.input=e.input,o.output=e.output,o.errorText=e.errorText,o.rawInput=null!=(t=e.rawInput)?t:o.rawInput,o.preliminary=e.preliminary,void 0!==e.title&&(o.title=e.title),o.providerExecuted=null!=(a=e.providerExecuted)?a:o.providerExecuted,null!=e.providerMetadata&&(o.callProviderMetadata=e.providerMetadata)):r.message.parts.push({type:"dynamic-tool",toolName:e.toolName,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,errorText:e.errorText,preliminary:e.preliminary,providerExecuted:e.providerExecuted,title:e.title,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}async function b(e){if(null!=e){let a=null!=r.message.metadata?function e(t,a){if(void 0===t&&void 0===a)return;if(void 0===t)return a;if(void 0===a)return t;let r={...t};for(let o in a)if(Object.prototype.hasOwnProperty.call(a,o)){let s=a[o];if(void 0===s)continue;let i=o in t?t[o]:void 0,n=null!==s&&"object"==typeof s&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),l=null!=i&&"object"==typeof i&&!Array.isArray(i)&&!(i instanceof Date)&&!(i instanceof RegExp);n&&l?r[o]=e(i,s):r[o]=s}return r}(r.message.metadata,e):e;null!=t&&await (0,s.k5)({value:a,schema:t,context:{field:"message.metadata",entityId:r.message.id}}),r.message.metadata=a}}switch(e.type){case"text-start":{let t={type:"text",text:"",providerMetadata:e.providerMetadata,state:"streaming"};r.activeTextParts[e.id]=t,r.message.parts.push(t),p();break}case"text-delta":{let t=r.activeTextParts[e.id];if(null==t)throw new v({chunkType:"text-delta",chunkId:e.id,message:`Received text-delta for missing text part with ID "${e.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});t.text+=e.delta,t.providerMetadata=null!=(d=e.providerMetadata)?d:t.providerMetadata,p();break}case"text-end":{let t=r.activeTextParts[e.id];if(null==t)throw new v({chunkType:"text-end",chunkId:e.id,message:`Received text-end for missing text part with ID "${e.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});t.state="done",t.providerMetadata=null!=(u=e.providerMetadata)?u:t.providerMetadata,delete r.activeTextParts[e.id],p();break}case"reasoning-start":{let t={type:"reasoning",text:"",providerMetadata:e.providerMetadata,state:"streaming"};r.activeReasoningParts[e.id]=t,r.message.parts.push(t),p();break}case"reasoning-delta":{let t=r.activeReasoningParts[e.id];if(null==t)throw new v({chunkType:"reasoning-delta",chunkId:e.id,message:`Received reasoning-delta for missing reasoning part with ID "${e.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});t.text+=e.delta,t.providerMetadata=null!=(c=e.providerMetadata)?c:t.providerMetadata,p();break}case"reasoning-end":{let t=r.activeReasoningParts[e.id];if(null==t)throw new v({chunkType:"reasoning-end",chunkId:e.id,message:`Received reasoning-end for missing reasoning part with ID "${e.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});t.providerMetadata=null!=(h=e.providerMetadata)?h:t.providerMetadata,t.state="done",delete r.activeReasoningParts[e.id],p();break}case"file":r.message.parts.push({type:"file",mediaType:e.mediaType,url:e.url}),p();break;case"source-url":r.message.parts.push({type:"source-url",sourceId:e.sourceId,url:e.url,title:e.title,providerMetadata:e.providerMetadata}),p();break;case"source-document":r.message.parts.push({type:"source-document",sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename,providerMetadata:e.providerMetadata}),p();break;case"tool-input-start":{let t=r.message.parts.filter($);r.partialToolCalls[e.toolCallId]={text:"",toolName:e.toolName,index:t.length,dynamic:e.dynamic,title:e.title},e.dynamic?z({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted,title:e.title,providerMetadata:e.providerMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted,title:e.title,providerMetadata:e.providerMetadata}),p();break}case"tool-input-delta":{let t=r.partialToolCalls[e.toolCallId];if(null==t)throw new v({chunkType:"tool-input-delta",chunkId:e.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${e.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});t.text+=e.inputTextDelta;let{value:a}=await q(t.text);t.dynamic?z({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:a,title:t.title}):g({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:a,title:t.title}),p();break}case"tool-input-available":e.dynamic?z({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:e.title}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:e.title}),p(),i&&!e.providerExecuted&&await i({toolCall:e});break;case"tool-input-error":e.dynamic?z({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:void 0,rawInput:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),p();break;case"tool-approval-request":{let t=m(e.toolCallId);t.state="approval-requested",t.approval={id:e.approvalId},p();break}case"tool-output-denied":m(e.toolCallId).state="output-denied",p();break;case"tool-output-available":{let t=m(e.toolCallId);"dynamic-tool"===t.type?z({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-available",input:t.input,output:e.output,preliminary:e.preliminary,providerExecuted:e.providerExecuted,title:t.title}):g({toolCallId:e.toolCallId,toolName:G(t),state:"output-available",input:t.input,output:e.output,providerExecuted:e.providerExecuted,preliminary:e.preliminary,title:t.title}),p();break}case"tool-output-error":{let t=m(e.toolCallId);"dynamic-tool"===t.type?z({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-error",input:t.input,errorText:e.errorText,providerExecuted:e.providerExecuted,title:t.title}):g({toolCallId:e.toolCallId,toolName:G(t),state:"output-error",input:t.input,rawInput:t.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,title:t.title}),p();break}case"start-step":r.message.parts.push({type:"step-start"});break;case"finish-step":r.activeTextParts={},r.activeReasoningParts={};break;case"start":null!=e.messageId&&(r.message.id=e.messageId),await b(e.messageMetadata),(null!=e.messageId||null!=e.messageMetadata)&&p();break;case"finish":null!=e.finishReason&&(r.finishReason=e.finishReason),await b(e.messageMetadata),null!=e.messageMetadata&&p();break;case"message-metadata":await b(e.messageMetadata),null!=e.messageMetadata&&p();break;case"error":null==o||o(Error(e.errorText));break;default:if(e.type.startsWith("data-")){if((null==a?void 0:a[e.type])!=null){let t=r.message.parts.findIndex(t=>"id"in t&&"data"in t&&t.id===e.id&&t.type===e.type),o=t>=0?t:r.message.parts.length;await (0,s.k5)({value:e.data,schema:a[e.type],context:{field:`message.parts[${o}].data`,entityName:e.type,entityId:e.id}})}if(e.transient){null==n||n(e);break}let t=null!=e.id?r.message.parts.find(t=>e.type===t.type&&e.id===t.id):void 0;null!=t?t.data=e.data:r.message.parts.push(e),null==n||n(e),p()}}l.enqueue(e)})}}))}({stream:i,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:l,onError:e=>{throw e}}),onError:e=>{throw e}}),this.setStatus({status:"ready"})}catch(e){if(d||"AbortError"===e.name)return d=!0,this.setStatus({status:"ready"}),null;c=!0,e instanceof TypeError&&(e.message.toLowerCase().includes("fetch")||e.message.toLowerCase().includes("network"))&&(u=!0),this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e})}finally{try{null==(n=this.onFinish)||n.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:d,isDisconnect:u,isError:c,finishReason:null==(i=this.activeResponse)?void 0:i.state.finishReason})}catch(e){console.error(e)}this.activeResponse=void 0}!c&&await this.shouldSendAutomatically()&&await this.makeRequest({trigger:"submit-message",messageId:null==(l=this.lastMessage)?void 0:l.id,metadata:t,headers:a,body:r})}}}}]);
|
package/bin/clawpad.js
CHANGED
|
@@ -25,6 +25,7 @@ const CRASH_LOG_PATH = path.join(CRASH_LOG_DIR, "launcher-crashes.log");
|
|
|
25
25
|
const BUNDLED_OPENCLAW_PLUGIN_DIR = path.join(ROOT_DIR, "openclaw-plugin");
|
|
26
26
|
const QMD_INSTALL_SCRIPT_URL =
|
|
27
27
|
"https://raw.githubusercontent.com/tobi/qmd/main/install.sh";
|
|
28
|
+
const MIN_OPENCLAW_VERSION = "0.3.0";
|
|
28
29
|
|
|
29
30
|
// ─── Arg Parsing ─────────────────────────────────────────
|
|
30
31
|
const args = process.argv.slice(2);
|
|
@@ -137,6 +138,33 @@ function lookupBinary(name) {
|
|
|
137
138
|
return pathLine || null;
|
|
138
139
|
}
|
|
139
140
|
|
|
141
|
+
function parseSemver(input) {
|
|
142
|
+
if (!input || typeof input !== "string") return null;
|
|
143
|
+
const match = input.match(/(\d+)\.(\d+)\.(\d+)/);
|
|
144
|
+
if (!match) return null;
|
|
145
|
+
return {
|
|
146
|
+
major: Number(match[1]),
|
|
147
|
+
minor: Number(match[2]),
|
|
148
|
+
patch: Number(match[3]),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function compareSemver(a, b) {
|
|
153
|
+
const parsedA = parseSemver(a);
|
|
154
|
+
const parsedB = parseSemver(b);
|
|
155
|
+
if (!parsedA || !parsedB) return 0;
|
|
156
|
+
if (parsedA.major !== parsedB.major) {
|
|
157
|
+
return parsedA.major > parsedB.major ? 1 : -1;
|
|
158
|
+
}
|
|
159
|
+
if (parsedA.minor !== parsedB.minor) {
|
|
160
|
+
return parsedA.minor > parsedB.minor ? 1 : -1;
|
|
161
|
+
}
|
|
162
|
+
if (parsedA.patch !== parsedB.patch) {
|
|
163
|
+
return parsedA.patch > parsedB.patch ? 1 : -1;
|
|
164
|
+
}
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
|
|
140
168
|
function getWindowsStateDirCandidates() {
|
|
141
169
|
if (process.platform !== "win32") return [];
|
|
142
170
|
const candidates = [
|
|
@@ -1193,6 +1221,15 @@ function hasOpenClawBinary() {
|
|
|
1193
1221
|
return runBinary("openclaw", ["--version"], { stdio: "ignore" }).ok;
|
|
1194
1222
|
}
|
|
1195
1223
|
|
|
1224
|
+
function getOpenClawVersion() {
|
|
1225
|
+
const result = runBinary("openclaw", ["--version"], { stdio: "pipe" });
|
|
1226
|
+
if (!result.ok) return { ok: false, version: null, raw: result.stderr || result.stdout || "" };
|
|
1227
|
+
const raw = (result.stdout || "").trim();
|
|
1228
|
+
const match = raw.match(/(\d+\.\d+\.\d+)/);
|
|
1229
|
+
const version = match ? match[1] : null;
|
|
1230
|
+
return { ok: true, version, raw };
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1196
1233
|
function maybeInstallOpenClawBinary(platformProfile, opts = {}) {
|
|
1197
1234
|
if (hasOpenClawBinary()) return { installed: true, attempted: false };
|
|
1198
1235
|
if (process.env.CLAWPAD_SKIP_OPENCLAW_INSTALL === "1") {
|
|
@@ -1203,7 +1240,9 @@ function maybeInstallOpenClawBinary(platformProfile, opts = {}) {
|
|
|
1203
1240
|
};
|
|
1204
1241
|
}
|
|
1205
1242
|
|
|
1206
|
-
const attemptInstall =
|
|
1243
|
+
const attemptInstall =
|
|
1244
|
+
opts.attemptInstall === true ||
|
|
1245
|
+
(opts.attemptInstall !== false && process.env.CLAWPAD_AUTO_INSTALL_OPENCLAW === "1");
|
|
1207
1246
|
const hints = [];
|
|
1208
1247
|
|
|
1209
1248
|
const runInstall = (command, args, label) => {
|
|
@@ -1235,6 +1274,11 @@ function maybeInstallOpenClawBinary(platformProfile, opts = {}) {
|
|
|
1235
1274
|
break;
|
|
1236
1275
|
|
|
1237
1276
|
case "windows-native":
|
|
1277
|
+
if (attemptInstall) {
|
|
1278
|
+
if (runInstall("npm", ["install", "-g", "openclaw"], "Installing OpenClaw via npm -g")) {
|
|
1279
|
+
return { installed: hasOpenClawBinary(), attempted: true };
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1238
1282
|
hints.push("Preferred: install WSL2 and run ClawPad inside WSL for full compatibility.");
|
|
1239
1283
|
hints.push("If you must stay native: `npm install -g openclaw` in an elevated PowerShell, then re-run `clawpad`.");
|
|
1240
1284
|
break;
|
|
@@ -1247,6 +1291,40 @@ function maybeInstallOpenClawBinary(platformProfile, opts = {}) {
|
|
|
1247
1291
|
return { installed: false, attempted: attemptInstall, hint: hints.join(" | ") };
|
|
1248
1292
|
}
|
|
1249
1293
|
|
|
1294
|
+
async function ensureOpenClawCli(platformProfile, options = {}) {
|
|
1295
|
+
const { autoYes = false, noPrompt = false } = options;
|
|
1296
|
+
|
|
1297
|
+
if (hasOpenClawBinary()) {
|
|
1298
|
+
const version = getOpenClawVersion();
|
|
1299
|
+
return {
|
|
1300
|
+
installed: true,
|
|
1301
|
+
attempted: false,
|
|
1302
|
+
version: version.version,
|
|
1303
|
+
rawVersion: version.raw,
|
|
1304
|
+
};
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
let consent = autoYes || process.env.CLAWPAD_AUTO_INSTALL_OPENCLAW === "1";
|
|
1308
|
+
if (!consent && !noPrompt) {
|
|
1309
|
+
consent = await promptYesNo("OpenClaw CLI not found. Install it now? [y/N] ");
|
|
1310
|
+
}
|
|
1311
|
+
|
|
1312
|
+
const installResult = consent
|
|
1313
|
+
? maybeInstallOpenClawBinary(platformProfile, { attemptInstall: true })
|
|
1314
|
+
: maybeInstallOpenClawBinary(platformProfile, { attemptInstall: false });
|
|
1315
|
+
|
|
1316
|
+
if (installResult.installed) {
|
|
1317
|
+
const version = getOpenClawVersion();
|
|
1318
|
+
return {
|
|
1319
|
+
...installResult,
|
|
1320
|
+
version: version.version,
|
|
1321
|
+
rawVersion: version.raw,
|
|
1322
|
+
};
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
return installResult;
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1250
1328
|
function detectQmdBinary() {
|
|
1251
1329
|
const qmdPath = lookupBinary("qmd");
|
|
1252
1330
|
if (qmdPath) return qmdPath;
|
|
@@ -1259,7 +1337,11 @@ function detectQmdBinary() {
|
|
|
1259
1337
|
return null;
|
|
1260
1338
|
}
|
|
1261
1339
|
|
|
1262
|
-
function ensureQmdInstalled() {
|
|
1340
|
+
function ensureQmdInstalled(platformProfile) {
|
|
1341
|
+
if (platformProfile?.id === "windows-native") {
|
|
1342
|
+
return { installed: false, path: null, skipped: true };
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1263
1345
|
if (process.env.CLAWPAD_SKIP_QMD === "1") {
|
|
1264
1346
|
console.log(" ↩︎ Skipping QMD install (CLAWPAD_SKIP_QMD=1).");
|
|
1265
1347
|
return { installed: false, path: detectQmdBinary() };
|
|
@@ -1777,7 +1859,10 @@ async function main(
|
|
|
1777
1859
|
console.log();
|
|
1778
1860
|
|
|
1779
1861
|
const { config } = loadOpenClawConfig();
|
|
1780
|
-
const openclawInstall =
|
|
1862
|
+
const openclawInstall = await ensureOpenClawCli(platformProfile, {
|
|
1863
|
+
autoYes,
|
|
1864
|
+
noPrompt,
|
|
1865
|
+
});
|
|
1781
1866
|
if (!openclawInstall.installed) {
|
|
1782
1867
|
const prefix = openclawInstall.attempted
|
|
1783
1868
|
? "OpenClaw CLI still missing after install attempt."
|
|
@@ -1786,8 +1871,15 @@ async function main(
|
|
|
1786
1871
|
if (openclawInstall.hint) {
|
|
1787
1872
|
console.warn(` ${openclawInstall.hint}`);
|
|
1788
1873
|
}
|
|
1789
|
-
} else
|
|
1790
|
-
|
|
1874
|
+
} else {
|
|
1875
|
+
const versionText = openclawInstall.version || "unknown version";
|
|
1876
|
+
if (compareSemver(openclawInstall.version, MIN_OPENCLAW_VERSION) < 0) {
|
|
1877
|
+
console.warn(
|
|
1878
|
+
` ⚠️ OpenClaw CLI ${versionText} detected; ${MIN_OPENCLAW_VERSION}+ recommended. Upgrade via ${platformProfile.id === "mac" ? "brew upgrade openclaw" : "npm install -g openclaw"}.`,
|
|
1879
|
+
);
|
|
1880
|
+
} else {
|
|
1881
|
+
console.log(` ✅ OpenClaw CLI detected (${versionText}).`);
|
|
1882
|
+
}
|
|
1791
1883
|
}
|
|
1792
1884
|
let pagesDir = resolveClawpadPagesDir(config);
|
|
1793
1885
|
const migration = await maybeMigrateLegacyPages(config, pagesDir, {
|
|
@@ -1800,10 +1892,10 @@ async function main(
|
|
|
1800
1892
|
if (!process.env.CLAWPAD_PAGES_DIR && pagesDir) {
|
|
1801
1893
|
process.env.CLAWPAD_PAGES_DIR = pagesDir;
|
|
1802
1894
|
}
|
|
1803
|
-
const qmd = ensureQmdInstalled();
|
|
1895
|
+
const qmd = ensureQmdInstalled(platformProfile);
|
|
1804
1896
|
if (qmd.installed && qmd.path) {
|
|
1805
1897
|
console.log(` ✅ QMD available at ${qmd.path}`);
|
|
1806
|
-
} else {
|
|
1898
|
+
} else if (!qmd.skipped) {
|
|
1807
1899
|
console.log(" ⚠️ QMD unavailable. Semantic search and QMD memory backend may be limited.");
|
|
1808
1900
|
}
|
|
1809
1901
|
await integrateWithOpenClaw(pagesDir, qmd.path, {
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|