gauss-ts 2.0.2 → 2.0.4
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 +42 -0
- package/dist/{agent-U5pITdVk.d.cts → agent-4QSPcvV5.d.cts} +43 -4
- package/dist/{agent-Da25i24I.d.ts → agent-B2TNjyt6.d.ts} +43 -4
- package/dist/agent.cjs +3 -3
- package/dist/agent.cjs.map +1 -1
- package/dist/agent.d.cts +5 -5
- package/dist/agent.d.ts +5 -5
- package/dist/agent.js +4 -4
- package/dist/agent.js.map +1 -1
- package/dist/{guardrail-BGqhOeWA.d.cts → guardrail-D7SUI-fg.d.cts} +1 -1
- package/dist/{guardrail-8Z_HuIIT.d.ts → guardrail-vCEyPx6e.d.ts} +1 -1
- package/dist/index.cjs +60 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +132 -27
- package/dist/index.d.ts +132 -27
- package/dist/index.js +60 -17
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.cts +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/{memory-U2EleSW-.d.ts → memory-Xr9Rri48.d.ts} +1 -1
- package/dist/{memory-BGrAWNqI.d.cts → memory-bSgbqq8H.d.cts} +1 -1
- package/dist/middleware.d.cts +2 -2
- package/dist/middleware.d.ts +2 -2
- package/dist/orchestration.cjs +5 -5
- package/dist/orchestration.cjs.map +1 -1
- package/dist/orchestration.d.cts +4 -4
- package/dist/orchestration.d.ts +4 -4
- package/dist/orchestration.js +5 -5
- package/dist/orchestration.js.map +1 -1
- package/dist/rag.d.cts +2 -2
- package/dist/rag.d.ts +2 -2
- package/dist/tools.d.cts +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/{types-BayYAhZL.d.cts → types-Dybn1DM6.d.cts} +1 -1
- package/dist/{types-BayYAhZL.d.ts → types-Dybn1DM6.d.ts} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -145,6 +145,46 @@ const a = Agent.fromEnv({ instructions: "Be precise." });
|
|
|
145
145
|
|
|
146
146
|
// Clone with a different model
|
|
147
147
|
const b = a.withModel("gpt-4.1");
|
|
148
|
+
|
|
149
|
+
// Optional routing policy: alias + provider/model target
|
|
150
|
+
const c = new Agent({
|
|
151
|
+
model: "fast-chat",
|
|
152
|
+
routingPolicy: {
|
|
153
|
+
aliases: {
|
|
154
|
+
"fast-chat": [{ provider: "anthropic", model: "claude-3-5-haiku-latest", priority: 10 }],
|
|
155
|
+
},
|
|
156
|
+
fallbackOrder: ["anthropic", "openai"],
|
|
157
|
+
maxTotalCostUsd: 2.0,
|
|
158
|
+
maxRequestsPerMinute: 60,
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Runtime policy-router decision (availability + budget + rate)
|
|
163
|
+
const routed = c.withRoutingContext({
|
|
164
|
+
availableProviders: ["openai"],
|
|
165
|
+
estimatedCostUsd: 1.2,
|
|
166
|
+
currentRequestsPerMinute: 20,
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Unified Control Plane (M51 foundation)
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
import { ControlPlane, Telemetry, ApprovalManager } from "gauss-ts";
|
|
174
|
+
|
|
175
|
+
const cp = new ControlPlane({
|
|
176
|
+
telemetry: new Telemetry(),
|
|
177
|
+
approvals: new ApprovalManager(),
|
|
178
|
+
model: "gpt-5.2",
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
cp.setCostUsage({ inputTokens: 1200, outputTokens: 600 });
|
|
182
|
+
const { url } = await cp.startServer("127.0.0.1", 0);
|
|
183
|
+
console.log(`Control Plane: ${url}`);
|
|
184
|
+
// SSE stream:
|
|
185
|
+
// single event quick-check -> GET ${url}/api/stream?channel=timeline&once=1
|
|
186
|
+
// multiplex channels -> GET ${url}/api/stream?channels=snapshot,timeline&once=1
|
|
187
|
+
// reconnect/replay cursor -> GET ${url}/api/stream?channel=snapshot&lastEventId=42
|
|
148
188
|
```
|
|
149
189
|
|
|
150
190
|
---
|
|
@@ -162,6 +202,8 @@ const b = a.withModel("gpt-4.1");
|
|
|
162
202
|
- **Guardrails + Middleware**: `GuardrailChain`, `MiddlewareChain`
|
|
163
203
|
- **Reliability**: retry, circuit breaker, fallback providers
|
|
164
204
|
- **Observability & quality**: `Telemetry`, `EvalRunner`
|
|
205
|
+
- **Control plane**: `ControlPlane` (local snapshot API + dashboard)
|
|
206
|
+
- **Routing policy**: `routingPolicy` + `resolveRoutingTarget()`
|
|
165
207
|
- **Enterprise preset**: `enterprisePreset()`, `enterpriseRun()`
|
|
166
208
|
|
|
167
209
|
---
|
|
@@ -1,6 +1,33 @@
|
|
|
1
|
-
import { H as Handle, T as ToolDef,
|
|
2
|
-
import { M as MiddlewareChain, G as GuardrailChain } from './guardrail-
|
|
3
|
-
import { M as Memory } from './memory-
|
|
1
|
+
import { a as ProviderType, H as Handle, T as ToolDef, b as Message, A as AgentOptions, c as ToolExecutor, d as AgentResult, D as Disposable, e as ProviderOptions, C as CodeExecutionOptions, f as ProviderCapabilities, S as StreamCallback } from './types-Dybn1DM6.cjs';
|
|
2
|
+
import { M as MiddlewareChain, G as GuardrailChain } from './guardrail-D7SUI-fg.cjs';
|
|
3
|
+
import { M as Memory } from './memory-bSgbqq8H.cjs';
|
|
4
|
+
|
|
5
|
+
interface RoutingCandidate {
|
|
6
|
+
provider: ProviderType;
|
|
7
|
+
model: string;
|
|
8
|
+
priority?: number;
|
|
9
|
+
maxCostUsd?: number;
|
|
10
|
+
}
|
|
11
|
+
interface RoutingPolicy {
|
|
12
|
+
aliases?: Record<string, RoutingCandidate[]>;
|
|
13
|
+
fallbackOrder?: ProviderType[];
|
|
14
|
+
maxTotalCostUsd?: number;
|
|
15
|
+
maxRequestsPerMinute?: number;
|
|
16
|
+
}
|
|
17
|
+
interface ResolvedRoutingTarget {
|
|
18
|
+
provider: ProviderType;
|
|
19
|
+
model: string;
|
|
20
|
+
selectedBy: "direct" | `alias:${string}` | `fallback:${ProviderType}`;
|
|
21
|
+
}
|
|
22
|
+
interface ResolveRoutingTargetOptions {
|
|
23
|
+
availableProviders?: ProviderType[];
|
|
24
|
+
estimatedCostUsd?: number;
|
|
25
|
+
currentRequestsPerMinute?: number;
|
|
26
|
+
}
|
|
27
|
+
declare function enforceRoutingCostLimit(policy: RoutingPolicy | undefined, costUsd: number): void;
|
|
28
|
+
declare function enforceRoutingRateLimit(policy: RoutingPolicy | undefined, requestsPerMinute: number): void;
|
|
29
|
+
declare function resolveFallbackProvider(policy: RoutingPolicy | undefined, availableProviders: ProviderType[]): ProviderType | null;
|
|
30
|
+
declare function resolveRoutingTarget(policy: RoutingPolicy | undefined, provider: ProviderType, model: string, options?: ResolveRoutingTargetOptions): ResolvedRoutingTarget;
|
|
4
31
|
|
|
5
32
|
/**
|
|
6
33
|
* A single event emitted during agent streaming.
|
|
@@ -340,6 +367,8 @@ interface AgentConfig {
|
|
|
340
367
|
provider?: ProviderType;
|
|
341
368
|
/** Model identifier (e.g. `"gpt-4o"`, `"claude-sonnet-4-20250514"`). Auto-selected if omitted. */
|
|
342
369
|
model?: string;
|
|
370
|
+
/** Optional alias/fallback routing policy for model selection. */
|
|
371
|
+
routingPolicy?: RoutingPolicy;
|
|
343
372
|
/** Provider connection options. API key auto-resolved from env if omitted. */
|
|
344
373
|
providerOptions?: ProviderOptions;
|
|
345
374
|
/** System instructions prepended to every conversation. */
|
|
@@ -410,8 +439,11 @@ interface AgentConfig {
|
|
|
410
439
|
declare class Agent implements Disposable {
|
|
411
440
|
private readonly providerHandle;
|
|
412
441
|
private readonly _name;
|
|
442
|
+
private readonly _requestedProvider;
|
|
443
|
+
private readonly _requestedModel;
|
|
413
444
|
private readonly _provider;
|
|
414
445
|
private readonly _model;
|
|
446
|
+
private readonly _routingPolicy;
|
|
415
447
|
private readonly _providerOptions;
|
|
416
448
|
private readonly _instructions;
|
|
417
449
|
private _tools;
|
|
@@ -559,6 +591,13 @@ declare class Agent implements Disposable {
|
|
|
559
591
|
* @returns A new {@link Agent} configured with the selected model.
|
|
560
592
|
*/
|
|
561
593
|
withModel(model: string): Agent;
|
|
594
|
+
/**
|
|
595
|
+
* Clone this agent and resolve a routing decision using runtime context.
|
|
596
|
+
*
|
|
597
|
+
* @param context - Runtime routing context (availability, budget, rate).
|
|
598
|
+
* @returns A new {@link Agent} routed according to current policy + context.
|
|
599
|
+
*/
|
|
600
|
+
withRoutingContext(context: ResolveRoutingTargetOptions): Agent;
|
|
562
601
|
/**
|
|
563
602
|
* Attach a middleware chain (logging, caching, rate limiting). Chainable.
|
|
564
603
|
*
|
|
@@ -846,4 +885,4 @@ declare class Agent implements Disposable {
|
|
|
846
885
|
*/
|
|
847
886
|
declare function gauss(prompt: string, config?: Omit<AgentConfig, "name">): Promise<string>;
|
|
848
887
|
|
|
849
|
-
export { type AgentConfig as A, McpClient as M, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type McpClientConfig as c, type McpToolDef as d, type McpToolResult as e,
|
|
888
|
+
export { type AgentConfig as A, McpClient as M, type ResolveRoutingTargetOptions as R, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type McpClientConfig as c, type McpToolDef as d, type McpToolResult as e, type ResolvedRoutingTarget as f, type RoutingCandidate as g, type RoutingPolicy as h, createToolExecutor as i, enforceRoutingCostLimit as j, enforceRoutingRateLimit as k, gauss as l, isTypedTool as m, resolveRoutingTarget as n, resolveFallbackProvider as r, tool as t };
|
|
@@ -1,6 +1,33 @@
|
|
|
1
|
-
import { H as Handle, T as ToolDef,
|
|
2
|
-
import { M as MiddlewareChain, G as GuardrailChain } from './guardrail-
|
|
3
|
-
import { M as Memory } from './memory-
|
|
1
|
+
import { a as ProviderType, H as Handle, T as ToolDef, b as Message, A as AgentOptions, c as ToolExecutor, d as AgentResult, D as Disposable, e as ProviderOptions, C as CodeExecutionOptions, f as ProviderCapabilities, S as StreamCallback } from './types-Dybn1DM6.js';
|
|
2
|
+
import { M as MiddlewareChain, G as GuardrailChain } from './guardrail-vCEyPx6e.js';
|
|
3
|
+
import { M as Memory } from './memory-Xr9Rri48.js';
|
|
4
|
+
|
|
5
|
+
interface RoutingCandidate {
|
|
6
|
+
provider: ProviderType;
|
|
7
|
+
model: string;
|
|
8
|
+
priority?: number;
|
|
9
|
+
maxCostUsd?: number;
|
|
10
|
+
}
|
|
11
|
+
interface RoutingPolicy {
|
|
12
|
+
aliases?: Record<string, RoutingCandidate[]>;
|
|
13
|
+
fallbackOrder?: ProviderType[];
|
|
14
|
+
maxTotalCostUsd?: number;
|
|
15
|
+
maxRequestsPerMinute?: number;
|
|
16
|
+
}
|
|
17
|
+
interface ResolvedRoutingTarget {
|
|
18
|
+
provider: ProviderType;
|
|
19
|
+
model: string;
|
|
20
|
+
selectedBy: "direct" | `alias:${string}` | `fallback:${ProviderType}`;
|
|
21
|
+
}
|
|
22
|
+
interface ResolveRoutingTargetOptions {
|
|
23
|
+
availableProviders?: ProviderType[];
|
|
24
|
+
estimatedCostUsd?: number;
|
|
25
|
+
currentRequestsPerMinute?: number;
|
|
26
|
+
}
|
|
27
|
+
declare function enforceRoutingCostLimit(policy: RoutingPolicy | undefined, costUsd: number): void;
|
|
28
|
+
declare function enforceRoutingRateLimit(policy: RoutingPolicy | undefined, requestsPerMinute: number): void;
|
|
29
|
+
declare function resolveFallbackProvider(policy: RoutingPolicy | undefined, availableProviders: ProviderType[]): ProviderType | null;
|
|
30
|
+
declare function resolveRoutingTarget(policy: RoutingPolicy | undefined, provider: ProviderType, model: string, options?: ResolveRoutingTargetOptions): ResolvedRoutingTarget;
|
|
4
31
|
|
|
5
32
|
/**
|
|
6
33
|
* A single event emitted during agent streaming.
|
|
@@ -340,6 +367,8 @@ interface AgentConfig {
|
|
|
340
367
|
provider?: ProviderType;
|
|
341
368
|
/** Model identifier (e.g. `"gpt-4o"`, `"claude-sonnet-4-20250514"`). Auto-selected if omitted. */
|
|
342
369
|
model?: string;
|
|
370
|
+
/** Optional alias/fallback routing policy for model selection. */
|
|
371
|
+
routingPolicy?: RoutingPolicy;
|
|
343
372
|
/** Provider connection options. API key auto-resolved from env if omitted. */
|
|
344
373
|
providerOptions?: ProviderOptions;
|
|
345
374
|
/** System instructions prepended to every conversation. */
|
|
@@ -410,8 +439,11 @@ interface AgentConfig {
|
|
|
410
439
|
declare class Agent implements Disposable {
|
|
411
440
|
private readonly providerHandle;
|
|
412
441
|
private readonly _name;
|
|
442
|
+
private readonly _requestedProvider;
|
|
443
|
+
private readonly _requestedModel;
|
|
413
444
|
private readonly _provider;
|
|
414
445
|
private readonly _model;
|
|
446
|
+
private readonly _routingPolicy;
|
|
415
447
|
private readonly _providerOptions;
|
|
416
448
|
private readonly _instructions;
|
|
417
449
|
private _tools;
|
|
@@ -559,6 +591,13 @@ declare class Agent implements Disposable {
|
|
|
559
591
|
* @returns A new {@link Agent} configured with the selected model.
|
|
560
592
|
*/
|
|
561
593
|
withModel(model: string): Agent;
|
|
594
|
+
/**
|
|
595
|
+
* Clone this agent and resolve a routing decision using runtime context.
|
|
596
|
+
*
|
|
597
|
+
* @param context - Runtime routing context (availability, budget, rate).
|
|
598
|
+
* @returns A new {@link Agent} routed according to current policy + context.
|
|
599
|
+
*/
|
|
600
|
+
withRoutingContext(context: ResolveRoutingTargetOptions): Agent;
|
|
562
601
|
/**
|
|
563
602
|
* Attach a middleware chain (logging, caching, rate limiting). Chainable.
|
|
564
603
|
*
|
|
@@ -846,4 +885,4 @@ declare class Agent implements Disposable {
|
|
|
846
885
|
*/
|
|
847
886
|
declare function gauss(prompt: string, config?: Omit<AgentConfig, "name">): Promise<string>;
|
|
848
887
|
|
|
849
|
-
export { type AgentConfig as A, McpClient as M, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type McpClientConfig as c, type McpToolDef as d, type McpToolResult as e,
|
|
888
|
+
export { type AgentConfig as A, McpClient as M, type ResolveRoutingTargetOptions as R, type StreamEvent as S, type TypedToolDef as T, Agent as a, AgentStream as b, type McpClientConfig as c, type McpToolDef as d, type McpToolResult as e, type ResolvedRoutingTarget as f, type RoutingCandidate as g, type RoutingPolicy as h, createToolExecutor as i, enforceRoutingCostLimit as j, enforceRoutingRateLimit as k, gauss as l, isTypedTool as m, resolveRoutingTarget as n, resolveFallbackProvider as r, tool as t };
|
package/dist/agent.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var T=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var L=(r,e)=>{for(var t in e)T(r,t,{get:e[t],enumerable:!0})},H=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of G(e))!U.call(r,o)&&o!==t&&T(r,o,{get:()=>e[o],enumerable:!(n=K(e,o))||n.enumerable});return r};var Y=r=>H(T({},"__esModule",{value:!0}),r);var re={};L(re,{Agent:()=>c,AgentStream:()=>m,availableRuntimes:()=>S,batch:()=>M,executeCode:()=>D,gauss:()=>k,generateImage:()=>N,version:()=>R.version});module.exports=Y(re);var l=require("gauss-napi");var _=class extends Error{code;constructor(e,t){super(t),this.name="GaussError",this.code=e}},y=class extends _{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 E="gpt-5.2";var j="claude-sonnet-4-20250514";var q="gemini-2.5-flash";var F="openai/gpt-5.2",$="deepseek-chat";var B="meta-llama/Llama-3.3-70B-Instruct-Turbo",J="accounts/fireworks/models/llama-v3p1-70b-instruct",X="mistral-large-latest",W="sonar-pro",V="grok-3-beta",b={openai:E,anthropic:j,google:q,openrouter:F,deepseek:$,groq:"llama-3.3-70b-versatile",ollama:"llama3.2",together:B,fireworks:J,mistral:X,perplexity:W,xai:V};var z={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 f(r){let e=z[r]??"";return e?(typeof process<"u"?process.env[e]:"")??"":""}function v(){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:b[t]}}function Q(r,e){if(r?.maxTotalCostUsd!==void 0&&e>r.maxTotalCostUsd)throw new Error(`routing policy rejected cost ${e}`)}function Z(r,e){if(r?.maxRequestsPerMinute!==void 0&&e>r.maxRequestsPerMinute)throw new Error(`routing policy rejected rate ${e}`)}function ee(r,e){let t=r?.fallbackOrder;if(!t||t.length===0||e.length===0)return null;let n=new Set(e);for(let o of t)if(n.has(o))return o;return null}function P(r,e,t,n={}){n.estimatedCostUsd!==void 0&&Q(r,n.estimatedCostUsd),n.currentRequestsPerMinute!==void 0&&Z(r,n.currentRequestsPerMinute);let o=r?.aliases?.[t];if(o&&o.length>0){let s=[...o].sort((g,h)=>(h.priority??0)-(g.priority??0)),a=n.availableProviders;if(!a||a.length===0)return{provider:s[0].provider,model:s[0].model,selectedBy:`alias:${t}`};let d=new Set(a),u=s.find(g=>d.has(g.provider));if(u)return{provider:u.provider,model:u.model,selectedBy:`alias:${t}`}}let i=ee(r,n.availableProviders??[]);return i&&i!==e?{provider:i,model:t,selectedBy:`fallback:${i}`}:{provider:e,model:t,selectedBy:"direct"}}var O=require("gauss-napi");function te(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 m=class{constructor(e,t,n,o,i,s){this.agentName=e;this.providerHandle=t;this.tools=n;this.messages=o;this.options=i;this.toolExecutor=s}_result;get result(){return this._result}async*[Symbol.asyncIterator](){let e=[],t,n=!1,o=s=>{try{e.push(JSON.parse(s))}catch{e.push({type:"raw",text:s})}t?.()},i=(0,O.agent_stream_with_tool_executor)(this.agentName,this.providerHandle,this.tools,this.messages,this.options,o,this.toolExecutor).then(s=>{this._result=te(s),n=!0,t?.()});for(;!n||e.length>0;)e.length>0?yield e.shift():n||await new Promise(s=>{t=s});await i}};function w(r){return{name:r.name,description:r.description,parameters:r.parameters,execute:r.execute}}function A(r){return typeof r.execute=="function"}function C(r,e){let t=new Map(r.map(n=>[n.name,n]));return async n=>{let o;try{o=JSON.parse(n)}catch{return JSON.stringify({error:"Invalid tool call JSON"})}let i=o.tool??o.name??"",s=t.get(i);if(!s)return e?e(n):JSON.stringify({error:`Unknown tool: ${i}`});try{let a=o.args??o.arguments??{},d=await s.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 "${i}" failed: ${d}`})}}}function x(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 c=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=v(),n=e.provider??t?.provider??"openai",o=e.model??t?.model??E;this._requestedProvider=n,this._requestedModel=o,this._routingPolicy=e.routingPolicy;let i=P(this._routingPolicy,n,o);this._provider=i.provider,this._model=i.model,this._name=e.name??"agent",this._instructions=e.instructions??"";let s=e.providerOptions?.apiKey??f(this._provider);this._providerOptions={apiKey:s,...e.providerOptions},this.providerHandle=(0,l.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,l.get_provider_capabilities)(this.providerHandle)}addTool(e){return this._tools.push(e),this}addTools(e){return this._tools.push(...e),this}withTool(e,t,n,o){return this._tools.push(w({name:e,description:t,parameters:o??{},execute:n})),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=P(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 s=await this._memory.recall(this._sessionId?{sessionId:this._sessionId}:void 0);s.length>0&&(t=[{role:"system",content:`Previous context:
|
|
2
2
|
${s.map(d=>d.content).join(`
|
|
3
|
-
`)}`},...t])}let{toolDefs:
|
|
4
|
-
`);await this._memory.store({id:`${Date.now()}-user`,content:s,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0}),await this._memory.store({id:`${Date.now()}-assistant`,content:i.text,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0})}return i}async runWithTools(e,t){this.assertNotDisposed(),await this.ensureMcpTools();let
|
|
3
|
+
`)}`},...t])}let{toolDefs:n,executor:o}=this.resolveToolsAndExecutor(),i;if(o?i=x(await(0,l.agent_run_with_tool_executor)(this._name,this.providerHandle,n,t,this._options,o)):i=x(await(0,l.agent_run)(this._name,this.providerHandle,n,t,this._options)),this._memory){let s=typeof e=="string"?e:e.map(a=>a.content).join(`
|
|
4
|
+
`);await this._memory.store({id:`${Date.now()}-user`,content:s,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0}),await this._memory.store({id:`${Date.now()}-assistant`,content:i.text,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0})}return i}async runWithTools(e,t){this.assertNotDisposed(),await this.ensureMcpTools();let n=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:o,executor:i}=this.resolveToolsAndExecutor(),s=async a=>{if(i){let d=await i(a);if(!JSON.parse(d).error?.startsWith("Unknown tool:"))return d}return t(a)};return x(await(0,l.agent_run_with_tool_executor)(this._name,this.providerHandle,o,n,this._options,s))}async stream(e,t,n){this.assertNotDisposed(),await this.ensureMcpTools();let o=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:i,executor:s}=this.resolveToolsAndExecutor(),a=n??s??I;return x(await(0,l.agent_stream_with_tool_executor)(this._name,this.providerHandle,i,o,this._options,t,a))}streamIter(e,t){this.assertNotDisposed();let n=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:o,executor:i}=this.resolveToolsAndExecutor(),s=t??i??I;return new m(this._name,this.providerHandle,o,n,this._options,s)}async streamText(e,t,n){this.assertNotDisposed();let o=this.streamIter(e,n),i="";for await(let s of o){if(s.type!=="text_delta")continue;let a=typeof s.text=="string"?s.text:typeof s.delta=="string"?s.delta:"";a&&(i+=a,t?.(a))}return o.result?.text??i}async generate(e,t){this.assertNotDisposed();let n=typeof e=="string"?[{role:"user",content:e}]:e;return(0,l.generate)(this.providerHandle,n,t?.temperature,t?.maxTokens)}async generateWithTools(e,t,n){this.assertNotDisposed();let o=typeof e=="string"?[{role:"user",content:e}]:e;return(0,l.generate_with_tools)(this.providerHandle,o,t,n?.temperature,n?.maxTokens)}destroy(){if(!this.disposed){this.disposed=!0;for(let e of this._mcpClients)try{e.close()}catch{}try{(0,l.destroy_provider)(this.providerHandle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new y("Agent",this._name)}resolveToolsAndExecutor(){let e=this._tools.filter(A),t=this._tools.map(o=>({name:o.name,description:o.description,parameters:o.parameters})),n=e.length>0?C(e):null;return{toolDefs:t,executor:n}}async ensureMcpTools(){if(!(this._mcpToolsLoaded||this._mcpClients.length===0)){for(let e of this._mcpClients){let{tools:t,executor:n}=await e.getToolsWithExecutor();for(let o of t){let i={...o,execute:async s=>{let a=JSON.stringify({tool:o.name,args:s}),d=await n(a);return JSON.parse(d)}};this._tools.push(i)}}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}}},I=async()=>"{}";async function k(r,e){let t=new c({name:"gauss",...e});try{return(await t.run(r)).text}finally{t.destroy()}}async function M(r,e){let{concurrency:t=5,...n}=e??{},o=r.map(s=>({input:s})),i=new c({name:"batch",...n});try{let s=[...o.entries()],a=Array.from({length:Math.min(t,s.length)},async()=>{for(;s.length>0;){let d=s.shift();if(!d)break;let[u,g]=d;try{o[u].result=await i.run(g.input)}catch(h){o[u].error=h instanceof Error?h:new Error(String(h))}}});await Promise.all(a)}finally{i.destroy()}return o}var p=require("gauss-napi");var R=require("gauss-napi");async function D(r,e,t){return(0,p.execute_code)(r,e,t?.timeoutSecs,t?.workingDir,t?.sandbox)}async function S(){return(0,p.available_runtimes)()}async function N(r,e={}){let t=v(),n=e.provider??t?.provider??"openai",o=e.model??t?.model??"dall-e-3",i=e.providerOptions?.apiKey??f(n),s=(0,p.create_provider)(n,o,{apiKey:i,...e.providerOptions});try{return await(0,p.generate_image)(s,r,e.model,e.size,e.quality,e.style,e.aspectRatio,e.n,e.responseFormat)}finally{(0,p.destroy_provider)(s)}}0&&(module.exports={Agent,AgentStream,availableRuntimes,batch,executeCode,gauss,generateImage,version});
|
|
5
5
|
//# sourceMappingURL=agent.cjs.map
|