@shumai-one/shumai-agent 0.3.2 → 0.3.3

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.
Files changed (98) hide show
  1. package/bin/chunk-081v79v3.js +2 -0
  2. package/bin/chunk-12h1srs7.js +3 -0
  3. package/bin/{chunk-hbnpkkay.js → chunk-15y416ps.js} +1 -1
  4. package/bin/{chunk-gcy9m8nz.js → chunk-2n6r274x.js} +37 -5
  5. package/bin/{chunk-ba518ea4.js → chunk-2qp0n7qr.js} +3 -3
  6. package/bin/{chunk-wr1gq0mr.js → chunk-36c7hn2a.js} +1 -1
  7. package/bin/chunk-3g2568q8.js +4 -0
  8. package/bin/chunk-5b9qr9hd.js +2 -0
  9. package/bin/chunk-5qfgf76w.js +11 -0
  10. package/bin/{chunk-xepkfmkj.js → chunk-6e30fa04.js} +1 -1
  11. package/bin/chunk-75q7k7ws.js +6 -0
  12. package/bin/chunk-9px4mby3.js +5 -0
  13. package/bin/chunk-b9fvn1we.js +2 -0
  14. package/bin/{chunk-09wm68m9.js → chunk-c35a19j7.js} +2 -2
  15. package/bin/{chunk-nbvdnrcb.js → chunk-c6wkem7t.js} +2 -2
  16. package/bin/{chunk-dgxfdzaf.js → chunk-cm4dpd3k.js} +1 -1
  17. package/bin/{chunk-p3egm13v.js → chunk-d5pe7gc0.js} +2 -2
  18. package/bin/chunk-decj3jj5.js +8 -0
  19. package/bin/chunk-dnje06y3.js +2 -0
  20. package/bin/chunk-em0kmz2k.js +3 -0
  21. package/bin/{chunk-ceg8d25c.js → chunk-frztqry5.js} +1 -1
  22. package/bin/{chunk-6k9j5xzb.js → chunk-fyy1bs2c.js} +2 -2
  23. package/bin/{chunk-p69bnq4x.js → chunk-ghp1vchh.js} +1 -1
  24. package/bin/chunk-ghwhw8p2.js +8 -0
  25. package/bin/chunk-gza7gcvv.js +3 -0
  26. package/bin/chunk-hbzg8qk9.js +12 -0
  27. package/bin/chunk-hkacwxx5.js +3 -0
  28. package/bin/chunk-kjh8ef83.js +2 -0
  29. package/bin/chunk-n7pc3vzj.js +2 -0
  30. package/bin/{chunk-m0mp7pd2.js → chunk-n7ywq5jm.js} +2 -2
  31. package/bin/{chunk-gx72kpkb.js → chunk-ncafamz2.js} +1 -1
  32. package/bin/chunk-p2420qj9.js +2 -0
  33. package/bin/chunk-q8rfm9yd.js +45 -0
  34. package/bin/{chunk-22m0y0fs.js → chunk-qget207r.js} +1 -1
  35. package/bin/chunk-qsj8bjjz.js +4 -0
  36. package/bin/{chunk-fvmb8en4.js → chunk-r6kwqq12.js} +1 -1
  37. package/bin/{chunk-geqqct8k.js → chunk-rwm4gzpt.js} +1 -1
  38. package/bin/chunk-s6td43rw.js +2 -0
  39. package/bin/{chunk-e0mazw0r.js → chunk-sy5nq4n6.js} +1 -1
  40. package/bin/{chunk-6xzgjgh4.js → chunk-tzn6yhz8.js} +1 -1
  41. package/bin/{chunk-xeg1gre0.js → chunk-vra858k4.js} +1 -1
  42. package/bin/chunk-w5rk53bc.js +3 -0
  43. package/bin/chunk-wd4xdvj8.js +7 -0
  44. package/bin/{chunk-0bdvgych.js → chunk-wtznsfef.js} +3 -3
  45. package/bin/chunk-xmjzej3m.js +3 -0
  46. package/bin/{chunk-b35kbsh7.js → chunk-y6k3ph6k.js} +1 -1
  47. package/bin/shumai-agent-app.js +382 -345
  48. package/package.json +7 -7
  49. package/prisma/migrations/20260801065040_add_audit_log/migration.sql +33 -0
  50. package/prisma/migrations/20260805021613_add_asset_autofill_context/migration.sql +2 -0
  51. package/prisma/schema.prisma +25 -0
  52. package/bin/chunk-2dm6jcp4.js +0 -3
  53. package/bin/chunk-2gefycgt.js +0 -3
  54. package/bin/chunk-2t47accr.js +0 -3
  55. package/bin/chunk-2w4hxpqr.js +0 -3
  56. package/bin/chunk-3nbbx6x7.js +0 -3
  57. package/bin/chunk-5190gazn.js +0 -3
  58. package/bin/chunk-74zq8r33.js +0 -2
  59. package/bin/chunk-7m8a8vhh.js +0 -2
  60. package/bin/chunk-7qwd1bfq.js +0 -3
  61. package/bin/chunk-85swzdas.js +0 -41
  62. package/bin/chunk-98fyskbt.js +0 -2
  63. package/bin/chunk-98zfcdae.js +0 -14
  64. package/bin/chunk-aw167aaq.js +0 -8
  65. package/bin/chunk-b77c23jm.js +0 -2
  66. package/bin/chunk-bq4j07gf.js +0 -4
  67. package/bin/chunk-bwvq03ga.js +0 -12
  68. package/bin/chunk-c55dg49y.js +0 -7
  69. package/bin/chunk-cpmyq7y4.js +0 -3
  70. package/bin/chunk-d5rvr87v.js +0 -3
  71. package/bin/chunk-db5dg26j.js +0 -4
  72. package/bin/chunk-dja3b5qj.js +0 -8
  73. package/bin/chunk-e0np0fc1.js +0 -2
  74. package/bin/chunk-epkgpyvw.js +0 -3
  75. package/bin/chunk-fy6ak60v.js +0 -2
  76. package/bin/chunk-hf7g4s7z.js +0 -8
  77. package/bin/chunk-hrckvejt.js +0 -6
  78. package/bin/chunk-j4w76sg7.js +0 -2
  79. package/bin/chunk-jr7ndn0h.js +0 -4
  80. package/bin/chunk-jrnczqc1.js +0 -4
  81. package/bin/chunk-k4gc54nc.js +0 -3
  82. package/bin/chunk-m6rw11kp.js +0 -2
  83. package/bin/chunk-mdmba231.js +0 -7
  84. package/bin/chunk-n8m6vtk4.js +0 -3
  85. package/bin/chunk-nvze6c2k.js +0 -4
  86. package/bin/chunk-p0yhjbsx.js +0 -6
  87. package/bin/chunk-p67v44jc.js +0 -2
  88. package/bin/chunk-pwm0zg91.js +0 -7
  89. package/bin/chunk-r3r0643t.js +0 -4
  90. package/bin/chunk-ryyybwjr.js +0 -3
  91. package/bin/chunk-t9qt4a80.js +0 -8
  92. package/bin/chunk-tg1x6f4h.js +0 -2
  93. package/bin/chunk-tn22n12j.js +0 -3
  94. package/bin/chunk-xy7jrz8f.js +0 -2
  95. package/bin/chunk-y50ys5g5.js +0 -6
  96. package/bin/chunk-ywhm8gh6.js +0 -2
  97. package/bin/chunk-zkjpc8zs.js +0 -2
  98. package/bin/chunk-zmeynqb0.js +0 -6
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Jb as O}from"./chunk-36c7hn2a.js";import{Kb as C,Lb as E}from"./chunk-6e30fa04.js";import{Mb as y,Nb as K,Ob as P}from"./chunk-hbzg8qk9.js";import{Pb as b}from"./chunk-vra858k4.js";import"./chunk-15y416ps.js";import{Rb as M}from"./chunk-r6kwqq12.js";import{Tb as H}from"./chunk-em0kmz2k.js";import"./chunk-9px4mby3.js";import{Wb as k}from"./chunk-n7ywq5jm.js";import{hc as A,ic as N}from"./chunk-w5rk53bc.js";import{nc as $,pc as S}from"./chunk-12h1srs7.js";import"./chunk-ghp1vchh.js";import{tc as _}from"./chunk-y6k3ph6k.js";import{Ac as f}from"./chunk-xmjzej3m.js";import{Bc as U}from"./chunk-hkacwxx5.js";import"./chunk-qget207r.js";var g=new Set(["openai","openai-codex","opencode"]),u=16;function V(j,D){if(!j)return!1;let w=D.toLowerCase();for(let[z,F]of Object.entries(j))if(z.toLowerCase()===w&&F!==null&&F.trim().length>0)return!0;return!1}function R(j,D,w){if(D)return D;if(V(w,"authorization")||V(w,"cf-aig-authorization"))return"unused";throw Error(`No API key for provider: ${j}`)}function c(j){return j.provider==="openrouter"||j.baseUrl.includes("openrouter.ai")?"openrouter":"openai"}function T(j,D){if(j)return j;if(k("PI_CACHE_RETENTION",D)==="long")return"long";return"short"}function q(j){return{supportsDeveloperRole:j.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:j.compat?.sessionAffinityFormat??c(j),supportsLongCacheRetention:j.compat?.supportsLongCacheRetention??!0,supportsStrictMode:j.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:j.compat?.supportsOpenAIGrammarTools??!1,supportsToolSearch:j.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:j.compat?.supportsExplicitPromptCacheMode??!1}}function r(j,D){return D==="long"&&j.supportsLongCacheRetention?"24h":void 0}function d(j){return N(A(j),"OpenAI API error")}var l=(j,D,w)=>{let z=new U;return(async()=>{let F={role:"assistant",content:[],api:j.api,provider:j.provider,model:j.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"stop",timestamp:Date.now()};try{let Q=R(j.provider,w?.apiKey,w?.headers),W=T(w?.cacheRetention,w?.env)==="none"?void 0:w?.sessionId,X=q(j),J=$(D.tools,X.supportsOpenAIGrammarTools),Y=a(j,D,Q,w?.headers,W),Z=m(j,D,w,X,J),B=await w?.onPayload?.(Z,j);if(B!==void 0)Z=B;let v={...w?.signal?{signal:w.signal}:{},...w?.timeoutMs!==void 0?{timeout:w.timeoutMs}:{},maxRetries:0},{data:I,response:L}=await H(()=>Y.responses.create(Z,v).withResponse(),{maxRetries:w?.maxRetries,maxRetryDelayMs:w?.maxRetryDelayMs,signal:w?.signal});if(await w?.onResponse?.({status:L.status,headers:_(L.headers)},j),z.push({type:"start",partial:F}),await P(I,F,z,j,{serviceTier:w?.serviceTier,grammarToolInputProperties:J,applyServiceTierPricing:(x,h)=>n(x,h,j)}),w?.signal?.aborted)throw Error("Request was aborted");if(F.stopReason==="aborted"||F.stopReason==="error")throw Error("An unknown error occurred");z.push({type:"done",reason:F.stopReason,message:F}),z.end()}catch(Q){for(let G of F.content)delete G.index,delete G.partialJson,delete G.customInput;F.stopReason=w?.signal?.aborted?"aborted":"error",F.errorMessage=d(Q),z.push({type:"error",reason:F.stopReason,error:F}),z.end()}})(),z},Wj=(j,D,w)=>{R(j.provider,w?.apiKey,w?.headers);let z=S(j,D,w,w?.apiKey),F=w?.reasoning?f(j,w.reasoning):void 0;return l(j,D,{...z,reasoningEffort:F==="off"?void 0:F})};function a(j,D,w,z,F){let Q=q(j),G={...j.headers};if(j.provider==="github-copilot"){let W=C(D.messages),X=E({messages:D.messages,hasImages:W});Object.assign(G,X)}if(F)if(Q.sessionAffinityFormat==="openrouter")G["x-session-id"]=F;else{if(Q.sessionAffinityFormat==="openai")G.session_id=F;G["x-client-request-id"]=F}if(z)Object.assign(G,z);return new M({apiKey:w,baseURL:j.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:G})}function m(j,D,w,z=q(j),F=$(D.tools,z.supportsOpenAIGrammarTools)){let Q=O(D,z.supportsToolSearch),G=y(j,D,g,{grammarToolInputProperties:F,deferredTools:Q.deferred,toolOptions:{supportsStrictMode:z.supportsStrictMode,supportsOpenAIGrammarTools:z.supportsOpenAIGrammarTools}}),W=T(w?.cacheRetention,w?.env),X=W==="none"&&z.supportsExplicitPromptCacheMode,J={model:j.id,input:G,stream:!0,prompt_cache_key:W==="none"?void 0:b(w?.sessionId),prompt_cache_retention:r(z,W),prompt_cache_options:X?{mode:"explicit"}:void 0,store:!1};if(w?.maxTokens)J.max_output_tokens=Math.max(w.maxTokens,u);if(w?.temperature!==void 0)J.temperature=w?.temperature;if(w?.serviceTier!==void 0)J.service_tier=w.serviceTier;if(Q.immediate.length>0)J.tools=K(Q.immediate,{supportsStrictMode:z.supportsStrictMode,supportsOpenAIGrammarTools:z.supportsOpenAIGrammarTools});if(w?.toolChoice!==void 0)J.tool_choice=w.toolChoice;if(j.reasoning){if(w?.reasoningEffort||w?.reasoningSummary){let Y=w?.reasoningEffort?j.thinkingLevelMap?.[w.reasoningEffort]??w.reasoningEffort:"medium";J.reasoning={effort:Y,summary:w?.reasoningSummary||"auto"},J.include=["reasoning.encrypted_content"]}else if(j.provider!=="github-copilot"&&j.thinkingLevelMap?.off!==null)J.reasoning={effort:j.thinkingLevelMap?.off??"none"};if(j.provider==="xai")J.include=["reasoning.encrypted_content"]}return J}function i(j,D){switch(D){case"flex":return 0.5;case"priority":return j.id==="gpt-5.5"?2.5:2;default:return 1}}function n(j,D,w){let z=i(w,D);if(z===1)return;j.cost.input*=z,j.cost.output*=z,j.cost.cacheRead*=z,j.cost.cacheWrite*=z,j.cost.total=j.cost.input+j.cost.output+j.cost.cacheRead+j.cost.cacheWrite}export{Wj as streamSimple,l as stream};
@@ -0,0 +1,3 @@
1
+ // @bun
2
+ function k(q,J,H){let Q=J[H];if(typeof Q!=="string")throw Error(`Grammar tool call "${q}" requires argument "${H}" to be a string.`);return Q}function d(q,J,H,Q){if(q.closed){if(Q&&H===q.input)return;throw Error(`grammar tool input for property "${J}" changed after it was closed`)}if(!H.startsWith(q.input))throw Error(`grammar tool input for property "${J}" changed non-monotonically`);let V=H.slice(q.input.length);if(!Q&&V.length===0)return;let Z="";if(!q.started)Z+=`{${JSON.stringify(J)}:"`,q.started=!0;if(Z+=JSON.stringify(V).slice(1,-1),q.input=H,Q)Z+='"}',q.closed=!0;return Z}function P(q){let J=q.parameters;if(J.type!=="object")throw Error("grammar constrained sampling requires an object parameter schema");if(!Array.isArray(J.required)||J.required.length!==1||typeof J.required[0]!=="string")throw Error("grammar constrained sampling requires exactly one required string property");let H=J.required[0];if(!J.properties?.[H])throw Error(`grammar constrained sampling requires a properties entry for ${H}`);if(J.properties[H]?.type!=="string")throw Error(`grammar constrained sampling property ${H} must have type string`);return H}function u(q,J){let H=q.constrainedSampling;if(!H||H.type!=="json_schema")return;if(J)return!0;if(H.strict==="require")throw Error(`Tool "${q.name}" requires JSON-schema constrained sampling, but strict tools are unsupported.`);return}function C(q,J){let H=q.constrainedSampling;if(!H||H.type!=="grammar")return;if(!J)return;let Q=H.variants.openai_lark,V=H.variants.openai_regex,Z=typeof Q==="string"&&Q.trim().length>0,E=typeof V==="string"&&V.trim().length>0;if(!Z&&!E)throw Error(`Tool "${q.name}" cannot use grammar constrained sampling: no supported grammar variant was provided.`);try{return{format:Z?"lark":"regex",definition:Z?Q:V,inputProperty:P(q)}}catch(Y){let j=Y instanceof Error?Y.message:String(Y);throw Error(`Tool "${q.name}" cannot use grammar constrained sampling: ${j}.`)}}function c(q,J){let H=new Map;for(let Q of q??[]){let V=C(Q,J);if(V)H.set(Q.name,V.inputProperty)}return H}function R(q){return q.totalTokens||q.input+q.output+q.cacheRead+q.cacheWrite}function v(q){try{return JSON.stringify(q)??"undefined"}catch{return"[unserializable]"}}function h(q){if(typeof q==="string")return q.length;let J=0;for(let H of q)J+=H.type==="text"?H.text.length:4800;return J}function D(q){return Math.ceil(q.length/4)}function O(q){return Math.ceil(h(q)/4)}function _(q){let J=0;if(q.role==="user")return O(q.content);if(q.role==="toolResult")return O(q.content);for(let H of q.content)if(H.type==="text")J+=H.text.length;else if(H.type==="thinking")J+=H.thinking.length;else J+=H.name.length+v(H.arguments).length;return Math.ceil(J/4)}function M(q){let J=Number.NEGATIVE_INFINITY,H;for(let Q=0;Q<q.length;Q++){let V=q[Q];if(V.role==="assistant"){let Z=V;if(Z.timestamp>=J&&Z.stopReason!=="aborted"&&Z.stopReason!=="error"&&R(Z.usage)>0)H={usage:Z.usage,index:Q}}J=Math.max(J,V.timestamp)}return H}function A(q){let J=M(q);if(J){let Q=R(J.usage),V=0;for(let Z=J.index+1;Z<q.length;Z++)V+=_(q[Z]);return{tokens:Q+V,usageTokens:Q,trailingTokens:V,lastUsageIndex:J.index}}let H=0;for(let Q of q)H+=_(Q);return{tokens:H,usageTokens:0,trailingTokens:H,lastUsageIndex:null}}function N(q){if(!q||q.length===0)return 0;return D(v(q))}function I(q){return Array.isArray(q)}function z(q){if(I(q))return A(q);let J=A(q.messages);if(J.lastUsageIndex!==null){let Q=new Set(q.messages.slice(J.lastUsageIndex+1).filter((Z)=>Z.role==="toolResult").flatMap((Z)=>Z.addedToolNames??[])),V=N(q.tools?.filter((Z)=>Q.has(Z.name)));return{tokens:J.tokens+V,usageTokens:J.usageTokens,trailingTokens:J.trailingTokens+V,lastUsageIndex:J.lastUsageIndex}}let H=(q.systemPrompt?D(q.systemPrompt):0)+N(q.tools);return{tokens:J.tokens+H,usageTokens:J.usageTokens,trailingTokens:J.trailingTokens+H,lastUsageIndex:J.lastUsageIndex}}var b=4096,S=1;function x(q,J,H){if(q.contextWindow<=0)return Math.max(S,H);let Q=q.contextWindow-z(J).tokens-b;return Math.min(H,Math.max(S,Q))}function m(q,J,H,Q){return{temperature:H?.temperature,maxTokens:x(q,J,H?.maxTokens??q.maxTokens),signal:H?.signal,apiKey:Q||H?.apiKey,transport:H?.transport,cacheRetention:H?.cacheRetention,sessionId:H?.sessionId,headers:H?.headers,onPayload:H?.onPayload,onResponse:H?.onResponse,timeoutMs:H?.timeoutMs,websocketConnectTimeoutMs:H?.websocketConnectTimeoutMs,maxRetries:H?.maxRetries,maxRetryDelayMs:H?.maxRetryDelayMs,metadata:H?.metadata,env:H?.env}}function T(q){return q==="xhigh"||q==="max"?"high":q}function i(q,J,H,Q){let Z={...{minimal:1024,low:2048,medium:8192,high:16384},...Q},E=1024,Y=T(H),j=Z[Y],X=q===void 0?J:Math.min(q+j,J);if(X<=j)j=Math.max(0,X-1024);return{maxTokens:X,thinkingBudget:j}}function y(q,J){let H=[],Q=!1;for(let V of q){if(V.type==="image"){if(!Q)H.push({type:"text",text:J});Q=!0;continue}H.push(V),Q=V.text===J}return H}function f(q,J){if(J.input.includes("image"))return q;return q.map((H)=>{if(H.role==="user"&&Array.isArray(H.content))return{...H,content:y(H.content,"(image omitted: model does not support images)")};if(H.role==="toolResult")return{...H,content:y(H.content,"(tool image omitted: model does not support images)")};return H})}function l(q,J,H){let Q=new Map,V=q.map(($)=>$.content==null?{...$,content:[]}:$),E=f(V,J).map(($)=>{if($.role==="user")return $;if($.role==="toolResult"){let w=Q.get($.toolCallId);if(w&&w!==$.toolCallId)return{...$,toolCallId:w};return $}if($.role==="assistant"){let w=$,U=w.provider===J.provider&&w.api===J.api&&w.model===J.id,B=w.content.flatMap((F)=>{if(F.type==="thinking"){if(F.redacted)return U?F:[];if(U&&F.thinkingSignature)return F;if(!F.thinking||F.thinking.trim()==="")return[];if(U)return F;return{type:"text",text:F.thinking}}if(F.type==="text"){if(U)return F;return{type:"text",text:F.text}}if(F.type==="toolCall"){let K=F,W=K;if(!U&&K.thoughtSignature)W={...K},delete W.thoughtSignature;if(!U&&H){let L=H(K.id,J,w);if(L!==K.id)Q.set(K.id,L),W={...W,id:L}}return W}return F});return{...w,content:B}}return $}),Y=[],j=[],X=new Set,G=()=>{if(j.length>0){for(let $ of j)if(!X.has($.id))Y.push({role:"toolResult",toolCallId:$.id,toolName:$.name,content:[{type:"text",text:"No result provided"}],isError:!0,timestamp:Date.now()});j=[],X=new Set}};for(let $=0;$<E.length;$++){let w=E[$];if(w.role==="assistant"){G();let U=w;if(U.stopReason==="error"||U.stopReason==="aborted")continue;let B=U.content.filter((F)=>F.type==="toolCall");if(B.length>0)j=B,X=new Set;Y.push(w)}else if(w.role==="toolResult")X.add(w.toolCallId),Y.push(w);else if(w.role==="user")G(),Y.push(w);else Y.push(w)}return G(),Y}
3
+ export{k as jc,d as kc,u as lc,C as mc,c as nc,x as oc,m as pc,i as qc,l as rc};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
2
  function q(k){let b=3735928559,d=1103547991;for(let f=0;f<k.length;f++){let l=k.charCodeAt(f);b=Math.imul(b^l,2654435761),d=Math.imul(d^l,1597334677)}return b=Math.imul(b^b>>>16,2246822507)^Math.imul(d^d>>>13,3266489909),d=Math.imul(d^d>>>16,2246822507)^Math.imul(b^b>>>13,3266489909),(d>>>0).toString(36)+(b>>>0).toString(36)}
3
- export{q as Rc};
3
+ export{q as Qb};