gauss-ts 2.0.16 → 2.0.17
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/README.md +4 -0
- package/dist/{agent-CrZrTEuW.d.ts → agent-C2MGEbbY.d.ts} +14 -1
- package/dist/{agent-DNhLvpNL.d.cts → agent-DsZps_X8.d.cts} +14 -1
- package/dist/agent.cjs +2 -2
- package/dist/agent.cjs.map +1 -1
- package/dist/agent.d.cts +2 -2
- package/dist/agent.d.ts +2 -2
- package/dist/agent.js +2 -2
- package/dist/agent.js.map +1 -1
- package/dist/index.cjs +17 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/{orchestration-Bo_pk-NT.d.ts → orchestration-DhJLWFxN.d.ts} +1 -1
- package/dist/{orchestration-DHyULA4G.d.cts → orchestration-YJcl8EST.d.cts} +1 -1
- package/dist/orchestration.cjs +4 -4
- package/dist/orchestration.cjs.map +1 -1
- package/dist/orchestration.d.cts +2 -2
- package/dist/orchestration.d.ts +2 -2
- package/dist/orchestration.js +3 -3
- package/dist/orchestration.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -214,6 +214,9 @@ const explanation = explainRoutingTarget(
|
|
|
214
214
|
{ currentHourUtc: 11, governanceTags: ["balanced"] },
|
|
215
215
|
);
|
|
216
216
|
console.log(explanation.decision?.selectedBy); // "direct" | "alias:..." | "fallback:..."
|
|
217
|
+
|
|
218
|
+
// CI-friendly policy gate summary (fails with exit code 1 when scenarios fail)
|
|
219
|
+
// npm run policy:gate -- ./scenarios.json ./policy.json
|
|
217
220
|
```
|
|
218
221
|
|
|
219
222
|
### Unified Control Plane (M51 foundation)
|
|
@@ -241,6 +244,7 @@ console.log(`Control Plane: ${url}`);
|
|
|
241
244
|
// hosted policy explain -> GET ${url}/api/ops/policy/explain?provider=openai&model=gpt-5.2
|
|
242
245
|
// hosted policy explain batch -> GET ${url}/api/ops/policy/explain/batch?scenarios=[...]
|
|
243
246
|
// hosted policy simulation -> GET ${url}/api/ops/policy/explain/simulate?scenarios=[...]
|
|
247
|
+
// hosted policy diff -> GET ${url}/api/ops/policy/explain/diff?scenarios=[...]
|
|
244
248
|
// hosted policy explain traces -> GET ${url}/api/ops/policy/explain/traces
|
|
245
249
|
// hosted ops dashboard -> GET ${url}/ops
|
|
246
250
|
// hosted tenant dashboard -> GET ${url}/ops/tenants
|
|
@@ -48,6 +48,18 @@ interface RoutingDecisionExplanation {
|
|
|
48
48
|
checks: RoutingExplainCheck[];
|
|
49
49
|
error?: string;
|
|
50
50
|
}
|
|
51
|
+
interface PolicyGateScenario {
|
|
52
|
+
provider: ProviderType;
|
|
53
|
+
model: string;
|
|
54
|
+
options?: ResolveRoutingTargetOptions;
|
|
55
|
+
}
|
|
56
|
+
interface PolicyGateSummary {
|
|
57
|
+
total: number;
|
|
58
|
+
passed: number;
|
|
59
|
+
failed: number;
|
|
60
|
+
failedIndexes: number[];
|
|
61
|
+
results: RoutingDecisionExplanation[];
|
|
62
|
+
}
|
|
51
63
|
interface ResolveRoutingTargetOptions {
|
|
52
64
|
availableProviders?: ProviderType[];
|
|
53
65
|
estimatedCostUsd?: number;
|
|
@@ -64,6 +76,7 @@ declare function enforceRoutingGovernance(policy: RoutingPolicy | undefined, pro
|
|
|
64
76
|
declare function resolveFallbackProvider(policy: RoutingPolicy | undefined, availableProviders: ProviderType[]): ProviderType | null;
|
|
65
77
|
declare function resolveRoutingTarget(policy: RoutingPolicy | undefined, provider: ProviderType, model: string, options?: ResolveRoutingTargetOptions): ResolvedRoutingTarget;
|
|
66
78
|
declare function explainRoutingTarget(policy: RoutingPolicy | undefined, provider: ProviderType, model: string, options?: ResolveRoutingTargetOptions): RoutingDecisionExplanation;
|
|
79
|
+
declare function evaluatePolicyGate(policy: RoutingPolicy | undefined, scenarios: PolicyGateScenario[]): PolicyGateSummary;
|
|
67
80
|
|
|
68
81
|
/**
|
|
69
82
|
* A single event emitted during agent streaming.
|
|
@@ -921,4 +934,4 @@ declare class Agent implements Disposable {
|
|
|
921
934
|
*/
|
|
922
935
|
declare function gauss(prompt: string, config?: Omit<AgentConfig, "name">): Promise<string>;
|
|
923
936
|
|
|
924
|
-
export { type AgentConfig as A, type GovernancePackName as G, McpClient as M, type RoutingPolicy as R, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type GovernancePolicyPack as c, type GovernanceRule as d, type McpClientConfig as e, type McpToolDef as f, type McpToolResult as g, type
|
|
937
|
+
export { type AgentConfig as A, resolveRoutingTarget as B, tool as C, type GovernancePackName as G, McpClient as M, type PolicyGateScenario as P, type RoutingPolicy as R, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type GovernancePolicyPack as c, type GovernanceRule as d, type McpClientConfig as e, type McpToolDef as f, type McpToolResult as g, type PolicyGateSummary as h, type ResolveRoutingTargetOptions as i, type ResolvedRoutingTarget as j, type RoutingCandidate as k, type RoutingDecisionExplanation as l, type RoutingExplainCheck as m, type RoutingExplainCheckName as n, applyGovernancePack as o, createToolExecutor as p, enforceRoutingCostLimit as q, enforceRoutingGovernance as r, enforceRoutingRateLimit as s, enforceRoutingTimeWindow as t, evaluatePolicyGate as u, explainRoutingTarget as v, gauss as w, governancePolicyPack as x, isTypedTool as y, resolveFallbackProvider as z };
|
|
@@ -48,6 +48,18 @@ interface RoutingDecisionExplanation {
|
|
|
48
48
|
checks: RoutingExplainCheck[];
|
|
49
49
|
error?: string;
|
|
50
50
|
}
|
|
51
|
+
interface PolicyGateScenario {
|
|
52
|
+
provider: ProviderType;
|
|
53
|
+
model: string;
|
|
54
|
+
options?: ResolveRoutingTargetOptions;
|
|
55
|
+
}
|
|
56
|
+
interface PolicyGateSummary {
|
|
57
|
+
total: number;
|
|
58
|
+
passed: number;
|
|
59
|
+
failed: number;
|
|
60
|
+
failedIndexes: number[];
|
|
61
|
+
results: RoutingDecisionExplanation[];
|
|
62
|
+
}
|
|
51
63
|
interface ResolveRoutingTargetOptions {
|
|
52
64
|
availableProviders?: ProviderType[];
|
|
53
65
|
estimatedCostUsd?: number;
|
|
@@ -64,6 +76,7 @@ declare function enforceRoutingGovernance(policy: RoutingPolicy | undefined, pro
|
|
|
64
76
|
declare function resolveFallbackProvider(policy: RoutingPolicy | undefined, availableProviders: ProviderType[]): ProviderType | null;
|
|
65
77
|
declare function resolveRoutingTarget(policy: RoutingPolicy | undefined, provider: ProviderType, model: string, options?: ResolveRoutingTargetOptions): ResolvedRoutingTarget;
|
|
66
78
|
declare function explainRoutingTarget(policy: RoutingPolicy | undefined, provider: ProviderType, model: string, options?: ResolveRoutingTargetOptions): RoutingDecisionExplanation;
|
|
79
|
+
declare function evaluatePolicyGate(policy: RoutingPolicy | undefined, scenarios: PolicyGateScenario[]): PolicyGateSummary;
|
|
67
80
|
|
|
68
81
|
/**
|
|
69
82
|
* A single event emitted during agent streaming.
|
|
@@ -921,4 +934,4 @@ declare class Agent implements Disposable {
|
|
|
921
934
|
*/
|
|
922
935
|
declare function gauss(prompt: string, config?: Omit<AgentConfig, "name">): Promise<string>;
|
|
923
936
|
|
|
924
|
-
export { type AgentConfig as A, type GovernancePackName as G, McpClient as M, type RoutingPolicy as R, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type GovernancePolicyPack as c, type GovernanceRule as d, type McpClientConfig as e, type McpToolDef as f, type McpToolResult as g, type
|
|
937
|
+
export { type AgentConfig as A, resolveRoutingTarget as B, tool as C, type GovernancePackName as G, McpClient as M, type PolicyGateScenario as P, type RoutingPolicy as R, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type GovernancePolicyPack as c, type GovernanceRule as d, type McpClientConfig as e, type McpToolDef as f, type McpToolResult as g, type PolicyGateSummary as h, type ResolveRoutingTargetOptions as i, type ResolvedRoutingTarget as j, type RoutingCandidate as k, type RoutingDecisionExplanation as l, type RoutingExplainCheck as m, type RoutingExplainCheckName as n, applyGovernancePack as o, createToolExecutor as p, enforceRoutingCostLimit as q, enforceRoutingGovernance as r, enforceRoutingRateLimit as s, enforceRoutingTimeWindow as t, evaluatePolicyGate as u, explainRoutingTarget as v, gauss as w, governancePolicyPack as x, isTypedTool as y, resolveFallbackProvider as z };
|
package/dist/agent.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var P=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var j=(r,e)=>{for(var t in e)P(r,t,{get:e[t],enumerable:!0})},Y=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of q(e))!$.call(r,n)&&n!==t&&P(r,n,{get:()=>e[n],enumerable:!(o=L(e,n))||o.enumerable});return r};var F=r=>Y(P({},"__esModule",{value:!0}),r);var ae={};j(ae,{Agent:()=>h,AgentStream:()=>y,availableRuntimes:()=>U,batch:()=>
|
|
1
|
+
"use strict";var P=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var j=(r,e)=>{for(var t in e)P(r,t,{get:e[t],enumerable:!0})},Y=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of q(e))!$.call(r,n)&&n!==t&&P(r,n,{get:()=>e[n],enumerable:!(o=L(e,n))||o.enumerable});return r};var F=r=>Y(P({},"__esModule",{value:!0}),r);var ae={};j(ae,{Agent:()=>h,AgentStream:()=>y,availableRuntimes:()=>U,batch:()=>G,executeCode:()=>N,gauss:()=>S,generateImage:()=>H,version:()=>k.version});module.exports=F(ae);var u=require("gauss-napi");var R=class extends Error{code;constructor(e,t){super(t),this.name="GaussError",this.code=e}},f=class extends R{resourceType;resourceName;constructor(e,t){super("RESOURCE_DISPOSED",`${e} "${t}" has been destroyed. Create a new instance.`),this.name="DisposedError",this.resourceType=e,this.resourceName=t}};var b="gpt-5.2";var B="claude-sonnet-4-20250514";var W="gemini-2.5-flash";var J="openai/gpt-5.2",X="deepseek-chat";var V="meta-llama/Llama-3.3-70B-Instruct-Turbo",z="accounts/fireworks/models/llama-v3p1-70b-instruct",Q="mistral-large-latest",Z="sonar-pro",ee="grok-3-beta",C={openai:b,anthropic:B,google:W,openrouter:J,deepseek:X,groq:"llama-3.3-70b-versatile",ollama:"llama3.2",together:V,fireworks:z,mistral:Q,perplexity:Z,xai:ee};var te={openai:"OPENAI_API_KEY",anthropic:"ANTHROPIC_API_KEY",google:"GOOGLE_API_KEY",groq:"GROQ_API_KEY",deepseek:"DEEPSEEK_API_KEY",openrouter:"OPENROUTER_API_KEY",together:"TOGETHER_API_KEY",fireworks:"FIREWORKS_API_KEY",mistral:"MISTRAL_API_KEY",perplexity:"PERPLEXITY_API_KEY",xai:"XAI_API_KEY",ollama:""};function x(r){let e=te[r]??"";return e?(typeof process<"u"?process.env[e]:"")??"":""}function _(){let r=[{env:"OPENAI_API_KEY",provider:"openai"},{env:"ANTHROPIC_API_KEY",provider:"anthropic"},{env:"GOOGLE_API_KEY",provider:"google"},{env:"GROQ_API_KEY",provider:"groq"},{env:"DEEPSEEK_API_KEY",provider:"deepseek"},{env:"OPENROUTER_API_KEY",provider:"openrouter"},{env:"TOGETHER_API_KEY",provider:"together"},{env:"FIREWORKS_API_KEY",provider:"fireworks"},{env:"MISTRAL_API_KEY",provider:"mistral"},{env:"PERPLEXITY_API_KEY",provider:"perplexity"},{env:"XAI_API_KEY",provider:"xai"}];for(let{env:e,provider:t}of r)if(typeof process<"u"&&process.env[e])return{provider:t,model:C[t]}}function re(r,e){if(r?.maxTotalCostUsd!==void 0&&e>r.maxTotalCostUsd)throw new Error(`routing policy rejected cost ${e}`)}function oe(r,e){if(r?.maxRequestsPerMinute!==void 0&&e>r.maxRequestsPerMinute)throw new Error(`routing policy rejected rate ${e}`)}function ne(r,e){let t=r?.allowedHoursUtc;if(!(!t||t.length===0)&&(!Number.isInteger(e)||e<0||e>23||!t.includes(e)))throw new Error(`routing policy rejected hour ${e}`)}function T(r,e,t){let o=r?.governance?.rules??[];if(o.length===0)return;let n=o.filter(s=>s.type==="allow_provider").map(s=>s.provider);if(n.length>0&&!n.includes(e))throw new Error(`routing policy governance rejected provider ${e}`);for(let s of o){if(s.type==="deny_provider"&&s.provider===e)throw new Error(`routing policy governance rejected provider ${e}`);if(s.type==="require_tag"&&t!==void 0&&!t.includes(s.tag))throw new Error(`routing policy governance missing tag ${s.tag}`)}}function se(r,e){let t=r?.fallbackOrder;if(!t||t.length===0||e.length===0)return null;let o=new Set(e);for(let n of t)if(o.has(n))return n;return null}function w(r,e,t,o={}){let n=o.governanceTags,s=o.currentHourUtc??new Date().getUTCHours();ne(r,s),o.estimatedCostUsd!==void 0&&re(r,o.estimatedCostUsd),o.currentRequestsPerMinute!==void 0&&oe(r,o.currentRequestsPerMinute);let i=p=>p.length===1?p[0]:[...p].sort((m,g)=>{let v=r?.providerWeights?.[g.provider]??0,l=r?.providerWeights?.[m.provider]??0;return v!==l?v-l:(g.priority??0)-(m.priority??0)})[0],a=r?.aliases?.[t];if(a&&a.length>0){let p=[...a].sort((l,K)=>(K.priority??0)-(l.priority??0)),m=o.availableProviders;if(!m||m.length===0){let l=i(p);return T(r,l.provider,n),{provider:l.provider,model:l.model,selectedBy:`alias:${t}`}}let g=new Set(m),v=p.filter(l=>g.has(l.provider));if(v.length>0){let l=i(v);return T(r,l.provider,n),{provider:l.provider,model:l.model,selectedBy:`alias:${t}`}}}let d=se(r,o.availableProviders??[]);return d&&d!==e?(T(r,d,n),{provider:d,model:t,selectedBy:`fallback:${d}`}):(T(r,e,n),{provider:e,model:t,selectedBy:"direct"})}var O=require("gauss-napi");function ie(r){return{...r,citations:r.citations?.map(e=>({type:e.citationType??e.type,citedText:e.citedText,documentTitle:e.documentTitle,start:e.start,end:e.end}))}}var y=class{constructor(e,t,o,n,s,i){this.agentName=e;this.providerHandle=t;this.tools=o;this.messages=n;this.options=s;this.toolExecutor=i}_result;get result(){return this._result}async*[Symbol.asyncIterator](){let e=[],t,o=!1,n=i=>{try{e.push(JSON.parse(i))}catch{e.push({type:"raw",text:i})}t?.()},s=(0,O.agent_stream_with_tool_executor)(this.agentName,this.providerHandle,this.tools,this.messages,this.options,n,this.toolExecutor).then(i=>{this._result=ie(i),o=!0,t?.()});for(;!o||e.length>0;)e.length>0?yield e.shift():o||await new Promise(i=>{t=i});await s}};function A(r){return{name:r.name,description:r.description,parameters:r.parameters,execute:r.execute}}function I(r){return typeof r.execute=="function"}function D(r,e){let t=new Map(r.map(o=>[o.name,o]));return async o=>{let n;try{n=JSON.parse(o)}catch{return JSON.stringify({error:"Invalid tool call JSON"})}let s=n.tool??n.name??"",i=t.get(s);if(!i)return e?e(o):JSON.stringify({error:`Unknown tool: ${s}`});try{let a=n.args??n.arguments??{},d=await i.execute(a);return typeof d=="string"?d:JSON.stringify(d)}catch(a){let d=a instanceof Error?a.message:String(a);return JSON.stringify({error:`Tool "${s}" failed: ${d}`})}}}function E(r){return{...r,citations:r.citations?.map(e=>({type:e.citationType??e.type??"unknown",citedText:e.citedText,documentTitle:e.documentTitle,start:e.start,end:e.end}))}}var h=class r{providerHandle;_name;_requestedProvider;_requestedModel;_provider;_model;_routingPolicy;_providerOptions;_instructions;_tools=[];_options={};disposed=!1;_middleware=null;_guardrails=null;_memory=null;_sessionId="";_mcpClients=[];_mcpToolsLoaded=!1;constructor(e={}){let t=_(),o=e.provider??t?.provider??"openai",n=e.model??t?.model??b;this._requestedProvider=o,this._requestedModel=n,this._routingPolicy=e.routingPolicy;let s=w(this._routingPolicy,o,n);this._provider=s.provider,this._model=s.model,this._name=e.name??"agent",this._instructions=e.instructions??"";let i=e.providerOptions?.apiKey??x(this._provider);this._providerOptions={apiKey:i,...e.providerOptions},this.providerHandle=(0,u.create_provider)(this._provider,this._model,this._providerOptions),e.tools&&(this._tools=[...e.tools]),e.middleware&&(this._middleware=e.middleware),e.guardrails&&(this._guardrails=e.guardrails),e.memory&&(this._memory=e.memory),e.sessionId&&(this._sessionId=e.sessionId),e.mcpClients&&(this._mcpClients=[...e.mcpClients]);let a=e.codeExecution,d=a===!0?{python:!0,javascript:!0,bash:!0}:a||void 0;this._options={instructions:this._instructions||void 0,temperature:e.temperature,maxSteps:e.maxSteps,topP:e.topP,maxTokens:e.maxTokens,seed:e.seed,stopOnTool:e.stopOnTool,outputSchema:e.outputSchema,thinkingBudget:e.thinkingBudget,reasoningEffort:e.reasoningEffort,cacheControl:e.cacheControl,codeExecution:d,grounding:e.grounding,nativeCodeExecution:e.nativeCodeExecution,responseModalities:e.responseModalities}}static fromEnv(e={}){return new r(e)}get name(){return this._name}get provider(){return this._provider}get model(){return this._model}get instructions(){return this._instructions}get handle(){return this.providerHandle}get capabilities(){return(0,u.get_provider_capabilities)(this.providerHandle)}addTool(e){return this._tools.push(e),this}addTools(e){return this._tools.push(...e),this}withTool(e,t,o,n){return this._tools.push(A({name:e,description:t,parameters:n??{},execute:o})),this}setOptions(e){return this._options={...this._options,...e},this}withModel(e){return this.assertNotDisposed(),new r({...this.toConfig(),model:e})}withRoutingContext(e){this.assertNotDisposed();let t=w(this._routingPolicy,this._requestedProvider,this._requestedModel,e);return new r({...this.toConfig(),provider:t.provider,model:t.model})}withMiddleware(e){return this._middleware=e,this}withGuardrails(e){return this._guardrails=e,this}withMemory(e,t){return this._memory=e,t&&(this._sessionId=t),this}useMcpServer(e){return this._mcpClients.push(e),this._mcpToolsLoaded=!1,this}async run(e){this.assertNotDisposed(),await this.ensureMcpTools();let t=typeof e=="string"?[{role:"user",content:e}]:[...e];if(this._memory){let i=await this._memory.recall(this._sessionId?{sessionId:this._sessionId}:void 0);i.length>0&&(t=[{role:"system",content:`Previous context:
|
|
2
2
|
${i.map(d=>d.content).join(`
|
|
3
3
|
`)}`},...t])}let{toolDefs:o,executor:n}=this.resolveToolsAndExecutor(),s;if(n?s=E(await(0,u.agent_run_with_tool_executor)(this._name,this.providerHandle,o,t,this._options,n)):s=E(await(0,u.agent_run)(this._name,this.providerHandle,o,t,this._options)),this._memory){let i=typeof e=="string"?e:e.map(a=>a.content).join(`
|
|
4
|
-
`);await this._memory.store({id:`${Date.now()}-user`,content:i,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0}),await this._memory.store({id:`${Date.now()}-assistant`,content:s.text,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0})}return s}async runWithTools(e,t){this.assertNotDisposed(),await this.ensureMcpTools();let o=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:n,executor:s}=this.resolveToolsAndExecutor(),i=async a=>{if(s){let d=await s(a);if(!JSON.parse(d).error?.startsWith("Unknown tool:"))return d}return t(a)};return E(await(0,u.agent_run_with_tool_executor)(this._name,this.providerHandle,n,o,this._options,i))}async stream(e,t,o){this.assertNotDisposed(),await this.ensureMcpTools();let n=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:s,executor:i}=this.resolveToolsAndExecutor(),a=o??i??M;return E(await(0,u.agent_stream_with_tool_executor)(this._name,this.providerHandle,s,n,this._options,t,a))}streamIter(e,t){this.assertNotDisposed();let o=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:n,executor:s}=this.resolveToolsAndExecutor(),i=t??s??M;return new y(this._name,this.providerHandle,n,o,this._options,i)}async streamText(e,t,o){this.assertNotDisposed();let n=this.streamIter(e,o),s="";for await(let i of n){if(i.type!=="text_delta")continue;let a=typeof i.text=="string"?i.text:typeof i.delta=="string"?i.delta:"";a&&(s+=a,t?.(a))}return n.result?.text??s}async generate(e,t){this.assertNotDisposed();let o=typeof e=="string"?[{role:"user",content:e}]:e;return(0,u.generate)(this.providerHandle,o,t?.temperature,t?.maxTokens)}async generateWithTools(e,t,o){this.assertNotDisposed();let n=typeof e=="string"?[{role:"user",content:e}]:e;return(0,u.generate_with_tools)(this.providerHandle,n,t,o?.temperature,o?.maxTokens)}destroy(){if(!this.disposed){this.disposed=!0;for(let e of this._mcpClients)try{e.close()}catch{}try{(0,u.destroy_provider)(this.providerHandle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new f("Agent",this._name)}resolveToolsAndExecutor(){let e=this._tools.filter(I),t=this._tools.map(n=>({name:n.name,description:n.description,parameters:n.parameters})),o=e.length>0?D(e):null;return{toolDefs:t,executor:o}}async ensureMcpTools(){if(!(this._mcpToolsLoaded||this._mcpClients.length===0)){for(let e of this._mcpClients){let{tools:t,executor:o}=await e.getToolsWithExecutor();for(let n of t){let s={...n,execute:async i=>{let a=JSON.stringify({tool:n.name,args:i}),d=await o(a);return JSON.parse(d)}};this._tools.push(s)}}this._mcpToolsLoaded=!0}}toConfig(){return{name:this._name,provider:this._requestedProvider,model:this._requestedModel,routingPolicy:this._routingPolicy,providerOptions:{...this._providerOptions},instructions:this._instructions||void 0,tools:[...this._tools],middleware:this._middleware??void 0,guardrails:this._guardrails??void 0,memory:this._memory??void 0,sessionId:this._sessionId||void 0,mcpClients:[...this._mcpClients],temperature:this._options.temperature,maxSteps:this._options.maxSteps,topP:this._options.topP,maxTokens:this._options.maxTokens,seed:this._options.seed,stopOnTool:this._options.stopOnTool,outputSchema:this._options.outputSchema,thinkingBudget:this._options.thinkingBudget,reasoningEffort:this._options.reasoningEffort,cacheControl:this._options.cacheControl,codeExecution:this._options.codeExecution,grounding:this._options.grounding,nativeCodeExecution:this._options.nativeCodeExecution,responseModalities:this._options.responseModalities}}},M=async()=>"{}";async function S(r,e){let t=new h({name:"gauss",...e});try{return(await t.run(r)).text}finally{t.destroy()}}async function
|
|
4
|
+
`);await this._memory.store({id:`${Date.now()}-user`,content:i,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0}),await this._memory.store({id:`${Date.now()}-assistant`,content:s.text,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0})}return s}async runWithTools(e,t){this.assertNotDisposed(),await this.ensureMcpTools();let o=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:n,executor:s}=this.resolveToolsAndExecutor(),i=async a=>{if(s){let d=await s(a);if(!JSON.parse(d).error?.startsWith("Unknown tool:"))return d}return t(a)};return E(await(0,u.agent_run_with_tool_executor)(this._name,this.providerHandle,n,o,this._options,i))}async stream(e,t,o){this.assertNotDisposed(),await this.ensureMcpTools();let n=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:s,executor:i}=this.resolveToolsAndExecutor(),a=o??i??M;return E(await(0,u.agent_stream_with_tool_executor)(this._name,this.providerHandle,s,n,this._options,t,a))}streamIter(e,t){this.assertNotDisposed();let o=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:n,executor:s}=this.resolveToolsAndExecutor(),i=t??s??M;return new y(this._name,this.providerHandle,n,o,this._options,i)}async streamText(e,t,o){this.assertNotDisposed();let n=this.streamIter(e,o),s="";for await(let i of n){if(i.type!=="text_delta")continue;let a=typeof i.text=="string"?i.text:typeof i.delta=="string"?i.delta:"";a&&(s+=a,t?.(a))}return n.result?.text??s}async generate(e,t){this.assertNotDisposed();let o=typeof e=="string"?[{role:"user",content:e}]:e;return(0,u.generate)(this.providerHandle,o,t?.temperature,t?.maxTokens)}async generateWithTools(e,t,o){this.assertNotDisposed();let n=typeof e=="string"?[{role:"user",content:e}]:e;return(0,u.generate_with_tools)(this.providerHandle,n,t,o?.temperature,o?.maxTokens)}destroy(){if(!this.disposed){this.disposed=!0;for(let e of this._mcpClients)try{e.close()}catch{}try{(0,u.destroy_provider)(this.providerHandle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new f("Agent",this._name)}resolveToolsAndExecutor(){let e=this._tools.filter(I),t=this._tools.map(n=>({name:n.name,description:n.description,parameters:n.parameters})),o=e.length>0?D(e):null;return{toolDefs:t,executor:o}}async ensureMcpTools(){if(!(this._mcpToolsLoaded||this._mcpClients.length===0)){for(let e of this._mcpClients){let{tools:t,executor:o}=await e.getToolsWithExecutor();for(let n of t){let s={...n,execute:async i=>{let a=JSON.stringify({tool:n.name,args:i}),d=await o(a);return JSON.parse(d)}};this._tools.push(s)}}this._mcpToolsLoaded=!0}}toConfig(){return{name:this._name,provider:this._requestedProvider,model:this._requestedModel,routingPolicy:this._routingPolicy,providerOptions:{...this._providerOptions},instructions:this._instructions||void 0,tools:[...this._tools],middleware:this._middleware??void 0,guardrails:this._guardrails??void 0,memory:this._memory??void 0,sessionId:this._sessionId||void 0,mcpClients:[...this._mcpClients],temperature:this._options.temperature,maxSteps:this._options.maxSteps,topP:this._options.topP,maxTokens:this._options.maxTokens,seed:this._options.seed,stopOnTool:this._options.stopOnTool,outputSchema:this._options.outputSchema,thinkingBudget:this._options.thinkingBudget,reasoningEffort:this._options.reasoningEffort,cacheControl:this._options.cacheControl,codeExecution:this._options.codeExecution,grounding:this._options.grounding,nativeCodeExecution:this._options.nativeCodeExecution,responseModalities:this._options.responseModalities}}},M=async()=>"{}";async function S(r,e){let t=new h({name:"gauss",...e});try{return(await t.run(r)).text}finally{t.destroy()}}async function G(r,e){let{concurrency:t=5,...o}=e??{},n=r.map(i=>({input:i})),s=new h({name:"batch",...o});try{let i=[...n.entries()],a=Array.from({length:Math.min(t,i.length)},async()=>{for(;i.length>0;){let d=i.shift();if(!d)break;let[p,m]=d;try{n[p].result=await s.run(m.input)}catch(g){n[p].error=g instanceof Error?g:new Error(String(g))}}});await Promise.all(a)}finally{s.destroy()}return n}var c=require("gauss-napi");var k=require("gauss-napi");async function N(r,e,t){return(0,c.execute_code)(r,e,t?.timeoutSecs,t?.workingDir,t?.sandbox)}async function U(){return(0,c.available_runtimes)()}async function H(r,e={}){let t=_(),o=e.provider??t?.provider??"openai",n=e.model??t?.model??"dall-e-3",s=e.providerOptions?.apiKey??x(o),i=(0,c.create_provider)(o,n,{apiKey:s,...e.providerOptions});try{return await(0,c.generate_image)(i,r,e.model,e.size,e.quality,e.style,e.aspectRatio,e.n,e.responseFormat)}finally{(0,c.destroy_provider)(i)}}0&&(module.exports={Agent,AgentStream,availableRuntimes,batch,executeCode,gauss,generateImage,version});
|
|
5
5
|
//# sourceMappingURL=agent.cjs.map
|