@lssm/lib.support-bot 0.0.0-canary-20251207012602 → 0.0.0-canary-20251207043720
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/dist/bot/tools.js +1 -1
- package/dist/node_modules/zod/v4/classic/errors.js +1 -0
- package/dist/node_modules/zod/v4/classic/iso.js +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +1 -0
- package/dist/node_modules/zod/v4/core/api.js +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +1 -0
- package/dist/node_modules/zod/v4/core/core.js +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +3 -0
- package/dist/node_modules/zod/v4/core/errors.js +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +18 -0
- package/dist/node_modules/zod/v4/core/util.js +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +1 -0
- package/dist/spec.js +1 -1
- package/package.json +27 -13
- package/dist/ai-agent/dist/agent/agent-factory.js +0 -1
- package/dist/ai-agent/dist/agent/contract-spec-agent.js +0 -1
- package/dist/ai-agent/dist/agent/index.js +0 -1
- package/dist/ai-agent/dist/approval/index.js +0 -1
- package/dist/ai-agent/dist/approval/workflow.js +0 -1
- package/dist/ai-agent/dist/index.js +0 -1
- package/dist/ai-agent/dist/schema/index.js +0 -1
- package/dist/ai-agent/dist/schema/json-schema-to-zod.js +0 -1
- package/dist/ai-agent/dist/schema/schema-output.js +0 -1
- package/dist/ai-agent/dist/spec/spec.js +0 -1
- package/dist/ai-agent/dist/tools/index.js +0 -1
- package/dist/ai-agent/dist/tools/knowledge-tool.js +0 -1
- package/dist/ai-agent/dist/tools/mcp-client.js +0 -1
- package/dist/ai-agent/dist/tools/mcp-server.js +0 -1
- package/dist/ai-agent/dist/tools/tool-adapter.js +0 -1
- package/dist/bot/auto-responder.d.ts +0 -25
- package/dist/bot/feedback-loop.d.ts +0 -19
- package/dist/bot/index.d.ts +0 -4
- package/dist/bot/tools.d.ts +0 -14
- package/dist/index.d.ts +0 -8
- package/dist/rag/index.d.ts +0 -2
- package/dist/rag/ticket-resolver.d.ts +0 -24
- package/dist/spec.d.ts +0 -12
- package/dist/tickets/classifier.d.ts +0 -24
- package/dist/tickets/index.d.ts +0 -2
- package/dist/types.d.ts +0 -75
package/dist/bot/tools.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{_enum as e,array as t,boolean as n,number as r,object as i,record as a,string as o}from"../node_modules/zod/v4/classic/schemas.js";const s=i({id:o(),subject:o(),body:o(),channel:e([`email`,`chat`,`phone`,`portal`]),customerName:o().optional(),customerEmail:o().optional(),metadata:i().optional()}),c=i({label:o(),url:o().optional(),snippet:o().optional(),score:r().optional()}),l=i({type:e([`respond`,`escalate`,`refund`,`manual`]),label:o(),payload:a(o(),o())}),u=i({ticketId:o(),answer:o(),confidence:r(),citations:c.array(),actions:l.array(),escalationReason:o().optional(),knowledgeUpdates:t(o()).optional()}),d=i({ticketId:o(),category:e([`billing`,`technical`,`product`,`account`,`compliance`,`other`]),priority:e([`urgent`,`high`,`medium`,`low`]),sentiment:e([`positive`,`neutral`,`negative`,`frustrated`]),intents:t(o()),tags:t(o()),confidence:r(),escalationRequired:n().optional()});function f(e){if(!e||typeof e!=`object`||!(`ticket`in e))throw Error(`Input must include ticket`);let t=e.ticket;if(!t?.id)throw Error(`Ticket is missing id`);return t}function p(e){if(!(!e||typeof e!=`object`||!(`resolution`in e)))return e.resolution}function m(e){if(!(!e||typeof e!=`object`||!(`classification`in e)))return e.classification}function h(e){return[{title:`support_classify_ticket`,description:`Classify a ticket for priority, sentiment, and category`,inputSchema:i({ticket:s}),execute:async t=>{let n=f(t),r=await e.classifier.classify(n);return{content:JSON.stringify(r),metadata:{ticketId:n.id}}}},{title:`support_resolve_ticket`,description:`Generate a knowledge-grounded resolution for a ticket`,inputSchema:i({ticket:s}),execute:async t=>{let n=f(t),r=await e.resolver.resolve(n);return{content:JSON.stringify(r),metadata:{ticketId:n.id}}}},{title:`support_draft_response`,description:`Draft a user-facing reply based on resolution + classification`,inputSchema:i({ticket:s,resolution:u,classification:d}),execute:async t=>{let n=f(t),r=p(t),i=m(t);if(!r||!i)throw Error(`resolution and classification are required`);let a=await e.responder.draft(n,r,i);return{content:JSON.stringify(a),metadata:{ticketId:n.id}}}}]}export{h as createSupportTools};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$constructor as e}from"../core/core.js";import{jsonStringifyReplacer as t}from"../core/util.js";import{$ZodError as n,flattenError as r,formatError as i}from"../core/errors.js";const a=(e,a)=>{n.init(e,a),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>i(e,t)},flatten:{value:t=>r(e,t)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,t,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,t,2)}},isEmpty:{get(){return e.issues.length===0}}})};e(`ZodError`,a);const o=e(`ZodError`,a,{Parent:Error});export{o as ZodRealError};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$constructor as e}from"../core/core.js";import{$ZodISODate as t,$ZodISODateTime as n,$ZodISODuration as r,$ZodISOTime as i}from"../core/schemas.js";import{_isoDate as a,_isoDateTime as o,_isoDuration as s,_isoTime as c}from"../core/api.js";import{ZodStringFormat as l}from"./schemas.js";const u=e(`ZodISODateTime`,(e,t)=>{n.init(e,t),l.init(e,t)});function d(e){return o(u,e)}const f=e(`ZodISODate`,(e,n)=>{t.init(e,n),l.init(e,n)});function p(e){return a(f,e)}const m=e(`ZodISOTime`,(e,t)=>{i.init(e,t),l.init(e,t)});function h(e){return c(m,e)}const g=e(`ZodISODuration`,(e,t)=>{r.init(e,t),l.init(e,t)});function _(e){return s(g,e)}export{p as date,d as datetime,_ as duration,h as time};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_decode as e,_decodeAsync as t,_encode as n,_encodeAsync as r,_parse as i,_parseAsync as a,_safeDecode as o,_safeDecodeAsync as s,_safeEncode as c,_safeEncodeAsync as l,_safeParse as u,_safeParseAsync as d}from"../core/parse.js";import{ZodRealError as f}from"./errors.js";const p=i(f),m=a(f),h=u(f),g=d(f),_=n(f),v=e(f),y=r(f),b=t(f),x=c(f),S=o(f),C=l(f),w=s(f);export{v as decode,b as decodeAsync,_ as encode,y as encodeAsync,p as parse,m as parseAsync,S as safeDecode,w as safeDecodeAsync,x as safeEncode,C as safeEncodeAsync,h as safeParse,g as safeParseAsync};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ZodEncodeError as e,$constructor as t}from"../core/core.js";import{clone as n,defineLazy as r,extend as i,issue as a,merge as o,mergeDefs as ee,normalizeParams as s,omit as c,partial as te,pick as ne,required as re,safeExtend as ie,shallowClone as l}from"../core/util.js";import{$ZodArray as ae,$ZodBase64 as oe,$ZodBase64URL as se,$ZodBoolean as ce,$ZodCIDRv4 as le,$ZodCIDRv6 as ue,$ZodCUID as de,$ZodCUID2 as fe,$ZodCatch as pe,$ZodCustom as me,$ZodDefault as he,$ZodE164 as ge,$ZodEmail as _e,$ZodEmoji as ve,$ZodEnum as ye,$ZodGUID as be,$ZodIPv4 as xe,$ZodIPv6 as Se,$ZodIntersection as Ce,$ZodJWT as we,$ZodKSUID as Te,$ZodNanoID as Ee,$ZodNever as De,$ZodNonOptional as u,$ZodNullable as d,$ZodNumber as f,$ZodNumberFormat as p,$ZodObjectJIT as m,$ZodOptional as h,$ZodPipe as g,$ZodPrefault as _,$ZodReadonly as v,$ZodRecord as y,$ZodString as b,$ZodStringFormat as x,$ZodTransform as S,$ZodType as C,$ZodULID as w,$ZodURL as T,$ZodUUID as E,$ZodUnion as Oe,$ZodUnknown as ke,$ZodXID as Ae}from"../core/schemas.js";import{globalRegistry as D}from"../core/registries.js";import{_array as je,_base64 as Me,_base64url as Ne,_boolean as Pe,_cidrv4 as Fe,_cidrv6 as Ie,_cuid as Le,_cuid2 as Re,_e164 as ze,_email as Be,_emoji as Ve,_endsWith as He,_gt as O,_gte as k,_guid as A,_includes as Ue,_int as We,_ipv4 as Ge,_ipv6 as Ke,_jwt as qe,_ksuid as Je,_length as j,_lowercase as Ye,_lt as M,_lte as N,_maxLength as P,_minLength as F,_multipleOf as I,_nanoid as Xe,_never as Ze,_normalize as Qe,_number as $e,_overwrite as et,_refine as tt,_regex as nt,_slugify as rt,_startsWith as it,_string as at,_superRefine as ot,_toLowerCase as st,_toUpperCase as ct,_trim as lt,_ulid as ut,_unknown as dt,_uppercase as ft,_url as pt,_uuid as mt,_uuidv4 as ht,_uuidv6 as gt,_uuidv7 as L,_xid as _t,describe as vt,meta as yt}from"../core/api.js";import{date as bt,datetime as xt,duration as St,time as Ct}from"./iso.js";import{decode as wt,decodeAsync as Tt,encode as Et,encodeAsync as Dt,parse as Ot,parseAsync as kt,safeDecode as At,safeDecodeAsync as jt,safeEncode as Mt,safeEncodeAsync as Nt,safeParse as Pt,safeParseAsync as Ft}from"./parse.js";const R=t(`ZodType`,(e,t)=>(C.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(ee(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,r)=>n(e,t,r),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Ot(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Pt(e,t,n),e.parseAsync=async(t,n)=>kt(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Ft(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Et(e,t,n),e.decode=(t,n)=>wt(e,t,n),e.encodeAsync=async(t,n)=>Dt(e,t,n),e.decodeAsync=async(t,n)=>Tt(e,t,n),e.safeEncode=(t,n)=>Mt(e,t,n),e.safeDecode=(t,n)=>At(e,t,n),e.safeEncodeAsync=async(t,n)=>Nt(e,t,n),e.safeDecodeAsync=async(t,n)=>jt(e,t,n),e.refine=(t,n)=>e.check(Mn(t,n)),e.superRefine=t=>e.check(Nn(t)),e.overwrite=t=>e.check(et(t)),e.optional=()=>X(e),e.nullable=()=>Z(e),e.nullish=()=>X(Z(e)),e.nonoptional=t=>Tn(e,t),e.array=()=>K(e),e.or=t=>pn([e,t]),e.and=t=>hn(e,t),e.transform=t=>$(e,yn(t)),e.default=t=>Sn(e,t),e.prefault=t=>wn(e,t),e.catch=t=>Dn(e,t),e.pipe=t=>$(e,t),e.readonly=()=>An(e),e.describe=t=>{let n=e.clone();return D.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return D.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return D.get(e);let n=e.clone();return D.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),z=t(`_ZodString`,(e,t)=>{b.init(e,t),R.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(nt(...t)),e.includes=(...t)=>e.check(Ue(...t)),e.startsWith=(...t)=>e.check(it(...t)),e.endsWith=(...t)=>e.check(He(...t)),e.min=(...t)=>e.check(F(...t)),e.max=(...t)=>e.check(P(...t)),e.length=(...t)=>e.check(j(...t)),e.nonempty=(...t)=>e.check(F(1,...t)),e.lowercase=t=>e.check(Ye(t)),e.uppercase=t=>e.check(ft(t)),e.trim=()=>e.check(lt()),e.normalize=(...t)=>e.check(Qe(...t)),e.toLowerCase=()=>e.check(st()),e.toUpperCase=()=>e.check(ct()),e.slugify=()=>e.check(rt())}),It=t(`ZodString`,(e,t)=>{b.init(e,t),z.init(e,t),e.email=t=>e.check(Be(Rt,t)),e.url=t=>e.check(pt(zt,t)),e.jwt=t=>e.check(qe(en,t)),e.emoji=t=>e.check(Ve(Bt,t)),e.guid=t=>e.check(A(V,t)),e.uuid=t=>e.check(mt(H,t)),e.uuidv4=t=>e.check(ht(H,t)),e.uuidv6=t=>e.check(gt(H,t)),e.uuidv7=t=>e.check(L(H,t)),e.nanoid=t=>e.check(Xe(Vt,t)),e.guid=t=>e.check(A(V,t)),e.cuid=t=>e.check(Le(Ht,t)),e.cuid2=t=>e.check(Re(Ut,t)),e.ulid=t=>e.check(ut(Wt,t)),e.base64=t=>e.check(Me(Zt,t)),e.base64url=t=>e.check(Ne(Qt,t)),e.xid=t=>e.check(_t(Gt,t)),e.ksuid=t=>e.check(Je(Kt,t)),e.ipv4=t=>e.check(Ge(qt,t)),e.ipv6=t=>e.check(Ke(Jt,t)),e.cidrv4=t=>e.check(Fe(Yt,t)),e.cidrv6=t=>e.check(Ie(Xt,t)),e.e164=t=>e.check(ze($t,t)),e.datetime=t=>e.check(xt(t)),e.date=t=>e.check(bt(t)),e.time=t=>e.check(Ct(t)),e.duration=t=>e.check(St(t))});function Lt(e){return at(It,e)}const B=t(`ZodStringFormat`,(e,t)=>{x.init(e,t),z.init(e,t)}),Rt=t(`ZodEmail`,(e,t)=>{_e.init(e,t),B.init(e,t)}),V=t(`ZodGUID`,(e,t)=>{be.init(e,t),B.init(e,t)}),H=t(`ZodUUID`,(e,t)=>{E.init(e,t),B.init(e,t)}),zt=t(`ZodURL`,(e,t)=>{T.init(e,t),B.init(e,t)}),Bt=t(`ZodEmoji`,(e,t)=>{ve.init(e,t),B.init(e,t)}),Vt=t(`ZodNanoID`,(e,t)=>{Ee.init(e,t),B.init(e,t)}),Ht=t(`ZodCUID`,(e,t)=>{de.init(e,t),B.init(e,t)}),Ut=t(`ZodCUID2`,(e,t)=>{fe.init(e,t),B.init(e,t)}),Wt=t(`ZodULID`,(e,t)=>{w.init(e,t),B.init(e,t)}),Gt=t(`ZodXID`,(e,t)=>{Ae.init(e,t),B.init(e,t)}),Kt=t(`ZodKSUID`,(e,t)=>{Te.init(e,t),B.init(e,t)}),qt=t(`ZodIPv4`,(e,t)=>{xe.init(e,t),B.init(e,t)}),Jt=t(`ZodIPv6`,(e,t)=>{Se.init(e,t),B.init(e,t)}),Yt=t(`ZodCIDRv4`,(e,t)=>{le.init(e,t),B.init(e,t)}),Xt=t(`ZodCIDRv6`,(e,t)=>{ue.init(e,t),B.init(e,t)}),Zt=t(`ZodBase64`,(e,t)=>{oe.init(e,t),B.init(e,t)}),Qt=t(`ZodBase64URL`,(e,t)=>{se.init(e,t),B.init(e,t)}),$t=t(`ZodE164`,(e,t)=>{ge.init(e,t),B.init(e,t)}),en=t(`ZodJWT`,(e,t)=>{we.init(e,t),B.init(e,t)}),U=t(`ZodNumber`,(e,t)=>{f.init(e,t),R.init(e,t),e.gt=(t,n)=>e.check(O(t,n)),e.gte=(t,n)=>e.check(k(t,n)),e.min=(t,n)=>e.check(k(t,n)),e.lt=(t,n)=>e.check(M(t,n)),e.lte=(t,n)=>e.check(N(t,n)),e.max=(t,n)=>e.check(N(t,n)),e.int=t=>e.check(W(t)),e.safe=t=>e.check(W(t)),e.positive=t=>e.check(O(0,t)),e.nonnegative=t=>e.check(k(0,t)),e.negative=t=>e.check(M(0,t)),e.nonpositive=t=>e.check(N(0,t)),e.multipleOf=(t,n)=>e.check(I(t,n)),e.step=(t,n)=>e.check(I(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function tn(e){return $e(U,e)}const nn=t(`ZodNumberFormat`,(e,t)=>{p.init(e,t),U.init(e,t)});function W(e){return We(nn,e)}const rn=t(`ZodBoolean`,(e,t)=>{ce.init(e,t),R.init(e,t)});function an(e){return Pe(rn,e)}const on=t(`ZodUnknown`,(e,t)=>{ke.init(e,t),R.init(e,t)});function G(){return dt(on)}const sn=t(`ZodNever`,(e,t)=>{De.init(e,t),R.init(e,t)});function cn(e){return Ze(sn,e)}const ln=t(`ZodArray`,(e,t)=>{ae.init(e,t),R.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(F(t,n)),e.nonempty=t=>e.check(F(1,t)),e.max=(t,n)=>e.check(P(t,n)),e.length=(t,n)=>e.check(j(t,n)),e.unwrap=()=>e.element});function K(e,t){return je(ln,e,t)}const un=t(`ZodObject`,(e,t)=>{m.init(e,t),R.init(e,t),r(e,`shape`,()=>t.shape),e.keyof=()=>J(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:G()}),e.loose=()=>e.clone({...e._zod.def,catchall:G()}),e.strict=()=>e.clone({...e._zod.def,catchall:cn()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>i(e,t),e.safeExtend=t=>ie(e,t),e.merge=t=>o(e,t),e.pick=t=>ne(e,t),e.omit=t=>c(e,t),e.partial=(...t)=>te(Y,e,t[0]),e.required=(...t)=>re(Q,e,t[0])});function dn(e,t){return new un({type:`object`,shape:e??{},...s(t)})}const fn=t(`ZodUnion`,(e,t)=>{Oe.init(e,t),R.init(e,t),e.options=t.options});function pn(e,t){return new fn({type:`union`,options:e,...s(t)})}const mn=t(`ZodIntersection`,(e,t)=>{Ce.init(e,t),R.init(e,t)});function hn(e,t){return new mn({type:`intersection`,left:e,right:t})}const gn=t(`ZodRecord`,(e,t)=>{y.init(e,t),R.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function _n(e,t,n){return new gn({type:`record`,keyType:e,valueType:t,...s(n)})}const q=t(`ZodEnum`,(e,t)=>{ye.init(e,t),R.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new q({...t,checks:[],...s(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new q({...t,checks:[],...s(r),entries:i})}});function J(e,t){return new q({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...s(t)})}const vn=t(`ZodTransform`,(t,n)=>{S.init(t,n),R.init(t,n),t._zod.parse=(r,i)=>{if(i.direction===`backward`)throw new e(t.constructor.name);r.addIssue=e=>{if(typeof e==`string`)r.issues.push(a(e,r.value,n));else{let n=e;n.fatal&&(n.continue=!1),n.code??=`custom`,n.input??=r.value,n.inst??=t,r.issues.push(a(n))}};let o=n.transform(r.value,r);return o instanceof Promise?o.then(e=>(r.value=e,r)):(r.value=o,r)}});function yn(e){return new vn({type:`transform`,transform:e})}const Y=t(`ZodOptional`,(e,t)=>{h.init(e,t),R.init(e,t),e.unwrap=()=>e._zod.def.innerType});function X(e){return new Y({type:`optional`,innerType:e})}const bn=t(`ZodNullable`,(e,t)=>{d.init(e,t),R.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Z(e){return new bn({type:`nullable`,innerType:e})}const xn=t(`ZodDefault`,(e,t)=>{he.init(e,t),R.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Sn(e,t){return new xn({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():l(t)}})}const Cn=t(`ZodPrefault`,(e,t)=>{_.init(e,t),R.init(e,t),e.unwrap=()=>e._zod.def.innerType});function wn(e,t){return new Cn({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():l(t)}})}const Q=t(`ZodNonOptional`,(e,t)=>{u.init(e,t),R.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Tn(e,t){return new Q({type:`nonoptional`,innerType:e,...s(t)})}const En=t(`ZodCatch`,(e,t)=>{pe.init(e,t),R.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Dn(e,t){return new En({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const On=t(`ZodPipe`,(e,t)=>{g.init(e,t),R.init(e,t),e.in=t.in,e.out=t.out});function $(e,t){return new On({type:`pipe`,in:e,out:t})}const kn=t(`ZodReadonly`,(e,t)=>{v.init(e,t),R.init(e,t),e.unwrap=()=>e._zod.def.innerType});function An(e){return new kn({type:`readonly`,innerType:e})}const jn=t(`ZodCustom`,(e,t)=>{me.init(e,t),R.init(e,t)});function Mn(e,t={}){return tt(jn,e,t)}function Nn(e){return ot(e)}export{B as ZodStringFormat,J as _enum,K as array,an as boolean,tn as number,dn as object,_n as record,Lt as string};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{issue as e,normalizeParams as t,slugify as n}from"./util.js";import{$ZodCheck as r,$ZodCheckEndsWith as i,$ZodCheckGreaterThan as a,$ZodCheckIncludes as ee,$ZodCheckLengthEquals as o,$ZodCheckLessThan as s,$ZodCheckLowerCase as te,$ZodCheckMaxLength as c,$ZodCheckMinLength as l,$ZodCheckMultipleOf as u,$ZodCheckOverwrite as d,$ZodCheckRegex as f,$ZodCheckStartsWith as p,$ZodCheckUpperCase as m}from"./checks.js";import{globalRegistry as h}from"./registries.js";function g(e,n){return new e({type:`string`,...t(n)})}function _(e,n){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...t(n)})}function v(e,n){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...t(n)})}function y(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...t(n)})}function b(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...t(n)})}function x(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...t(n)})}function S(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...t(n)})}function C(e,n){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...t(n)})}function w(e,n){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...t(n)})}function T(e,n){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...t(n)})}function E(e,n){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...t(n)})}function D(e,n){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...t(n)})}function O(e,n){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...t(n)})}function k(e,n){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...t(n)})}function A(e,n){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...t(n)})}function j(e,n){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...t(n)})}function M(e,n){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...t(n)})}function N(e,n){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...t(n)})}function P(e,n){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...t(n)})}function F(e,n){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...t(n)})}function I(e,n){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...t(n)})}function L(e,n){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...t(n)})}function R(e,n){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...t(n)})}function z(e,n){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...t(n)})}function B(e,n){return new e({type:`string`,format:`date`,check:`string_format`,...t(n)})}function V(e,n){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...t(n)})}function H(e,n){return new e({type:`string`,format:`duration`,check:`string_format`,...t(n)})}function U(e,n){return new e({type:`number`,checks:[],...t(n)})}function ne(e,n){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...t(n)})}function W(e,n){return new e({type:`boolean`,...t(n)})}function G(e){return new e({type:`unknown`})}function K(e,n){return new e({type:`never`,...t(n)})}function q(e,n){return new s({check:`less_than`,...t(n),value:e,inclusive:!1})}function J(e,n){return new s({check:`less_than`,...t(n),value:e,inclusive:!0})}function Y(e,n){return new a({check:`greater_than`,...t(n),value:e,inclusive:!1})}function X(e,n){return new a({check:`greater_than`,...t(n),value:e,inclusive:!0})}function Z(e,n){return new u({check:`multiple_of`,...t(n),value:e})}function re(e,n){return new c({check:`max_length`,...t(n),maximum:e})}function ie(e,n){return new l({check:`min_length`,...t(n),minimum:e})}function ae(e,n){return new o({check:`length_equals`,...t(n),length:e})}function oe(e,n){return new f({check:`string_format`,format:`regex`,...t(n),pattern:e})}function se(e){return new te({check:`string_format`,format:`lowercase`,...t(e)})}function ce(e){return new m({check:`string_format`,format:`uppercase`,...t(e)})}function le(e,n){return new ee({check:`string_format`,format:`includes`,...t(n),includes:e})}function ue(e,n){return new p({check:`string_format`,format:`starts_with`,...t(n),prefix:e})}function de(e,n){return new i({check:`string_format`,format:`ends_with`,...t(n),suffix:e})}function Q(e){return new d({check:`overwrite`,tx:e})}function fe(e){return Q(t=>t.normalize(e))}function pe(){return Q(e=>e.trim())}function $(){return Q(e=>e.toLowerCase())}function me(){return Q(e=>e.toUpperCase())}function he(){return Q(e=>n(e))}function ge(e,n,r){return new e({type:`array`,element:n,...t(r)})}function _e(e,n,r){return new e({type:`custom`,check:`custom`,fn:n,...t(r)})}function ve(t){let n=ye(r=>(r.addIssue=t=>{if(typeof t==`string`)r.issues.push(e(t,r.value,n._zod.def));else{let i=t;i.fatal&&(i.continue=!1),i.code??=`custom`,i.input??=r.value,i.inst??=n,i.continue??=!n._zod.def.abort,r.issues.push(e(i))}},t(r.value,r)));return n}function ye(e,n){let i=new r({check:`custom`,...t(n)});return i._zod.check=e,i}function be(e){let t=new r({check:`describe`});return t._zod.onattach=[t=>{let n=h.get(t)??{};h.add(t,{...n,description:e})}],t._zod.check=()=>{},t}function xe(e){let t=new r({check:`meta`});return t._zod.onattach=[t=>{let n=h.get(t)??{};h.add(t,{...n,...e})}],t._zod.check=()=>{},t}export{ge as _array,F as _base64,I as _base64url,W as _boolean,N as _cidrv4,P as _cidrv6,E as _cuid,D as _cuid2,L as _e164,_ as _email,w as _emoji,de as _endsWith,Y as _gt,X as _gte,v as _guid,le as _includes,ne as _int,j as _ipv4,M as _ipv6,B as _isoDate,z as _isoDateTime,H as _isoDuration,V as _isoTime,R as _jwt,A as _ksuid,ae as _length,se as _lowercase,q as _lt,J as _lte,re as _maxLength,ie as _minLength,Z as _multipleOf,T as _nanoid,K as _never,fe as _normalize,U as _number,Q as _overwrite,_e as _refine,oe as _regex,he as _slugify,ue as _startsWith,g as _string,ve as _superRefine,$ as _toLowerCase,me as _toUpperCase,pe as _trim,O as _ulid,G as _unknown,ce as _uppercase,C as _url,y as _uuid,b as _uuidv4,x as _uuidv6,S as _uuidv7,k as _xid,be as describe,xe as meta};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$constructor as e}from"./core.js";import{NUMBER_FORMAT_RANGES as t,escapeRegex as n,floatSafeRemainder as r,getLengthableOrigin as i,nullish as a}from"./util.js";import{integer as o,lowercase as s,uppercase as c}from"./regexes.js";const l=e(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),u={number:`number`,bigint:`bigint`,object:`date`},d=e(`$ZodCheckLessThan`,(e,t)=>{l.init(e,t);let n=u[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),f=e(`$ZodCheckGreaterThan`,(e,t)=>{l.init(e,t);let n=u[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),p=e(`$ZodCheckMultipleOf`,(e,t)=>{l.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):r(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),m=e(`$ZodCheckNumberFormat`,(e,n)=>{l.init(e,n),n.format=n.format||`float64`;let r=n.format?.includes(`int`),i=r?`int`:`number`,[a,s]=t[n.format];e._zod.onattach.push(e=>{let t=e._zod.bag;t.format=n.format,t.minimum=a,t.maximum=s,r&&(t.pattern=o)}),e._zod.check=t=>{let o=t.value;if(r){if(!Number.isInteger(o)){t.issues.push({expected:i,format:n.format,code:`invalid_type`,continue:!1,input:o,inst:e});return}if(!Number.isSafeInteger(o)){o>0?t.issues.push({input:o,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:i,continue:!n.abort}):t.issues.push({input:o,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:i,continue:!n.abort});return}}o<a&&t.issues.push({origin:`number`,input:o,code:`too_small`,minimum:a,inclusive:!0,inst:e,continue:!n.abort}),o>s&&t.issues.push({origin:`number`,input:o,code:`too_big`,maximum:s,inst:e})}}),h=e(`$ZodCheckMaxLength`,(e,t)=>{var n;l.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!a(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let a=i(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),g=e(`$ZodCheckMinLength`,(e,t)=>{var n;l.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!a(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let a=i(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),_=e(`$ZodCheckLengthEquals`,(e,t)=>{var n;l.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!a(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,a=r.length;if(a===t.length)return;let o=i(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),v=e(`$ZodCheckStringFormat`,(e,t)=>{var n,r;l.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),y=e(`$ZodCheckRegex`,(e,t)=>{v.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),b=e(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=s,v.init(e,t)}),x=e(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=c,v.init(e,t)}),S=e(`$ZodCheckIncludes`,(e,t)=>{l.init(e,t);let r=n(t.includes),i=new RegExp(typeof t.position==`number`?`^.{${t.position}}${r}`:r);t.pattern=i,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(i)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),C=e(`$ZodCheckStartsWith`,(e,t)=>{l.init(e,t);let r=RegExp(`^${n(t.prefix)}.*`);t.pattern??=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),w=e(`$ZodCheckEndsWith`,(e,t)=>{l.init(e,t);let r=RegExp(`.*${n(t.suffix)}$`);t.pattern??=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),T=e(`$ZodCheckOverwrite`,(e,t)=>{l.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});export{l as $ZodCheck,w as $ZodCheckEndsWith,f as $ZodCheckGreaterThan,S as $ZodCheckIncludes,_ as $ZodCheckLengthEquals,d as $ZodCheckLessThan,b as $ZodCheckLowerCase,h as $ZodCheckMaxLength,g as $ZodCheckMinLength,p as $ZodCheckMultipleOf,m as $ZodCheckNumberFormat,T as $ZodCheckOverwrite,y as $ZodCheckRegex,C as $ZodCheckStartsWith,v as $ZodCheckStringFormat,x as $ZodCheckUpperCase};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.freeze({status:`aborted`});function e(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var t=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},n=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};const r={};function i(e){return e&&Object.assign(r,e),r}export{t as $ZodAsyncError,n as $ZodEncodeError,e as $constructor,i as config,r as globalConfig};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
|
|
2
|
+
`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
|
|
3
|
+
`))}};export{e as Doc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$constructor as e}from"./core.js";import{jsonStringifyReplacer as t}from"./util.js";const n=(e,n)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:n,enumerable:!1}),e.message=JSON.stringify(n,t,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},r=e(`$ZodError`,n),i=e(`$ZodError`,n,{Parent:Error});function a(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function o(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}export{r as $ZodError,i as $ZodRealError,a as flattenError,o as formatError};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ZodAsyncError as e,config as t}from"./core.js";import{captureStackTrace as n,finalizeIssue as r}from"./util.js";import{$ZodError as i,$ZodRealError as a}from"./errors.js";const o=i=>(a,o,s,c)=>{let l=s?Object.assign(s,{async:!1}):{async:!1},u=a._zod.run({value:o,issues:[]},l);if(u instanceof Promise)throw new e;if(u.issues.length){let e=new(c?.Err??i)(u.issues.map(e=>r(e,l,t())));throw n(e,c?.callee),e}return u.value},s=e=>async(i,a,o,s)=>{let c=o?Object.assign(o,{async:!0}):{async:!0},l=i._zod.run({value:a,issues:[]},c);if(l instanceof Promise&&(l=await l),l.issues.length){let i=new(s?.Err??e)(l.issues.map(e=>r(e,c,t())));throw n(i,s?.callee),i}return l.value},c=n=>(a,o,s)=>{let c=s?{...s,async:!1}:{async:!1},l=a._zod.run({value:o,issues:[]},c);if(l instanceof Promise)throw new e;return l.issues.length?{success:!1,error:new(n??i)(l.issues.map(e=>r(e,c,t())))}:{success:!0,data:l.value}},l=c(a),u=e=>async(n,i,a)=>{let o=a?Object.assign(a,{async:!0}):{async:!0},s=n._zod.run({value:i,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(e=>r(e,o,t())))}:{success:!0,data:s.value}},d=u(a),f=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return o(e)(t,n,i)},p=e=>(t,n,r)=>o(e)(t,n,r),m=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return s(e)(t,n,i)},h=e=>async(t,n,r)=>s(e)(t,n,r),g=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return c(e)(t,n,i)},_=e=>(t,n,r)=>c(e)(t,n,r),v=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return u(e)(t,n,i)},y=e=>async(t,n,r)=>u(e)(t,n,r);export{p as _decode,h as _decodeAsync,f as _encode,m as _encodeAsync,o as _parse,s as _parseAsync,_ as _safeDecode,y as _safeDecodeAsync,g as _safeEncode,v as _safeEncodeAsync,c as _safeParse,u as _safeParseAsync,l as safeParse,d as safeParseAsync};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=/^[cC][^\s-]{8,}$/,t=/^[0-9a-z]+$/,n=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,r=/^[0-9a-vA-V]{20}$/,i=/^[A-Za-z0-9]{27}$/,a=/^[a-zA-Z0-9_-]{21}$/,o=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,s=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,c=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,l=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function u(){return RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)}const d=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,f=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,p=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,m=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,h=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,g=/^[A-Za-z0-9_-]*$/,_=/^\+(?:[0-9]){6,14}[0-9]$/,v=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,y=RegExp(`^${v}$`);function b(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function x(e){return RegExp(`^${b(e)}$`)}function S(e){let t=b({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${v}T(?:${r})$`)}const C=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},w=/^-?\d+$/,T=/^-?\d+(?:\.\d+)?/,E=/^(?:true|false)$/i,D=/^[^A-Z]*$/,O=/^[^a-z]*$/;export{h as base64,g as base64url,E as boolean,p as cidrv4,m as cidrv6,e as cuid,t as cuid2,y as date,S as datetime,o as duration,_ as e164,l as email,u as emoji,s as guid,w as integer,d as ipv4,f as ipv6,i as ksuid,D as lowercase,a as nanoid,T as number,C as string,x as time,n as ulid,O as uppercase,c as uuid,r as xid};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e,t=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function n(){return new t}(e=globalThis).__zod_globalRegistry??(e.__zod_globalRegistry=n());const r=globalThis.__zod_globalRegistry;export{r as globalRegistry};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{$ZodAsyncError as e,$ZodEncodeError as t,$constructor as n,config as r,globalConfig as i}from"./core.js";import{aborted as a,allowsEval as o,cached as s,cleanRegex as c,clone as l,defineLazy as u,esc as d,escapeRegex as f,finalizeIssue as p,getEnumValues as m,isObject as h,isPlainObject as g,issue as _,optionalKeys as ee,prefixIssues as v,propertyKeyTypes as y}from"./util.js";import{safeParse as b,safeParseAsync as x}from"./parse.js";import{base64 as te,base64url as S,boolean as ne,cidrv4 as re,cidrv6 as ie,cuid as ae,cuid2 as oe,date as se,datetime as ce,duration as le,e164 as ue,email as de,emoji as fe,guid as pe,ipv4 as me,ipv6 as he,ksuid as ge,nanoid as C,number as w,string as T,time as E,ulid as D,uuid as O,xid as k}from"./regexes.js";import{$ZodCheck as A,$ZodCheckNumberFormat as j,$ZodCheckStringFormat as M}from"./checks.js";import{Doc as N}from"./doc.js";import{version as P}from"./versions.js";const F=n(`$ZodType`,(t,n)=>{var r;t??={},t._zod.def=n,t._zod.bag=t._zod.bag||{},t._zod.version=P;let i=[...t._zod.def.checks??[]];t._zod.traits.has(`$ZodCheck`)&&i.unshift(t);for(let e of i)for(let n of e._zod.onattach)n(t);if(i.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let n=(t,n,r)=>{let i=a(t),o;for(let s of n){if(s._zod.def.when){if(!s._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,c=s._zod.check(t);if(c instanceof Promise&&r?.async===!1)throw new e;if(o||c instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await c,t.issues.length!==n&&(i||=a(t,n))});else{if(t.issues.length===n)continue;i||=a(t,n)}}return o?o.then(()=>t):t},r=(r,o,s)=>{if(a(r))return r.aborted=!0,r;let c=n(o,i,s);if(c instanceof Promise){if(s.async===!1)throw new e;return c.then(e=>t._zod.parse(e,s))}return t._zod.parse(c,s)};t._zod.run=(a,o)=>{if(o.skipChecks)return t._zod.parse(a,o);if(o.direction===`backward`){let e=t._zod.parse({value:a.value,issues:[]},{...o,skipChecks:!0});return e instanceof Promise?e.then(e=>r(e,a,o)):r(e,a,o)}let s=t._zod.parse(a,o);if(s instanceof Promise){if(o.async===!1)throw new e;return s.then(e=>n(e,i,o))}return n(s,i,o)}}t[`~standard`]={validate:e=>{try{let n=b(t,e);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return x(t,e).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}}),I=n(`$ZodString`,(e,t)=>{F.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??T(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),L=n(`$ZodStringFormat`,(e,t)=>{M.init(e,t),I.init(e,t)}),_e=n(`$ZodGUID`,(e,t)=>{t.pattern??=pe,L.init(e,t)}),ve=n(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=O(e)}else t.pattern??=O();L.init(e,t)}),ye=n(`$ZodEmail`,(e,t)=>{t.pattern??=de,L.init(e,t)}),be=n(`$ZodURL`,(e,t)=>{L.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),xe=n(`$ZodEmoji`,(e,t)=>{t.pattern??=fe(),L.init(e,t)}),Se=n(`$ZodNanoID`,(e,t)=>{t.pattern??=C,L.init(e,t)}),Ce=n(`$ZodCUID`,(e,t)=>{t.pattern??=ae,L.init(e,t)}),we=n(`$ZodCUID2`,(e,t)=>{t.pattern??=oe,L.init(e,t)}),Te=n(`$ZodULID`,(e,t)=>{t.pattern??=D,L.init(e,t)}),Ee=n(`$ZodXID`,(e,t)=>{t.pattern??=k,L.init(e,t)}),De=n(`$ZodKSUID`,(e,t)=>{t.pattern??=ge,L.init(e,t)}),Oe=n(`$ZodISODateTime`,(e,t)=>{t.pattern??=ce(t),L.init(e,t)}),ke=n(`$ZodISODate`,(e,t)=>{t.pattern??=se,L.init(e,t)}),Ae=n(`$ZodISOTime`,(e,t)=>{t.pattern??=E(t),L.init(e,t)}),je=n(`$ZodISODuration`,(e,t)=>{t.pattern??=le,L.init(e,t)}),Me=n(`$ZodIPv4`,(e,t)=>{t.pattern??=me,L.init(e,t),e._zod.bag.format=`ipv4`}),Ne=n(`$ZodIPv6`,(e,t)=>{t.pattern??=he,L.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),Pe=n(`$ZodCIDRv4`,(e,t)=>{t.pattern??=re,L.init(e,t)}),Fe=n(`$ZodCIDRv6`,(e,t)=>{t.pattern??=ie,L.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function R(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const Ie=n(`$ZodBase64`,(e,t)=>{t.pattern??=te,L.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{R(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Le(e){if(!S.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return R(t.padEnd(Math.ceil(t.length/4)*4,`=`))}const Re=n(`$ZodBase64URL`,(e,t)=>{t.pattern??=S,L.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Le(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),ze=n(`$ZodE164`,(e,t)=>{t.pattern??=ue,L.init(e,t)});function Be(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}const Ve=n(`$ZodJWT`,(e,t)=>{L.init(e,t),e._zod.check=n=>{Be(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),z=n(`$ZodNumber`,(e,t)=>{F.init(e,t),e._zod.pattern=e._zod.bag.pattern??w,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),He=n(`$ZodNumberFormat`,(e,t)=>{j.init(e,t),z.init(e,t)}),Ue=n(`$ZodBoolean`,(e,t)=>{F.init(e,t),e._zod.pattern=ne,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),We=n(`$ZodUnknown`,(e,t)=>{F.init(e,t),e._zod.parse=e=>e}),Ge=n(`$ZodNever`,(e,t)=>{F.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function B(e,t,n){e.issues.length&&t.issues.push(...v(n,e.issues)),t.value[n]=e.value}const Ke=n(`$ZodArray`,(e,t)=>{F.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>B(t,n,e))):B(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function V(e,t,n,r){e.issues.length&&t.issues.push(...v(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function H(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=ee(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function U(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>V(e,n,i,t))):V(a,n,i,t)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}const qe=n(`$ZodObject`,(e,t)=>{if(F.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=s(()=>H(t));u(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=h,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e]._zod.run({value:s[e],issues:[]},o);n instanceof Promise?c.push(n.then(n=>V(n,t,e,s))):V(n,t,e,s)}return i?U(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),Je=n(`$ZodObjectJIT`,(e,t)=>{qe.init(e,t);let n=e._zod.parse,r=s(()=>H(t)),a=e=>{let t=new N([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=d(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let e of n.keys){let n=a[e],r=d(e);t.write(`const ${n} = ${i(e)};`),t.write(`
|
|
2
|
+
if (${n}.issues.length) {
|
|
3
|
+
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
4
|
+
...iss,
|
|
5
|
+
path: iss.path ? [${r}, ...iss.path] : [${r}]
|
|
6
|
+
})));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
if (${n}.value === undefined) {
|
|
11
|
+
if (${r} in input) {
|
|
12
|
+
newResult[${r}] = undefined;
|
|
13
|
+
}
|
|
14
|
+
} else {
|
|
15
|
+
newResult[${r}] = ${n}.value;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},c,l=h,u=!i.jitless,f=u&&o.value,p=t.catchall,m;e._zod.parse=(i,o)=>{m??=r.value;let s=i.value;return l(s)?u&&f&&o?.async===!1&&o.jitless!==!0?(c||=a(t.shape),i=c(i,o),p?U([],s,i,o,m,e):i):n(i,o):(i.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),i)}});function W(e,t,n,i){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let o=e.filter(e=>!a(e));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>p(e,i,r())))}),t)}const Ye=n(`$ZodUnion`,(e,t)=>{F.init(e,t),u(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),u(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),u(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),u(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>c(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>W(t,i,e,a)):W(s,i,e,a)}}),Xe=n(`$ZodIntersection`,(e,t)=>{F.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>K(e,t,n)):K(e,i,a)}});function G(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(g(e)&&g(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=G(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=G(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function K(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),a(e))return e;let r=G(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Ze=n(`$ZodRecord`,(e,t)=>{F.init(e,t),e._zod.parse=(n,i)=>{let a=n.value;if(!g(a))return n.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),n;let o=[],s=t.keyType._zod.values;if(s){n.value={};let r=new Set;for(let e of s)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){r.add(typeof e==`number`?e.toString():e);let s=t.valueType._zod.run({value:a[e],issues:[]},i);s instanceof Promise?o.push(s.then(t=>{t.issues.length&&n.issues.push(...v(e,t.issues)),n.value[e]=t.value})):(s.issues.length&&n.issues.push(...v(e,s.issues)),n.value[e]=s.value)}let c;for(let e in a)r.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c})}else{n.value={};for(let s of Reflect.ownKeys(a)){if(s===`__proto__`)continue;let c=t.keyType._zod.run({value:s,issues:[]},i);if(c instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(c.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:c.issues.map(e=>p(e,i,r())),input:s,path:[s],inst:e}),n.value[c.value]=c.value;continue}let l=t.valueType._zod.run({value:a[s],issues:[]},i);l instanceof Promise?o.push(l.then(e=>{e.issues.length&&n.issues.push(...v(s,e.issues)),n.value[c.value]=e.value})):(l.issues.length&&n.issues.push(...v(s,l.issues)),n.value[c.value]=l.value)}}return o.length?Promise.all(o).then(()=>n):n}}),Qe=n(`$ZodEnum`,(e,t)=>{F.init(e,t);let n=m(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>y.has(typeof e)).map(e=>typeof e==`string`?f(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),$e=n(`$ZodTransform`,(n,r)=>{F.init(n,r),n._zod.parse=(i,a)=>{if(a.direction===`backward`)throw new t(n.constructor.name);let o=r.transform(i.value,i);if(a.async)return(o instanceof Promise?o:Promise.resolve(o)).then(e=>(i.value=e,i));if(o instanceof Promise)throw new e;return i.value=o,i}});function q(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const J=n(`$ZodOptional`,(e,t)=>{F.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,u(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),u(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${c(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>q(t,e.value)):q(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),et=n(`$ZodNullable`,(e,t)=>{F.init(e,t),u(e._zod,`optin`,()=>t.innerType._zod.optin),u(e._zod,`optout`,()=>t.innerType._zod.optout),u(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${c(e.source)}|null)$`):void 0}),u(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),tt=n(`$ZodDefault`,(e,t)=>{F.init(e,t),e._zod.optin=`optional`,u(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Y(e,t)):Y(r,t)}});function Y(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const nt=n(`$ZodPrefault`,(e,t)=>{F.init(e,t),e._zod.optin=`optional`,u(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),rt=n(`$ZodNonOptional`,(e,t)=>{F.init(e,t),u(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>X(t,e)):X(i,e)}});function X(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const it=n(`$ZodCatch`,(e,t)=>{F.init(e,t),u(e._zod,`optin`,()=>t.innerType._zod.optin),u(e._zod,`optout`,()=>t.innerType._zod.optout),u(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(i=>(e.value=i.value,i.issues.length&&(e.value=t.catchValue({...e,error:{issues:i.issues.map(e=>p(e,n,r()))},input:e.value}),e.issues=[]),e)):(e.value=i.value,i.issues.length&&(e.value=t.catchValue({...e,error:{issues:i.issues.map(e=>p(e,n,r()))},input:e.value}),e.issues=[]),e)}}),at=n(`$ZodPipe`,(e,t)=>{F.init(e,t),u(e._zod,`values`,()=>t.in._zod.values),u(e._zod,`optin`,()=>t.in._zod.optin),u(e._zod,`optout`,()=>t.out._zod.optout),u(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Z(e,t.in,n)):Z(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Z(e,t.out,n)):Z(r,t.out,n)}});function Z(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const ot=n(`$ZodReadonly`,(e,t)=>{F.init(e,t),u(e._zod,`propValues`,()=>t.innerType._zod.propValues),u(e._zod,`values`,()=>t.innerType._zod.values),u(e._zod,`optin`,()=>t.innerType?._zod?.optin),u(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Q):Q(r)}});function Q(e){return e.value=Object.freeze(e.value),e}const st=n(`$ZodCustom`,(e,t)=>{A.init(e,t),F.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>$(t,n,r,e));$(i,n,r,e)}});function $(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(_(e))}}export{Ke as $ZodArray,Ie as $ZodBase64,Re as $ZodBase64URL,Ue as $ZodBoolean,Pe as $ZodCIDRv4,Fe as $ZodCIDRv6,Ce as $ZodCUID,we as $ZodCUID2,it as $ZodCatch,st as $ZodCustom,tt as $ZodDefault,ze as $ZodE164,ye as $ZodEmail,xe as $ZodEmoji,Qe as $ZodEnum,_e as $ZodGUID,Me as $ZodIPv4,Ne as $ZodIPv6,ke as $ZodISODate,Oe as $ZodISODateTime,je as $ZodISODuration,Ae as $ZodISOTime,Xe as $ZodIntersection,Ve as $ZodJWT,De as $ZodKSUID,Se as $ZodNanoID,Ge as $ZodNever,rt as $ZodNonOptional,et as $ZodNullable,z as $ZodNumber,He as $ZodNumberFormat,Je as $ZodObjectJIT,J as $ZodOptional,at as $ZodPipe,nt as $ZodPrefault,ot as $ZodReadonly,Ze as $ZodRecord,I as $ZodString,L as $ZodStringFormat,$e as $ZodTransform,F as $ZodType,Te as $ZodULID,be as $ZodURL,ve as $ZodUUID,Ye as $ZodUnion,We as $ZodUnknown,Ee as $ZodXID};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function t(e,t){return typeof t==`bigint`?t.toString():t}function n(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function r(e){return e==null}function i(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function a(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}const o=Symbol(`evaluating`);function s(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==o)return r===void 0&&(r=o,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function c(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function l(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function u(e){return JSON.stringify(e)}function d(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}const f=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const m=n(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function h(e){if(p(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(p(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function g(e){return h(e)?{...e}:Array.isArray(e)?[...e]:e}const _=new Set([`string`,`number`,`symbol`]);function v(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function y(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function b(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function x(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}const S={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function C(e,t){let n=e._zod.def;return y(e,l(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return c(this,`shape`,e),e},checks:[]}))}function w(e,t){let n=e._zod.def;return y(e,l(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return c(this,`shape`,r),r},checks:[]}))}function T(e,t){if(!h(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");return y(e,l(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return c(this,`shape`,n),n},checks:[]}))}function E(e,t){if(!h(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return y(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t};return c(this,`shape`,n),n},checks:e._zod.def.checks})}function D(e,t){return y(e,l(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return c(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function O(e,t,n){return y(t,l(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return c(this,`shape`,i),i},checks:[]}))}function k(e,t,n){return y(t,l(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return c(this,`shape`,i),i},checks:[]}))}function A(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function j(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function M(e){return typeof e==`string`?e:e?.message}function N(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=M(e.inst?._zod.def?.error?.(e))??M(t?.error?.(e))??M(n.customError?.(e))??M(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function P(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function F(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}export{S as NUMBER_FORMAT_RANGES,A as aborted,m as allowsEval,n as cached,f as captureStackTrace,i as cleanRegex,y as clone,s as defineLazy,u as esc,v as escapeRegex,T as extend,N as finalizeIssue,a as floatSafeRemainder,e as getEnumValues,P as getLengthableOrigin,p as isObject,h as isPlainObject,F as issue,t as jsonStringifyReplacer,D as merge,l as mergeDefs,b as normalizeParams,r as nullish,w as omit,x as optionalKeys,O as partial,C as pick,j as prefixIssues,_ as propertyKeyTypes,k as required,E as safeExtend,g as shallowClone,d as slugify};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={major:4,minor:1,patch:13};export{e as version};
|
package/dist/spec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e}from"
|
|
1
|
+
import{defineAgent as e}from"@lssm/lib.ai-agent";function t(t){return{...e({...t.base,policy:{...t.base.policy,confidence:{min:t.base.policy?.confidence?.min??.7,default:t.base.policy?.confidence?.default??.6},escalation:{confidenceThreshold:t.autoEscalateThreshold??t.base.policy?.escalation?.confidenceThreshold??t.base.policy?.confidence?.min??.7,...t.base.policy?.escalation}},memory:t.base.memory??{maxEntries:120,ttlMinutes:120},tools:t.tools??t.base.tools,instructions:`${t.base.instructions}\n\nAlways cite support knowledge sources and flag compliance/billing issues for human review when unsure.`}),thresholds:{autoResolveMinConfidence:t.autoEscalateThreshold??.75,maxIterations:6}}}export{t as defineSupportBot};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/lib.support-bot",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251207043720",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -32,20 +32,34 @@
|
|
|
32
32
|
"typescript": "^5.9.3"
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
|
-
".": "./
|
|
36
|
-
"./bot": "./
|
|
37
|
-
"./bot/auto-responder": "./
|
|
38
|
-
"./bot/feedback-loop": "./
|
|
39
|
-
"./bot/tools": "./
|
|
40
|
-
"./rag": "./
|
|
41
|
-
"./rag/ticket-resolver": "./
|
|
42
|
-
"./spec": "./
|
|
43
|
-
"./tickets": "./
|
|
44
|
-
"./tickets/classifier": "./
|
|
45
|
-
"./types": "./
|
|
35
|
+
".": "./src/index.ts",
|
|
36
|
+
"./bot": "./src/bot/index.ts",
|
|
37
|
+
"./bot/auto-responder": "./src/bot/auto-responder.ts",
|
|
38
|
+
"./bot/feedback-loop": "./src/bot/feedback-loop.ts",
|
|
39
|
+
"./bot/tools": "./src/bot/tools.ts",
|
|
40
|
+
"./rag": "./src/rag/index.ts",
|
|
41
|
+
"./rag/ticket-resolver": "./src/rag/ticket-resolver.ts",
|
|
42
|
+
"./spec": "./src/spec.ts",
|
|
43
|
+
"./tickets": "./src/tickets/index.ts",
|
|
44
|
+
"./tickets/classifier": "./src/tickets/classifier.ts",
|
|
45
|
+
"./types": "./src/types.ts",
|
|
46
46
|
"./*": "./*"
|
|
47
47
|
},
|
|
48
48
|
"publishConfig": {
|
|
49
|
-
"access": "public"
|
|
49
|
+
"access": "public",
|
|
50
|
+
"exports": {
|
|
51
|
+
".": "./dist/index.js",
|
|
52
|
+
"./bot": "./dist/bot/index.js",
|
|
53
|
+
"./bot/auto-responder": "./dist/bot/auto-responder.js",
|
|
54
|
+
"./bot/feedback-loop": "./dist/bot/feedback-loop.js",
|
|
55
|
+
"./bot/tools": "./dist/bot/tools.js",
|
|
56
|
+
"./rag": "./dist/rag/index.js",
|
|
57
|
+
"./rag/ticket-resolver": "./dist/rag/ticket-resolver.js",
|
|
58
|
+
"./spec": "./dist/spec.js",
|
|
59
|
+
"./tickets": "./dist/tickets/index.js",
|
|
60
|
+
"./tickets/classifier": "./dist/tickets/classifier.js",
|
|
61
|
+
"./types": "./dist/types.js",
|
|
62
|
+
"./*": "./*"
|
|
63
|
+
}
|
|
50
64
|
}
|
|
51
65
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./contract-spec-agent.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../tools/tool-adapter.js";import"../tools/knowledge-tool.js";import{z as e}from"zod";import"ai";e.object({tenantId:e.string().optional(),actorId:e.string().optional(),sessionId:e.string().optional(),metadata:e.record(e.string(),e.unknown()).optional()});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./contract-spec-agent.js";import"./agent-factory.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./workflow.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"node:crypto";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./schema/json-schema-to-zod.js";import"./tools/tool-adapter.js";import"./tools/knowledge-tool.js";import{e}from"./spec/spec.js";import"./agent/contract-spec-agent.js";import"./agent/agent-factory.js";import"./agent/index.js";import"./tools/mcp-client.js";import"./tools/mcp-server.js";import"./tools/index.js";import"./schema/schema-output.js";import"./schema/index.js";import"./approval/workflow.js";import"./approval/index.js";import"ai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./json-schema-to-zod.js";import"./schema-output.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{z as e}from"zod";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./json-schema-to-zod.js";import{z as e}from"zod";import"ai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e){if(!e.meta?.name)throw Error(`Agent name is required`);if(!Number.isFinite(e.meta.version))throw Error(`Agent ${e.meta.name} is missing a numeric version`);if(!e.instructions?.trim())throw Error(`Agent ${e.meta.name} requires instructions`);if(!e.tools?.length)throw Error(`Agent ${e.meta.name} must expose at least one tool`);let t=new Set;for(let n of e.tools){if(t.has(n.name))throw Error(`Agent ${e.meta.name} has duplicate tool name: ${n.name}`);t.add(n.name)}return Object.freeze(e)}export{e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./tool-adapter.js";import"./knowledge-tool.js";import"./mcp-client.js";import"./mcp-server.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{z as e}from"zod";import"ai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"@ai-sdk/mcp";import"@ai-sdk/mcp/mcp-stdio";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../schema/json-schema-to-zod.js";import{z as e}from"zod";import"@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../schema/json-schema-to-zod.js";import"ai";
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { SupportResolution, SupportResponseDraft, SupportTicket, TicketClassification } from "../types.js";
|
|
2
|
-
import { LLMProvider } from "@lssm/lib.contracts/integrations/providers/llm";
|
|
3
|
-
|
|
4
|
-
//#region src/bot/auto-responder.d.ts
|
|
5
|
-
interface AutoResponderOptions {
|
|
6
|
-
llm?: LLMProvider;
|
|
7
|
-
model?: string;
|
|
8
|
-
tone?: 'friendly' | 'formal';
|
|
9
|
-
closing?: string;
|
|
10
|
-
}
|
|
11
|
-
declare class AutoResponder {
|
|
12
|
-
private readonly llm?;
|
|
13
|
-
private readonly model?;
|
|
14
|
-
private readonly tone;
|
|
15
|
-
private readonly closing;
|
|
16
|
-
constructor(options?: AutoResponderOptions);
|
|
17
|
-
draft(ticket: SupportTicket, resolution: SupportResolution, classification: TicketClassification): Promise<SupportResponseDraft>;
|
|
18
|
-
private generateWithLLM;
|
|
19
|
-
private generateTemplate;
|
|
20
|
-
private buildDraft;
|
|
21
|
-
private renderCategoryIntro;
|
|
22
|
-
private renderCitations;
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { AutoResponder, AutoResponderOptions };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ResolutionResultPayload } from "../types.js";
|
|
2
|
-
|
|
3
|
-
//#region src/bot/feedback-loop.d.ts
|
|
4
|
-
interface FeedbackMetrics {
|
|
5
|
-
totalTickets: number;
|
|
6
|
-
autoResolved: number;
|
|
7
|
-
escalated: number;
|
|
8
|
-
avgConfidence: number;
|
|
9
|
-
avgResponseTimeMs: number;
|
|
10
|
-
}
|
|
11
|
-
declare class SupportFeedbackLoop {
|
|
12
|
-
private readonly history;
|
|
13
|
-
private readonly responseTimes;
|
|
14
|
-
recordResolution(payload: ResolutionResultPayload, responseTimeMs?: number): void;
|
|
15
|
-
metrics(): FeedbackMetrics;
|
|
16
|
-
feedbackSummary(limit?: number): string;
|
|
17
|
-
}
|
|
18
|
-
//#endregion
|
|
19
|
-
export { FeedbackMetrics, SupportFeedbackLoop };
|
package/dist/bot/index.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { AutoResponder, AutoResponderOptions } from "./auto-responder.js";
|
|
2
|
-
import { FeedbackMetrics, SupportFeedbackLoop } from "./feedback-loop.js";
|
|
3
|
-
import { SupportToolsetOptions, createSupportTools } from "./tools.js";
|
|
4
|
-
export { AutoResponder, AutoResponderOptions, FeedbackMetrics, SupportFeedbackLoop, SupportToolsetOptions, createSupportTools };
|
package/dist/bot/tools.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AutoResponder } from "./auto-responder.js";
|
|
2
|
-
import { TicketResolver } from "../rag/ticket-resolver.js";
|
|
3
|
-
import { TicketClassifier } from "../tickets/classifier.js";
|
|
4
|
-
import { Tool } from "@ai-sdk/provider-utils";
|
|
5
|
-
|
|
6
|
-
//#region src/bot/tools.d.ts
|
|
7
|
-
interface SupportToolsetOptions {
|
|
8
|
-
resolver: TicketResolver;
|
|
9
|
-
classifier: TicketClassifier;
|
|
10
|
-
responder: AutoResponder;
|
|
11
|
-
}
|
|
12
|
-
declare function createSupportTools(options: SupportToolsetOptions): Tool[];
|
|
13
|
-
//#endregion
|
|
14
|
-
export { SupportToolsetOptions, createSupportTools };
|
package/dist/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ClassificationResultPayload, ResolutionResultPayload, SupportAction, SupportBotSpec, SupportCitation, SupportResolution, SupportResponseDraft, SupportTicket, TicketCategory, TicketChannel, TicketClassification, TicketPriority, TicketSentiment } from "./types.js";
|
|
2
|
-
import { AutoResponder, AutoResponderOptions } from "./bot/auto-responder.js";
|
|
3
|
-
import { FeedbackMetrics, SupportFeedbackLoop } from "./bot/feedback-loop.js";
|
|
4
|
-
import { KnowledgeRetriever, TicketResolver, TicketResolverOptions } from "./rag/ticket-resolver.js";
|
|
5
|
-
import { TicketClassifier, TicketClassifierOptions } from "./tickets/classifier.js";
|
|
6
|
-
import { SupportToolsetOptions, createSupportTools } from "./bot/tools.js";
|
|
7
|
-
import { SupportBotDefinition, defineSupportBot } from "./spec.js";
|
|
8
|
-
export { AutoResponder, AutoResponderOptions, ClassificationResultPayload, FeedbackMetrics, KnowledgeRetriever, ResolutionResultPayload, SupportAction, SupportBotDefinition, SupportBotSpec, SupportCitation, SupportFeedbackLoop, SupportResolution, SupportResponseDraft, SupportTicket, SupportToolsetOptions, TicketCategory, TicketChannel, TicketClassification, TicketClassifier, TicketClassifierOptions, TicketPriority, TicketResolver, TicketResolverOptions, TicketSentiment, createSupportTools, defineSupportBot };
|
package/dist/rag/index.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { SupportResolution, SupportTicket } from "../types.js";
|
|
2
|
-
import { KnowledgeAnswer } from "@lssm/lib.contracts/knowledge/query/service";
|
|
3
|
-
|
|
4
|
-
//#region src/rag/ticket-resolver.d.ts
|
|
5
|
-
interface KnowledgeRetriever {
|
|
6
|
-
query(question: string): Promise<KnowledgeAnswer>;
|
|
7
|
-
}
|
|
8
|
-
interface TicketResolverOptions {
|
|
9
|
-
knowledge: KnowledgeRetriever;
|
|
10
|
-
minConfidence?: number;
|
|
11
|
-
prependPrompt?: string;
|
|
12
|
-
}
|
|
13
|
-
declare class TicketResolver {
|
|
14
|
-
private readonly knowledge;
|
|
15
|
-
private readonly minConfidence;
|
|
16
|
-
private readonly prependPrompt?;
|
|
17
|
-
constructor(options: TicketResolverOptions);
|
|
18
|
-
resolve(ticket: SupportTicket): Promise<SupportResolution>;
|
|
19
|
-
private buildQuestion;
|
|
20
|
-
private toResolution;
|
|
21
|
-
private deriveConfidence;
|
|
22
|
-
}
|
|
23
|
-
//#endregion
|
|
24
|
-
export { KnowledgeRetriever, TicketResolver, TicketResolverOptions };
|
package/dist/spec.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { SupportBotSpec } from "./types.js";
|
|
2
|
-
import { AgentSpec, AgentToolConfig } from "@lssm/lib.ai-agent";
|
|
3
|
-
|
|
4
|
-
//#region src/spec.d.ts
|
|
5
|
-
interface SupportBotDefinition {
|
|
6
|
-
base: AgentSpec;
|
|
7
|
-
tools?: AgentToolConfig[];
|
|
8
|
-
autoEscalateThreshold?: number;
|
|
9
|
-
}
|
|
10
|
-
declare function defineSupportBot(definition: SupportBotDefinition): SupportBotSpec;
|
|
11
|
-
//#endregion
|
|
12
|
-
export { SupportBotDefinition, defineSupportBot };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { SupportTicket, TicketCategory, TicketClassification } from "../types.js";
|
|
2
|
-
import { LLMProvider } from "@lssm/lib.contracts/integrations/providers/llm";
|
|
3
|
-
|
|
4
|
-
//#region src/tickets/classifier.d.ts
|
|
5
|
-
interface TicketClassifierOptions {
|
|
6
|
-
keywords?: Partial<Record<TicketCategory, string[]>>;
|
|
7
|
-
llm?: LLMProvider;
|
|
8
|
-
llmModel?: string;
|
|
9
|
-
}
|
|
10
|
-
declare class TicketClassifier {
|
|
11
|
-
private readonly keywords;
|
|
12
|
-
private readonly llm?;
|
|
13
|
-
private readonly llmModel?;
|
|
14
|
-
constructor(options?: TicketClassifierOptions);
|
|
15
|
-
classify(ticket: SupportTicket): Promise<TicketClassification>;
|
|
16
|
-
private heuristicClassification;
|
|
17
|
-
private detectCategory;
|
|
18
|
-
private detectPriority;
|
|
19
|
-
private detectSentiment;
|
|
20
|
-
private extractIntents;
|
|
21
|
-
private estimateConfidence;
|
|
22
|
-
}
|
|
23
|
-
//#endregion
|
|
24
|
-
export { TicketClassifier, TicketClassifierOptions };
|
package/dist/tickets/index.d.ts
DELETED
package/dist/types.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { AgentSpec } from "@lssm/lib.ai-agent";
|
|
2
|
-
|
|
3
|
-
//#region src/types.d.ts
|
|
4
|
-
type TicketPriority = 'low' | 'medium' | 'high' | 'urgent';
|
|
5
|
-
type TicketCategory = 'billing' | 'technical' | 'product' | 'account' | 'compliance' | 'other';
|
|
6
|
-
type TicketChannel = 'email' | 'chat' | 'phone' | 'portal';
|
|
7
|
-
type TicketSentiment = 'positive' | 'neutral' | 'negative' | 'frustrated';
|
|
8
|
-
interface SupportTicket {
|
|
9
|
-
id: string;
|
|
10
|
-
subject: string;
|
|
11
|
-
body: string;
|
|
12
|
-
channel: TicketChannel;
|
|
13
|
-
locale?: string;
|
|
14
|
-
customerEmail?: string;
|
|
15
|
-
customerName?: string;
|
|
16
|
-
metadata?: Record<string, string>;
|
|
17
|
-
}
|
|
18
|
-
interface TicketClassification {
|
|
19
|
-
ticketId: string;
|
|
20
|
-
category: TicketCategory;
|
|
21
|
-
priority: TicketPriority;
|
|
22
|
-
sentiment: TicketSentiment;
|
|
23
|
-
intents: string[];
|
|
24
|
-
tags: string[];
|
|
25
|
-
confidence: number;
|
|
26
|
-
escalationRequired?: boolean;
|
|
27
|
-
}
|
|
28
|
-
interface SupportCitation {
|
|
29
|
-
label: string;
|
|
30
|
-
url?: string;
|
|
31
|
-
snippet?: string;
|
|
32
|
-
score?: number;
|
|
33
|
-
}
|
|
34
|
-
interface SupportAction {
|
|
35
|
-
type: 'respond' | 'escalate' | 'refund' | 'manual';
|
|
36
|
-
label: string;
|
|
37
|
-
payload?: Record<string, string>;
|
|
38
|
-
}
|
|
39
|
-
interface SupportResolution {
|
|
40
|
-
ticketId: string;
|
|
41
|
-
answer: string;
|
|
42
|
-
confidence: number;
|
|
43
|
-
citations: SupportCitation[];
|
|
44
|
-
actions: SupportAction[];
|
|
45
|
-
escalationReason?: string;
|
|
46
|
-
knowledgeUpdates?: string[];
|
|
47
|
-
}
|
|
48
|
-
interface SupportResponseDraft {
|
|
49
|
-
ticketId: string;
|
|
50
|
-
subject: string;
|
|
51
|
-
body: string;
|
|
52
|
-
confidence: number;
|
|
53
|
-
requiresEscalation: boolean;
|
|
54
|
-
citations: SupportCitation[];
|
|
55
|
-
}
|
|
56
|
-
interface SupportBotSpec extends AgentSpec {
|
|
57
|
-
thresholds?: {
|
|
58
|
-
autoResolveMinConfidence?: number;
|
|
59
|
-
maxIterations?: number;
|
|
60
|
-
};
|
|
61
|
-
review?: {
|
|
62
|
-
queueName?: string;
|
|
63
|
-
approvalWorkflow?: string;
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
interface ClassificationResultPayload {
|
|
67
|
-
ticket: SupportTicket;
|
|
68
|
-
classification: TicketClassification;
|
|
69
|
-
}
|
|
70
|
-
interface ResolutionResultPayload extends ClassificationResultPayload {
|
|
71
|
-
resolution: SupportResolution;
|
|
72
|
-
draft: SupportResponseDraft;
|
|
73
|
-
}
|
|
74
|
-
//#endregion
|
|
75
|
-
export { ClassificationResultPayload, ResolutionResultPayload, SupportAction, SupportBotSpec, SupportCitation, SupportResolution, SupportResponseDraft, SupportTicket, TicketCategory, TicketChannel, TicketClassification, TicketPriority, TicketSentiment };
|