@agentica/chat 0.32.8 → 0.32.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.
@@ -1451,7 +1451,7 @@ You have been provided with \`IValidation.IError[][]\` containing **previous his
1451
1451
 
1452
1452
  **Success means: the error path never appears in future correction cycles.**`};var LDn={};const MDn=new JIe(()=>{var s;return BIe()?((s=LDn.LANG)==null?void 0:s.split(".")[0])??"en-US":navigator.language}),RDn=new JIe(()=>Intl.DateTimeFormat().resolvedOptions().timeZone);function DDn(s){var y;if(((y=s==null?void 0:s.systemPrompt)==null?void 0:y.common)!==void 0)return s.systemPrompt.common(s);const o=(s==null?void 0:s.locale)??MDn.get(),p=(s==null?void 0:s.timezone)??RDn.get();return A6.COMMON.replace("${locale}",o).replace("${timezone}",p).replace("${datetime}",new Date().toISOString())}const s$={write:DDn};function BDn(s){return typeof s.initialize=="function"}function ZIe(s){const o=async(p,y,C=0)=>{try{return await p(y)}catch(N){if(C>=s-1)throw N;return o(p,N,C+1)}};return o}class WQ extends Error{constructor(){super();const o=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,o):this.__proto__=o}}class kmt extends WQ{constructor(o){super(),this.reasoning=o}}var iFt;(s=>{function o(p){return new TextDecoder().decode(p)}s.toUtf8=o})(iFt||(iFt={}));function tOe(s,o){return{accepted_prediction_tokens:(s.accepted_prediction_tokens??0)+(o.accepted_prediction_tokens??0),reasoning_tokens:(s.reasoning_tokens??0)+(o.reasoning_tokens??0),rejected_prediction_tokens:(s.rejected_prediction_tokens??0)+(o.rejected_prediction_tokens??0)}}function eOe(s,o){return{audio_tokens:(s.audio_tokens??0)+(o.audio_tokens??0),cached_tokens:(s.cached_tokens??0)+(o.cached_tokens??0)}}function FDn(s,o){return{prompt_tokens:(s.prompt_tokens??0)+(o.prompt_tokens??0),completion_tokens:(s.completion_tokens??0)+(o.completion_tokens??0),total_tokens:(s.total_tokens??0)+(o.total_tokens??0),completion_tokens_details:tOe(s.completion_tokens_details??{accepted_prediction_tokens:0,reasoning_tokens:0,rejected_prediction_tokens:0},o.completion_tokens_details??{accepted_prediction_tokens:0,reasoning_tokens:0,rejected_prediction_tokens:0}),prompt_tokens_details:eOe(s.prompt_tokens_details??{audio_tokens:0,cached_tokens:0},o.prompt_tokens_details??{audio_tokens:0,cached_tokens:0})}}const $Dn={sum:FDn,sumCompletionTokenDetail:tOe,sumPromptTokenDetail:eOe};var zbt={},nOe={},ZFt={};Object.defineProperty(ZFt,"__esModule",{value:!0});ZFt.addMissingBraces=jDn;function jDn(s){const o={s:"OUT",stack:[],line:1,col:0,edits:[]},p=Array.from(s).reduce((C,N,L)=>{var H;const G=N===`
1453
1453
  `?Object.assign(Object.assign({},C),{line:C.line+1,col:0}):Object.assign(Object.assign({},C),{col:C.col+1}),z=UDn(N),tt=(H=qDn[G.s])===null||H===void 0?void 0:H[z];return tt?tt(G,N,L):G},o);if(p.s!=="OUT")return s;const y=p.stack.length===0?p:(()=>{const C=p.stack.slice().reverse().map(N=>rOe[N.type]).join("");return Object.assign(Object.assign({},p),{edits:[...p.edits,{op:"insert",index:s.length,text:C}],stack:[]})})();return HDn(s,y.edits)}function HDn(s,o){const y=[...o].sort((C,N)=>C.index-N.index).reduce((C,N)=>{const L=s.slice(C.cursor,N.index),H={out:C.out+L,cursor:N.index};return N.op==="delete"?{out:H.out,cursor:H.cursor+1}:N.op==="replace"?{out:H.out+N.text,cursor:H.cursor+1}:{out:H.out+N.text,cursor:H.cursor}},{out:"",cursor:0});return y.out+s.slice(y.cursor)}const zDn=Object.freeze({"}":"{","]":"["}),rOe=Object.freeze({"{":"}","[":"]"}),UDn=s=>{switch(s){case'"':return"DQUOTE";case"\\":return"BSLASH";case"{":return"OCB";case"[":return"OSB";case"}":return"CCB";case"]":return"CSB";case`
1454
- `:return"NEWLINE";default:return"CHAR"}},XCe=(s,o,p)=>Object.assign(Object.assign({},s),{stack:[...s.stack,{type:o,index:p}]}),QCe=(s,o)=>Object.assign(Object.assign({},s),{edits:[...s.edits,o]}),JCe=(s,o,p)=>(()=>{if(s.stack.length===0)return QCe(s,{op:"delete",index:p});const y=s.stack[s.stack.length-1];if(y!==void 0&&y.type!==zDn[o]){const C=rOe[y.type];return QCe(Object.assign(Object.assign({},s),{stack:s.stack.slice(0,-1)}),{op:"replace",index:p,text:C})}return Object.assign(Object.assign({},s),{stack:s.stack.slice(0,-1)})})(),qDn={OUT:{DQUOTE:s=>Object.assign(Object.assign({},s),{s:"IN"}),OCB:(s,o,p)=>XCe(s,"{",p),OSB:(s,o,p)=>XCe(s,"[",p),CCB:(s,o,p)=>JCe(s,"}",p),CSB:(s,o,p)=>JCe(s,"]",p)},IN:{BSLASH:s=>Object.assign(Object.assign({},s),{s:"ESC"}),DQUOTE:s=>Object.assign(Object.assign({},s),{s:"OUT"})},ESC:{DQUOTE:s=>Object.assign(Object.assign({},s),{s:"IN"}),BSLASH:s=>Object.assign(Object.assign({},s),{s:"IN"}),OCB:s=>Object.assign(Object.assign({},s),{s:"IN"}),OSB:s=>Object.assign(Object.assign({},s),{s:"IN"}),CCB:s=>Object.assign(Object.assign({},s),{s:"IN"}),CSB:s=>Object.assign(Object.assign({},s),{s:"IN"}),CHAR:s=>Object.assign(Object.assign({},s),{s:"IN"}),NEWLINE:s=>Object.assign(Object.assign({},s),{s:"IN"})}};var t$t={};Object.defineProperty(t$t,"__esModule",{value:!0});t$t.removeEmptyObjectPrefix=WDn;function WDn(s){return RegExp("^{}.").test(s)===!0?s.substring(2):s}var e$t={};Object.defineProperty(e$t,"__esModule",{value:!0});e$t.removeTrailingCommas=KDn;function KDn(s){const o=Array.from(s),p=z=>z==='"',y=z=>z==="\\",C=z=>/\s/.test(z),N=z=>z==="]"||z==="}",L=(z,tt)=>tt>=z.length||z[tt]===void 0?null:C(z[tt])||z[tt]===","?L(z,tt+1):z[tt],H={out:"",inString:!1,escaping:!1,skippingTrailingCommas:!1};return o.reduce((z,tt,et,nt)=>{if(z.inString){const st=z.out+tt;return y(tt)?Object.assign(Object.assign({},z),{out:st,escaping:!z.escaping}):p(tt)&&!z.escaping?Object.assign(Object.assign({},z),{out:st,inString:!1,escaping:!1}):Object.assign(Object.assign({},z),{out:st,escaping:!1})}if(z.skippingTrailingCommas){if(tt===",")return z;if(C(tt)){const st=L(nt,et+1);return N(st)?Object.assign(Object.assign({},z),{out:z.out+tt}):z}return N(tt)?Object.assign(Object.assign({},z),{out:z.out+tt,skippingTrailingCommas:!1}):Object.assign(Object.assign({},z),{out:z.out+tt,skippingTrailingCommas:!1})}if(p(tt))return Object.assign(Object.assign({},z),{out:z.out+tt,inString:!0,escaping:!1});if(tt===","){const st=L(nt,et+1);if(N(st))return Object.assign(Object.assign({},z),{skippingTrailingCommas:!0})}return Object.assign(Object.assign({},z),{out:z.out+tt})},H).out}(function(s){var o=N1&&N1.__createBinding||(Object.create?function(y,C,N,L){L===void 0&&(L=N);var H=Object.getOwnPropertyDescriptor(C,N);(!H||("get"in H?!C.__esModule:H.writable||H.configurable))&&(H={enumerable:!0,get:function(){return C[N]}}),Object.defineProperty(y,L,H)}:function(y,C,N,L){L===void 0&&(L=N),y[L]=C[N]}),p=N1&&N1.__exportStar||function(y,C){for(var N in y)N!=="default"&&!Object.prototype.hasOwnProperty.call(C,N)&&o(C,y,N)};Object.defineProperty(s,"__esModule",{value:!0}),p(ZFt,s),p(t$t,s),p(e$t,s)})(nOe);(function(s){var o=N1&&N1.__createBinding||(Object.create?function(y,C,N,L){L===void 0&&(L=N);var H=Object.getOwnPropertyDescriptor(C,N);(!H||("get"in H?!C.__esModule:H.writable||H.configurable))&&(H={enumerable:!0,get:function(){return C[N]}}),Object.defineProperty(y,L,H)}:function(y,C,N,L){L===void 0&&(L=N),y[L]=C[N]}),p=N1&&N1.__exportStar||function(y,C){for(var N in y)N!=="default"&&!Object.prototype.hasOwnProperty.call(C,N)&&o(C,y,N)};Object.defineProperty(s,"__esModule",{value:!0}),p(nOe,s)})(zbt);const Zmt={parse:GDn};function GDn(s){const o=YDn(zbt.removeEmptyObjectPrefix,zbt.addMissingBraces,zbt.removeTrailingCommas)(s);return console.log(o),JSON.parse(o)}const YDn=(...s)=>o=>s.reduce((p,y)=>y(p),o);function VDn(s){const o=s instanceof Uint8Array?iFt.toUtf8(s):s;return Zmt.parse(o)}function iOe(s,o){const p=s.choices;o.choices.forEach(C=>{const N=p[C.index];if(N!=null){p[C.index]=aOe(N,C);return}p[C.index]={index:C.index,finish_reason:C.finish_reason??null,logprobs:C.logprobs??null,message:{tool_calls:C.delta.tool_calls!==void 0?C.delta.tool_calls.reduce((L,H)=>{var G,z;return L[H.index]={id:H.id??"",type:"function",function:{name:((G=H.function)==null?void 0:G.name)??"",arguments:((z=H.function)==null?void 0:z.arguments)??""}},L},[]):void 0,content:C.delta.content??null,refusal:C.delta.refusal??null,role:"assistant",reasoning:C.delta.reasoning??null}}});const y=o.usage==null?s.usage:s.usage==null?o.usage:$Dn.sum(s.usage,o.usage);return{...s,choices:p,usage:y}}function XDn(s){const o=s[0];if(o===void 0)throw new Error("No chunks received");const p=s.reduce(iOe,{id:o.id,choices:[],created:o.created,model:o.model,object:"chat.completion",usage:void 0,service_tier:o.service_tier,system_fingerprint:o.system_fingerprint});return p.choices.forEach(y=>{var C;(C=y.message.tool_calls)==null||C.forEach(N=>{N.function.arguments===""&&(N.function.arguments="{}")})}),p}function aOe(s,o){var p;if(s.finish_reason==null&&o.finish_reason!=null&&(s.finish_reason=o.finish_reason),s.logprobs==null&&o.logprobs!=null&&(s.logprobs=o.logprobs),o.delta.content!=null&&(s.message.content==null?s.message.content=o.delta.content:s.message.content+=o.delta.content),o.delta.refusal!=null&&(s.message.refusal==null?s.message.refusal=o.delta.refusal:s.message.refusal+=o.delta.refusal),o.delta.reasoning!=null&&(s.message.reasoning==null?s.message.reasoning=o.delta.reasoning:s.message.reasoning+=o.delta.reasoning),o.delta.tool_calls!=null){(p=s.message).tool_calls??(p.tool_calls=[]);const y=s.message.tool_calls;o.delta.tool_calls.forEach(C=>{var L,H;const N=y[C.index];if(N!=null){y[C.index]=sOe(N,C);return}y[C.index]={id:C.id??"",type:"function",function:{name:((L=C.function)==null?void 0:L.name)??"",arguments:((H=C.function)==null?void 0:H.arguments)??""}}})}return s}function sOe(s,o){return o.function!=null&&(s.function.arguments+=o.function.arguments??"",s.function.name+=o.function.name??""),s.id+=o.id??"",s}const dP={transformCompletionChunk:VDn,accumulate:iOe,merge:XDn,mergeChoice:aOe,mergeToolCalls:sOe};class QDn extends Error{constructor(o){super(o),this.name="AsyncQueueClosedError"}}class JDn{constructor(){this.queue=[],this.resolvers=[],this.closeResolvers=[],this.emptyResolvers=[],this.closed=!1}enqueue(o){var p;if(this.closed){console.error(new QDn("Cannot enqueue item: queue is closed."));return}this.queue.push(o),this.resolvers.length>0&&((p=this.resolvers.shift())==null||p({value:this.queue.shift(),done:!1}))}async dequeue(){const o=this.isEmpty()?this.isClosed()?{value:void 0,done:!0}:null:{value:this.queue.shift(),done:!1};return this.isEmpty()&&this.emptyResolvers.length!==0&&(this.emptyResolvers.forEach(p=>p()),this.emptyResolvers=[]),o!==null?o:new Promise(p=>this.resolvers.push(p))}isEmpty(){return this.queue.length===0}isClosed(){return this.closed}done(){return this.isClosed()&&this.isEmpty()}close(){var o;for(this.closed=!0;this.resolvers.length>0;)(o=this.resolvers.shift())==null||o({value:void 0,done:!0});this.closeResolvers.forEach(p=>p())}async waitUntilEmpty(){return this.isEmpty()?Promise.resolve():new Promise(o=>{this.emptyResolvers.push(o)})}async waitClosed(){return this.isClosed()?Promise.resolve():new Promise(o=>{this.closeResolvers.push(o)})}}class ZDn{constructor(){this.queue=new JDn,this.consumer=new ReadableStream({start:async o=>{for(;;){const{value:p,done:y}=await this.queue.dequeue();if(y===!0){o.close();return}o.enqueue(p)}}})}produce(o){this.queue.enqueue(o)}close(){this.queue.close()}done(){return this.queue.done()}async waitClosed(){await this.queue.waitClosed()}async waitUntilEmpty(){await this.queue.waitUntilEmpty()}}async function tBn(s,o){const p=s.getReader(),y=[];for(;;){const{done:C,value:N}=await p.read();if(C||(o==null?void 0:o.aborted)===!0)break;y.push(N)}return y}async function eBn(s,o,p){var L;const y=s.getReader(),C=r$t(y);let N=p.initial??null;for await(const H of C){if(((L=p.abortSignal)==null?void 0:L.aborted)===!0)break;if(N===null){N=H;continue}N=o(N,H)}return N}function nBn(...s){return new ReadableStream({start:p=>{s.forEach(y=>p.enqueue(y)),p.close()}})}async function*n$t(s){yield s}async function*r$t(s,o){for(;;){const{done:p,value:y}=await s.read();if(p||(o==null?void 0:o.aborted)===!0)break;yield y}}function rBn(s,o,p){const y=s.getReader();return new ReadableStream({pull:async C=>{const{done:N,value:L}=await y.read();if(N===!0||(p==null?void 0:p.aborted)===!0){C.close();return}C.enqueue(o(L))}})}const KQ={readAll:tBn,reduce:eBn,from:nBn,transform:rBn};async function t2t(s,o,p){const y=new Map,C=await KQ.reduce(s,async(N,L)=>{const H=await N,G=z=>{for(const tt of z){if(tt.delta.content!=null&&tt.delta.content!=="")if(y.has(tt.index)){const et=y.get(tt.index);et.content+=tt.delta.content,et.mpsc.produce(tt.delta.content)}else{const et=new ZDn;y.set(tt.index,{content:tt.delta.content,mpsc:et}),et.produce(tt.delta.content),o({stream:r$t(et.consumer.getReader()),done:()=>et.done(),get:()=>{var nt;return((nt=y.get(tt.index))==null?void 0:nt.content)??""},join:async()=>(await et.waitClosed(),y.get(tt.index).content)})}if(tt.finish_reason!=null){const et=y.get(tt.index);et!=null&&et.mpsc.close()}}};return H.object==="chat.completion.chunk"?(G([H,L].flatMap(z=>z.choices)),dP.merge([H,L])):(G(L.choices),dP.accumulate(H,L))},{abortSignal:p});if(C==null)throw new Error(`StreamUtil.reduce did not produce a ChatCompletion. Possible causes: the input stream was empty, invalid, or closed prematurely. To debug: check that the stream is properly initialized and contains valid ChatCompletionChunk data. You may also enable verbose logging upstream to inspect the stream contents. Stream locked: ${s.locked}.`);if(C.object==="chat.completion.chunk"){const N=dP.merge([C]);return N.choices.forEach(L=>{L.message.content!=null&&L.message.content!==""&&o({stream:n$t(L.message.content),done:()=>!0,get:()=>L.message.content,join:async()=>L.message.content})}),N}return C}function e2t(s){return{operation:s.operation,reason:s.reason,toJSON:()=>({operation:s.operation.toJSON(),reason:s.reason})}}function oOe(s,o){const p=s.stack.findIndex(N=>N.operation.name===o.name);if(p===-1)return;const y=s.stack[p];s.stack.splice(p,1);const C=gRn({selection:e2t({operation:y.operation,reason:o.reason})});s.dispatch(C)}async function iBn(s,o){var H;const p=ZIe(1),C=await(async G=>p(G).catch(z=>{if(z instanceof WQ)return Symbol("emptyAssistantMessage");throw z}))(async G=>{var nt,st,at,Nt,Dt,Tt,ae;const z=await s.request("call",{messages:[{role:"system",content:s$.write(s.config)},...s.histories.map(i$).flat(),{role:"user",content:s.prompt.contents.map(a$)},...G instanceof kmt?[{role:"assistant",content:G.reasoning}]:[],...((st=(nt=s.config)==null?void 0:nt.systemPrompt)==null?void 0:st.execute)===null?[]:[{role:"system",content:((Dt=(Nt=(at=s.config)==null?void 0:at.systemPrompt)==null?void 0:Nt.execute)==null?void 0:Dt.call(Nt,s.histories))??A6.EXECUTE}]],tools:o.map(ee=>({type:"function",function:{name:ee.name,description:ee.function.description,parameters:"separated"in ee.function&&ee.function.separated!==void 0?ee.function.separated.llm??{type:"object",properties:{},required:[],additionalProperties:!1,$defs:{}}:ee.function.parameters}})),tool_choice:"auto"}),tt=await t2t(z,ee=>{const ge=UQ(ee);s.dispatch(ge).catch(()=>{})});if(tt.choices.every(ee=>ee.message.tool_calls==null&&ee.message.content==="")){const ee=tt.choices.at(0);throw((Tt=ee==null?void 0:ee.message)==null?void 0:Tt.reasoning)!=null?new kmt(((ae=ee==null?void 0:ee.message)==null?void 0:ae.reasoning)??""):new WQ}return tt});if(typeof C=="symbol"){const G=UQ({stream:n$t(""),done:()=>!0,get:()=>"",join:async()=>""});return s.dispatch(G).catch(()=>{}),[]}const N=[],L=((H=s.config)==null?void 0:H.retry)??mk.RETRY;for(const G of C.choices)for(const z of G.message.tool_calls??[])if(z.type==="function"){const tt=o.find(nt=>nt.name===z.function.name);if(tt===void 0)continue;const et=await cOe(s,tt,z,[],L);await s.dispatch(et),N.push(et),BDn(s)&&oOe(s,{name:et.operation.name,reason:"completed"})}return N}async function cOe(s,o,p,y,C){const N=oBn(o,p,C);if(await s.dispatch(N),N.type==="jsonParseError")return sBn(s,N,y,C-1);const L=o.function.validate(N.arguments);if(L.success===!1){const H=yRn({id:p.id,operation:o,result:L,life:C});return await s.dispatch(H),aBn(s,N,H,[...y,H],C-1)}return cBn(N,o)}async function aBn(s,o,p,y,C){var N,L,H;return uOe(s,{giveUp:()=>wmt({operation:o.operation,arguments:o.arguments,value:{name:"ValidationError",message:`Invalid arguments. The validation failed after ${mk.RETRY} retries.`,errors:p.result.errors},success:!1}),operation:o.operation,toolCall:{id:o.id,arguments:JSON.stringify(o.arguments),result:JSON.stringify(p.result.errors)},systemPrompt:((H=(L=(N=s.config)==null?void 0:N.systemPrompt)==null?void 0:L.validate)==null?void 0:H.call(L,y.slice(0,-1)))??[A6.VALIDATE,...y.length>1?["",A6.VALIDATE_REPEATED.replace("${{HISTORICAL_ERRORS}}",JSON.stringify(y.slice(0,-1).map(G=>G.result.errors)))]:[]].join(`
1454
+ `:return"NEWLINE";default:return"CHAR"}},XCe=(s,o,p)=>Object.assign(Object.assign({},s),{stack:[...s.stack,{type:o,index:p}]}),QCe=(s,o)=>Object.assign(Object.assign({},s),{edits:[...s.edits,o]}),JCe=(s,o,p)=>(()=>{if(s.stack.length===0)return QCe(s,{op:"delete",index:p});const y=s.stack[s.stack.length-1];if(y!==void 0&&y.type!==zDn[o]){const C=rOe[y.type];return QCe(Object.assign(Object.assign({},s),{stack:s.stack.slice(0,-1)}),{op:"replace",index:p,text:C})}return Object.assign(Object.assign({},s),{stack:s.stack.slice(0,-1)})})(),qDn={OUT:{DQUOTE:s=>Object.assign(Object.assign({},s),{s:"IN"}),OCB:(s,o,p)=>XCe(s,"{",p),OSB:(s,o,p)=>XCe(s,"[",p),CCB:(s,o,p)=>JCe(s,"}",p),CSB:(s,o,p)=>JCe(s,"]",p)},IN:{BSLASH:s=>Object.assign(Object.assign({},s),{s:"ESC"}),DQUOTE:s=>Object.assign(Object.assign({},s),{s:"OUT"})},ESC:{DQUOTE:s=>Object.assign(Object.assign({},s),{s:"IN"}),BSLASH:s=>Object.assign(Object.assign({},s),{s:"IN"}),OCB:s=>Object.assign(Object.assign({},s),{s:"IN"}),OSB:s=>Object.assign(Object.assign({},s),{s:"IN"}),CCB:s=>Object.assign(Object.assign({},s),{s:"IN"}),CSB:s=>Object.assign(Object.assign({},s),{s:"IN"}),CHAR:s=>Object.assign(Object.assign({},s),{s:"IN"}),NEWLINE:s=>Object.assign(Object.assign({},s),{s:"IN"})}};var t$t={};Object.defineProperty(t$t,"__esModule",{value:!0});t$t.removeEmptyObjectPrefix=WDn;function WDn(s){return RegExp("^{}.").test(s)===!0?s.substring(2):s}var e$t={};Object.defineProperty(e$t,"__esModule",{value:!0});e$t.removeTrailingCommas=KDn;function KDn(s){const o=Array.from(s),p=z=>z==='"',y=z=>z==="\\",C=z=>/\s/.test(z),N=z=>z==="]"||z==="}",L=(z,tt)=>tt>=z.length||z[tt]===void 0?null:C(z[tt])||z[tt]===","?L(z,tt+1):z[tt],H={out:"",inString:!1,escaping:!1,skippingTrailingCommas:!1};return o.reduce((z,tt,et,nt)=>{if(z.inString){const st=z.out+tt;return y(tt)?Object.assign(Object.assign({},z),{out:st,escaping:!z.escaping}):p(tt)&&!z.escaping?Object.assign(Object.assign({},z),{out:st,inString:!1,escaping:!1}):Object.assign(Object.assign({},z),{out:st,escaping:!1})}if(z.skippingTrailingCommas){if(tt===",")return z;if(C(tt)){const st=L(nt,et+1);return N(st)?Object.assign(Object.assign({},z),{out:z.out+tt}):z}return N(tt)?Object.assign(Object.assign({},z),{out:z.out+tt,skippingTrailingCommas:!1}):Object.assign(Object.assign({},z),{out:z.out+tt,skippingTrailingCommas:!1})}if(p(tt))return Object.assign(Object.assign({},z),{out:z.out+tt,inString:!0,escaping:!1});if(tt===","){const st=L(nt,et+1);if(N(st))return Object.assign(Object.assign({},z),{skippingTrailingCommas:!0})}return Object.assign(Object.assign({},z),{out:z.out+tt})},H).out}(function(s){var o=N1&&N1.__createBinding||(Object.create?function(y,C,N,L){L===void 0&&(L=N);var H=Object.getOwnPropertyDescriptor(C,N);(!H||("get"in H?!C.__esModule:H.writable||H.configurable))&&(H={enumerable:!0,get:function(){return C[N]}}),Object.defineProperty(y,L,H)}:function(y,C,N,L){L===void 0&&(L=N),y[L]=C[N]}),p=N1&&N1.__exportStar||function(y,C){for(var N in y)N!=="default"&&!Object.prototype.hasOwnProperty.call(C,N)&&o(C,y,N)};Object.defineProperty(s,"__esModule",{value:!0}),p(ZFt,s),p(t$t,s),p(e$t,s)})(nOe);(function(s){var o=N1&&N1.__createBinding||(Object.create?function(y,C,N,L){L===void 0&&(L=N);var H=Object.getOwnPropertyDescriptor(C,N);(!H||("get"in H?!C.__esModule:H.writable||H.configurable))&&(H={enumerable:!0,get:function(){return C[N]}}),Object.defineProperty(y,L,H)}:function(y,C,N,L){L===void 0&&(L=N),y[L]=C[N]}),p=N1&&N1.__exportStar||function(y,C){for(var N in y)N!=="default"&&!Object.prototype.hasOwnProperty.call(C,N)&&o(C,y,N)};Object.defineProperty(s,"__esModule",{value:!0}),p(nOe,s)})(zbt);const Zmt={parse:GDn};function GDn(s){const o=YDn(zbt.removeEmptyObjectPrefix,zbt.addMissingBraces,zbt.removeTrailingCommas)(s);return JSON.parse(o)}const YDn=(...s)=>o=>s.reduce((p,y)=>y(p),o);function VDn(s){const o=s instanceof Uint8Array?iFt.toUtf8(s):s;return Zmt.parse(o)}function iOe(s,o){const p=s.choices;o.choices.forEach(C=>{const N=p[C.index];if(N!=null){p[C.index]=aOe(N,C);return}p[C.index]={index:C.index,finish_reason:C.finish_reason??null,logprobs:C.logprobs??null,message:{tool_calls:C.delta.tool_calls!==void 0?C.delta.tool_calls.reduce((L,H)=>{var G,z;return L[H.index]={id:H.id??"",type:"function",function:{name:((G=H.function)==null?void 0:G.name)??"",arguments:((z=H.function)==null?void 0:z.arguments)??""}},L},[]):void 0,content:C.delta.content??null,refusal:C.delta.refusal??null,role:"assistant",reasoning:C.delta.reasoning??null}}});const y=o.usage==null?s.usage:s.usage==null?o.usage:$Dn.sum(s.usage,o.usage);return{...s,choices:p,usage:y}}function XDn(s){const o=s[0];if(o===void 0)throw new Error("No chunks received");const p=s.reduce(iOe,{id:o.id,choices:[],created:o.created,model:o.model,object:"chat.completion",usage:void 0,service_tier:o.service_tier,system_fingerprint:o.system_fingerprint});return p.choices.forEach(y=>{var C;(C=y.message.tool_calls)==null||C.forEach(N=>{N.function.arguments===""&&(N.function.arguments="{}")})}),p}function aOe(s,o){var p;if(s.finish_reason==null&&o.finish_reason!=null&&(s.finish_reason=o.finish_reason),s.logprobs==null&&o.logprobs!=null&&(s.logprobs=o.logprobs),o.delta.content!=null&&(s.message.content==null?s.message.content=o.delta.content:s.message.content+=o.delta.content),o.delta.refusal!=null&&(s.message.refusal==null?s.message.refusal=o.delta.refusal:s.message.refusal+=o.delta.refusal),o.delta.reasoning!=null&&(s.message.reasoning==null?s.message.reasoning=o.delta.reasoning:s.message.reasoning+=o.delta.reasoning),o.delta.tool_calls!=null){(p=s.message).tool_calls??(p.tool_calls=[]);const y=s.message.tool_calls;o.delta.tool_calls.forEach(C=>{var L,H;const N=y[C.index];if(N!=null){y[C.index]=sOe(N,C);return}y[C.index]={id:C.id??"",type:"function",function:{name:((L=C.function)==null?void 0:L.name)??"",arguments:((H=C.function)==null?void 0:H.arguments)??""}}})}return s}function sOe(s,o){return o.function!=null&&(s.function.arguments+=o.function.arguments??"",s.function.name+=o.function.name??""),s.id+=o.id??"",s}const dP={transformCompletionChunk:VDn,accumulate:iOe,merge:XDn,mergeChoice:aOe,mergeToolCalls:sOe};class QDn extends Error{constructor(o){super(o),this.name="AsyncQueueClosedError"}}class JDn{constructor(){this.queue=[],this.resolvers=[],this.closeResolvers=[],this.emptyResolvers=[],this.closed=!1}enqueue(o){var p;if(this.closed){console.error(new QDn("Cannot enqueue item: queue is closed."));return}this.queue.push(o),this.resolvers.length>0&&((p=this.resolvers.shift())==null||p({value:this.queue.shift(),done:!1}))}async dequeue(){const o=this.isEmpty()?this.isClosed()?{value:void 0,done:!0}:null:{value:this.queue.shift(),done:!1};return this.isEmpty()&&this.emptyResolvers.length!==0&&(this.emptyResolvers.forEach(p=>p()),this.emptyResolvers=[]),o!==null?o:new Promise(p=>this.resolvers.push(p))}isEmpty(){return this.queue.length===0}isClosed(){return this.closed}done(){return this.isClosed()&&this.isEmpty()}close(){var o;for(this.closed=!0;this.resolvers.length>0;)(o=this.resolvers.shift())==null||o({value:void 0,done:!0});this.closeResolvers.forEach(p=>p())}async waitUntilEmpty(){return this.isEmpty()?Promise.resolve():new Promise(o=>{this.emptyResolvers.push(o)})}async waitClosed(){return this.isClosed()?Promise.resolve():new Promise(o=>{this.closeResolvers.push(o)})}}class ZDn{constructor(){this.queue=new JDn,this.consumer=new ReadableStream({start:async o=>{for(;;){const{value:p,done:y}=await this.queue.dequeue();if(y===!0){o.close();return}o.enqueue(p)}}})}produce(o){this.queue.enqueue(o)}close(){this.queue.close()}done(){return this.queue.done()}async waitClosed(){await this.queue.waitClosed()}async waitUntilEmpty(){await this.queue.waitUntilEmpty()}}async function tBn(s,o){const p=s.getReader(),y=[];for(;;){const{done:C,value:N}=await p.read();if(C||(o==null?void 0:o.aborted)===!0)break;y.push(N)}return y}async function eBn(s,o,p){var L;const y=s.getReader(),C=r$t(y);let N=p.initial??null;for await(const H of C){if(((L=p.abortSignal)==null?void 0:L.aborted)===!0)break;if(N===null){N=H;continue}N=o(N,H)}return N}function nBn(...s){return new ReadableStream({start:p=>{s.forEach(y=>p.enqueue(y)),p.close()}})}async function*n$t(s){yield s}async function*r$t(s,o){for(;;){const{done:p,value:y}=await s.read();if(p||(o==null?void 0:o.aborted)===!0)break;yield y}}function rBn(s,o,p){const y=s.getReader();return new ReadableStream({pull:async C=>{const{done:N,value:L}=await y.read();if(N===!0||(p==null?void 0:p.aborted)===!0){C.close();return}C.enqueue(o(L))}})}const KQ={readAll:tBn,reduce:eBn,from:nBn,transform:rBn};async function t2t(s,o,p){const y=new Map,C=await KQ.reduce(s,async(N,L)=>{const H=await N,G=z=>{for(const tt of z){if(tt.delta.content!=null&&tt.delta.content!=="")if(y.has(tt.index)){const et=y.get(tt.index);et.content+=tt.delta.content,et.mpsc.produce(tt.delta.content)}else{const et=new ZDn;y.set(tt.index,{content:tt.delta.content,mpsc:et}),et.produce(tt.delta.content),o({stream:r$t(et.consumer.getReader()),done:()=>et.done(),get:()=>{var nt;return((nt=y.get(tt.index))==null?void 0:nt.content)??""},join:async()=>(await et.waitClosed(),y.get(tt.index).content)})}if(tt.finish_reason!=null){const et=y.get(tt.index);et!=null&&et.mpsc.close()}}};return H.object==="chat.completion.chunk"?(G([H,L].flatMap(z=>z.choices)),dP.merge([H,L])):(G(L.choices),dP.accumulate(H,L))},{abortSignal:p});if(C==null)throw new Error(`StreamUtil.reduce did not produce a ChatCompletion. Possible causes: the input stream was empty, invalid, or closed prematurely. To debug: check that the stream is properly initialized and contains valid ChatCompletionChunk data. You may also enable verbose logging upstream to inspect the stream contents. Stream locked: ${s.locked}.`);if(C.object==="chat.completion.chunk"){const N=dP.merge([C]);return N.choices.forEach(L=>{L.message.content!=null&&L.message.content!==""&&o({stream:n$t(L.message.content),done:()=>!0,get:()=>L.message.content,join:async()=>L.message.content})}),N}return C}function e2t(s){return{operation:s.operation,reason:s.reason,toJSON:()=>({operation:s.operation.toJSON(),reason:s.reason})}}function oOe(s,o){const p=s.stack.findIndex(N=>N.operation.name===o.name);if(p===-1)return;const y=s.stack[p];s.stack.splice(p,1);const C=gRn({selection:e2t({operation:y.operation,reason:o.reason})});s.dispatch(C)}async function iBn(s,o){var H;const p=ZIe(1),C=await(async G=>p(G).catch(z=>{if(z instanceof WQ)return Symbol("emptyAssistantMessage");throw z}))(async G=>{var nt,st,at,Nt,Dt,Tt,ae;const z=await s.request("call",{messages:[{role:"system",content:s$.write(s.config)},...s.histories.map(i$).flat(),{role:"user",content:s.prompt.contents.map(a$)},...G instanceof kmt?[{role:"assistant",content:G.reasoning}]:[],...((st=(nt=s.config)==null?void 0:nt.systemPrompt)==null?void 0:st.execute)===null?[]:[{role:"system",content:((Dt=(Nt=(at=s.config)==null?void 0:at.systemPrompt)==null?void 0:Nt.execute)==null?void 0:Dt.call(Nt,s.histories))??A6.EXECUTE}]],tools:o.map(ee=>({type:"function",function:{name:ee.name,description:ee.function.description,parameters:"separated"in ee.function&&ee.function.separated!==void 0?ee.function.separated.llm??{type:"object",properties:{},required:[],additionalProperties:!1,$defs:{}}:ee.function.parameters}})),tool_choice:"auto"}),tt=await t2t(z,ee=>{const ge=UQ(ee);s.dispatch(ge).catch(()=>{})});if(tt.choices.every(ee=>ee.message.tool_calls==null&&ee.message.content==="")){const ee=tt.choices.at(0);throw((Tt=ee==null?void 0:ee.message)==null?void 0:Tt.reasoning)!=null?new kmt(((ae=ee==null?void 0:ee.message)==null?void 0:ae.reasoning)??""):new WQ}return tt});if(typeof C=="symbol"){const G=UQ({stream:n$t(""),done:()=>!0,get:()=>"",join:async()=>""});return s.dispatch(G).catch(()=>{}),[]}const N=[],L=((H=s.config)==null?void 0:H.retry)??mk.RETRY;for(const G of C.choices)for(const z of G.message.tool_calls??[])if(z.type==="function"){const tt=o.find(nt=>nt.name===z.function.name);if(tt===void 0)continue;const et=await cOe(s,tt,z,[],L);await s.dispatch(et),N.push(et),BDn(s)&&oOe(s,{name:et.operation.name,reason:"completed"})}return N}async function cOe(s,o,p,y,C){const N=oBn(o,p,C);if(await s.dispatch(N),N.type==="jsonParseError")return sBn(s,N,y,C-1);const L=o.function.validate(N.arguments);if(L.success===!1){const H=yRn({id:p.id,operation:o,result:L,life:C});return await s.dispatch(H),aBn(s,N,H,[...y,H],C-1)}return cBn(N,o)}async function aBn(s,o,p,y,C){var N,L,H;return uOe(s,{giveUp:()=>wmt({operation:o.operation,arguments:o.arguments,value:{name:"ValidationError",message:`Invalid arguments. The validation failed after ${mk.RETRY} retries.`,errors:p.result.errors},success:!1}),operation:o.operation,toolCall:{id:o.id,arguments:JSON.stringify(o.arguments),result:JSON.stringify(p.result.errors)},systemPrompt:((H=(L=(N=s.config)==null?void 0:N.systemPrompt)==null?void 0:L.validate)==null?void 0:H.call(L,y.slice(0,-1)))??[A6.VALIDATE,...y.length>1?["",A6.VALIDATE_REPEATED.replace("${{HISTORICAL_ERRORS}}",JSON.stringify(y.slice(0,-1).map(G=>G.result.errors)))]:[]].join(`
1455
1455
  `),life:C,previousValidationErrors:y})}async function sBn(s,o,p,y){var C,N,L;return uOe(s,{giveUp:()=>wmt({operation:o.operation,arguments:{},value:{name:"JsonParseError",message:`Invalid JSON format. The parsing failed after ${mk.RETRY} retries.`,arguments:o.arguments,errorMessage:o.errorMessage},success:!1}),operation:o.operation,toolCall:{id:o.id,arguments:o.arguments,result:o.errorMessage},systemPrompt:((L=(N=(C=s.config)==null?void 0:C.systemPrompt)==null?void 0:N.jsonParseError)==null?void 0:L.call(N,o))??A6.JSON_PARSE_ERROR.replace("${{ERROR_MESSAGE}}",o.errorMessage),life:y,previousValidationErrors:p})}function oBn(s,o,p){try{const y=Zmt.parse(o.function.arguments);return bRn({id:o.id,operation:s,arguments:y})}catch(y){return mRn({id:o.id,operation:s,arguments:o.function.arguments,errorMessage:y instanceof Error?y.message:String(y),life:p})}}async function uOe(s,o){var L,H,G,z,tt,et;if(o.life<=0)return o.giveUp();const p=await s.request("call",{messages:[{role:"system",content:s$.write(s.config)},...s.histories.map(i$).flat(),{role:"user",content:s.prompt.contents.map(a$)},{role:"system",content:((G=(H=(L=s.config)==null?void 0:L.systemPrompt)==null?void 0:H.execute)==null?void 0:G.call(H,s.histories))??A6.EXECUTE},{role:"assistant",tool_calls:[{type:"function",id:o.toolCall.id,function:{name:o.operation.name,arguments:o.toolCall.arguments}}]},{role:"tool",content:o.toolCall.result,tool_call_id:o.toolCall.id},{role:"system",content:o.systemPrompt}],tools:[{type:"function",function:{name:o.operation.name,description:o.operation.function.description,parameters:"separated"in o.operation.function&&o.operation.function.separated!==void 0?((z=o.operation.function.separated)==null?void 0:z.llm)??{$defs:{},type:"object",properties:{},additionalProperties:!1,required:[]}:o.operation.function.parameters}}],tool_choice:"required"}),y=await KQ.readAll(p),N=(et=(tt=dP.merge(y).choices[0])==null?void 0:tt.message.tool_calls)==null?void 0:et.find(nt=>nt.function.name===o.operation.name);return N===void 0?o.giveUp():cOe(s,o.operation,N,o.previousValidationErrors,o.life)}async function cBn(s,o){try{const p=await(async()=>{switch(o.protocol){case"class":return uBn(s,o);case"http":return lBn(s,o);case"mcp":return hBn(s,o);default:throw new Error("Unknown protocol")}})();return wmt({operation:s.operation,arguments:s.arguments,value:p,success:!0})}catch(p){return wmt({operation:s.operation,arguments:s.arguments,value:p instanceof Error?{...p,name:p.name,message:p.message}:p,success:!1})}}async function uBn(s,o){const p=o.controller.execute;return typeof p=="function"?await p({application:o.controller.application,function:o.function,arguments:s.arguments}):await p[o.function.name](s.arguments)}async function lBn(s,o){const p=o.controller.execute;return typeof p=="function"?await p({connection:o.controller.connection,application:o.controller.application,function:o.function,arguments:s.arguments}):await rFt.propagate({connection:o.controller.connection,application:o.controller.application,function:o.function,input:s.arguments})}async function hBn(s,o){return o.controller.client.callTool({method:o.function.name,name:o.function.name,arguments:s.arguments}).then(p=>p.content)}var i$t={};Object.defineProperty(i$t,"__esModule",{value:!0});var o$=i$t._validateReport=void 0;const fBn=s=>{const o=p=>{if(s.length===0)return!0;const y=s[s.length-1].path;return p.length>y.length||y.substring(0,p.length)!==p};return(p,y)=>{var C;return p&&o(y.path)&&(y.value===void 0&&((C=y.description)!==null&&C!==void 0||(y.description=["The value at this path is `undefined`.","",`Please fill the \`${y.expected}\` typed value next time.`].join(`
1456
1456
  `))),s.push(y)),!1}};o$=i$t._validateReport=fBn;const YDt={functions:[{name:"cancelFunctions",parameters:{description:` Properties of the function
1457
1457
 
@@ -1,4 +1,4 @@
1
- import{j as m,o as C,r as b,T as g}from"../client-B3aq8qpT.js";import{q as w,t as T,r as v,s as j,w as x,x as _,y as P,z as R,E as U,v as $,d as k,_ as y,V as A,c as F,F as M,T as q,B as S}from"../VendorConfigurationMovie-CRmQ3pZr.js";import{a as u,_ as p}from"../_isFormatUri-YqTfGpHo.js";import{D}from"../Divider-DX1xhf0M.js";class I{constructor(o){this.props=o,this.operations_=w.compose({controllers:o.controllers,config:o.config}),this.histories_=(o.histories??[]).map(d=>T({operations:this.operations_.group,history:d})),this.token_usage_=this.props.tokenUsage!==void 0?this.props.tokenUsage instanceof v?this.props.tokenUsage:new v(this.props.tokenUsage):v.zero(),this.listeners_=new Map,this.semaphore_=o.vendor.semaphore!=null?typeof o.vendor.semaphore=="object"?o.vendor.semaphore:new j(o.vendor.semaphore):null}clone(){var o;return new I({...this.props,histories:(o=this.props.histories)==null?void 0:o.slice()})}async conversate(o,d={}){var i,n,h,B;const s=[],l=async f=>{try{await this.dispatch(f),"toHistory"in f&&("join"in f?s.push(async()=>(await f.join(),f.toHistory())):s.push(async()=>f.toHistory()))}catch{}},a=x({contents:Array.isArray(o)?o:typeof o=="string"?[{type:"text",text:o}]:[o]});l(a).catch(()=>{});const r=this.getContext({prompt:a,dispatch:l,usage:this.token_usage_,abortSignal:d.abortSignal}),e=await _(r,this.operations_.array);e.length&&((n=(i=this.props.config)==null?void 0:i.executor)==null?void 0:n.describe)!==null&&((B=(h=this.props.config)==null?void 0:h.executor)==null?void 0:B.describe)!==!1&&await P(r,e);const t=await Promise.all(s.map(async f=>f()));return this.histories_.push(...t),t}getConfig(){return this.props.config}getVendor(){return this.props.vendor}getOperations(){return this.operations_.array}getControllers(){return this.props.controllers}getHistories(){return this.histories_}getTokenUsage(){return this.token_usage_}getContext(o){const d=R({vendor:this.props.vendor,config:this.props.config,dispatch:o.dispatch,abortSignal:o.abortSignal,usage:this.token_usage_});return{operations:this.operations_,config:this.props.config,histories:this.histories_,prompt:o.prompt,dispatch:o.dispatch,request:this.semaphore_===null?d:async(s,l)=>{await this.semaphore_.acquire();try{return await d(s,l)}finally{this.semaphore_.release().catch(()=>{})}}}}on(o,d){return U(this.listeners_,o,()=>new Set).add(d),this}off(o,d){const s=this.listeners_.get(o);return s!==void 0&&(s.delete(d),s.size===0&&this.listeners_.delete(o)),this}async dispatch(o){const d=this.listeners_.get(o.type);d!==void 0&&await Promise.all(Array.from(d).map(async s=>{try{await s(o)}catch{}}))}}class L{constructor(){this.articles=[]}index(){return this.articles}create(o){const d={id:$(),title:o.input.title,body:o.input.body,thumbnail:o.input.thumbnail,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return this.articles.push(d),d}update(o){const d=this.articles.find(s=>s.id===o.id);if(d===void 0)throw new Error("Unable to find the matched article.");o.input.title!==void 0&&(d.title=o.input.title),o.input.body!==void 0&&(d.body=o.input.body),o.input.thumbnail!==void 0&&(d.thumbnail=o.input.thumbnail),d.updated_at=new Date().toISOString()}erase(o){const d=this.articles.findIndex(s=>s.id===o.id);if(d===-1)throw new Error("Unable to find the matched article.");this.articles.splice(d,1)}}const O={chatgpt:{model:"chatgpt",options:{reference:!0,strict:!1,separate:null},functions:[{name:"index",parameters:{type:"object",properties:{},additionalProperties:!1,required:[],$defs:{IBbsArticle:{description:"Article entity.\n\n`IBbsArticle` is an entity representing an article in the BBS (Bulletin Board System).",type:"object",properties:{id:{description:`Primary Key.
1
+ import{j as m,o as C,r as b,T as g}from"../client-B3aq8qpT.js";import{q as w,t as T,r as v,s as j,w as x,x as _,y as P,z as R,E as U,v as $,d as k,_ as y,V as A,c as F,F as M,T as q,B as S}from"../VendorConfigurationMovie-An_RHG2k.js";import{a as u,_ as p}from"../_isFormatUri-YqTfGpHo.js";import{D}from"../Divider-DX1xhf0M.js";class I{constructor(o){this.props=o,this.operations_=w.compose({controllers:o.controllers,config:o.config}),this.histories_=(o.histories??[]).map(d=>T({operations:this.operations_.group,history:d})),this.token_usage_=this.props.tokenUsage!==void 0?this.props.tokenUsage instanceof v?this.props.tokenUsage:new v(this.props.tokenUsage):v.zero(),this.listeners_=new Map,this.semaphore_=o.vendor.semaphore!=null?typeof o.vendor.semaphore=="object"?o.vendor.semaphore:new j(o.vendor.semaphore):null}clone(){var o;return new I({...this.props,histories:(o=this.props.histories)==null?void 0:o.slice()})}async conversate(o,d={}){var i,n,h,B;const s=[],l=async f=>{try{await this.dispatch(f),"toHistory"in f&&("join"in f?s.push(async()=>(await f.join(),f.toHistory())):s.push(async()=>f.toHistory()))}catch{}},a=x({contents:Array.isArray(o)?o:typeof o=="string"?[{type:"text",text:o}]:[o]});l(a).catch(()=>{});const r=this.getContext({prompt:a,dispatch:l,usage:this.token_usage_,abortSignal:d.abortSignal}),e=await _(r,this.operations_.array);e.length&&((n=(i=this.props.config)==null?void 0:i.executor)==null?void 0:n.describe)!==null&&((B=(h=this.props.config)==null?void 0:h.executor)==null?void 0:B.describe)!==!1&&await P(r,e);const t=await Promise.all(s.map(async f=>f()));return this.histories_.push(...t),t}getConfig(){return this.props.config}getVendor(){return this.props.vendor}getOperations(){return this.operations_.array}getControllers(){return this.props.controllers}getHistories(){return this.histories_}getTokenUsage(){return this.token_usage_}getContext(o){const d=R({vendor:this.props.vendor,config:this.props.config,dispatch:o.dispatch,abortSignal:o.abortSignal,usage:this.token_usage_});return{operations:this.operations_,config:this.props.config,histories:this.histories_,prompt:o.prompt,dispatch:o.dispatch,request:this.semaphore_===null?d:async(s,l)=>{await this.semaphore_.acquire();try{return await d(s,l)}finally{this.semaphore_.release().catch(()=>{})}}}}on(o,d){return U(this.listeners_,o,()=>new Set).add(d),this}off(o,d){const s=this.listeners_.get(o);return s!==void 0&&(s.delete(d),s.size===0&&this.listeners_.delete(o)),this}async dispatch(o){const d=this.listeners_.get(o.type);d!==void 0&&await Promise.all(Array.from(d).map(async s=>{try{await s(o)}catch{}}))}}class L{constructor(){this.articles=[]}index(){return this.articles}create(o){const d={id:$(),title:o.input.title,body:o.input.body,thumbnail:o.input.thumbnail,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return this.articles.push(d),d}update(o){const d=this.articles.find(s=>s.id===o.id);if(d===void 0)throw new Error("Unable to find the matched article.");o.input.title!==void 0&&(d.title=o.input.title),o.input.body!==void 0&&(d.body=o.input.body),o.input.thumbnail!==void 0&&(d.thumbnail=o.input.thumbnail),d.updated_at=new Date().toISOString()}erase(o){const d=this.articles.findIndex(s=>s.id===o.id);if(d===-1)throw new Error("Unable to find the matched article.");this.articles.splice(d,1)}}const O={chatgpt:{model:"chatgpt",options:{reference:!0,strict:!1,separate:null},functions:[{name:"index",parameters:{type:"object",properties:{},additionalProperties:!1,required:[],$defs:{IBbsArticle:{description:"Article entity.\n\n`IBbsArticle` is an entity representing an article in the BBS (Bulletin Board System).",type:"object",properties:{id:{description:`Primary Key.
2
2
 
3
3
 
4
4
  @format uuid`,type:"string"},created_at:{description:`Creation time of the article.