gauss-ts 2.0.18 → 2.0.19

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 CHANGED
@@ -229,6 +229,12 @@ console.log(explanation.decision?.selectedBy); // "direct" | "alias:..." | "fall
229
229
  // npm run policy:gate -- ./scenarios.json ./policy.json
230
230
  // Optional rollout guardrails (diff + thresholds):
231
231
  // npm run policy:gate -- ./scenarios.json ./candidate-policy.json ./baseline-policy.json ./guardrails.json
232
+ // Policy lifecycle APIs:
233
+ // GET /api/ops/policy/lifecycle/draft?policy=<json>
234
+ // GET /api/ops/policy/lifecycle/validate?version=policy-v1&scenarios=<json>
235
+ // GET /api/ops/policy/lifecycle/approve?version=policy-v1
236
+ // GET /api/ops/policy/lifecycle/promote?version=policy-v1
237
+ // GET /api/ops/policy/lifecycle/versions
232
238
  ```
233
239
 
234
240
  ### Unified Control Plane (M51 foundation)
package/dist/index.cjs CHANGED
@@ -1,28 +1,28 @@
1
- "use strict";var dr=Object.create;var ee=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var hr=(n,e)=>{for(var t in e)ee(n,t,{get:e[t],enumerable:!0})},ot=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of cr(e))!mr.call(n,s)&&s!==t&&ee(n,s,{get:()=>e[s],enumerable:!(r=pr(e,s))||r.enumerable});return n};var gr=(n,e,t)=>(t=n!=null?dr(ur(n)):{},ot(e||!n||!n.__esModule?ee(t,"default",{value:n,enumerable:!0}):t,n)),yr=n=>ot(ee({},"__esModule",{value:!0}),n);var wr={};hr(wr,{A2aClient:()=>Me,ANTHROPIC_DEFAULT:()=>Ue,ANTHROPIC_FAST:()=>dt,ANTHROPIC_PREMIUM:()=>pt,Agent:()=>f,AgentSpec:()=>Y,AgentStream:()=>B,ApprovalManager:()=>be,CheckpointStore:()=>ke,ControlPlane:()=>Se,DEEPSEEK_DEFAULT:()=>Je,DEEPSEEK_REASONING:()=>mt,DisposedError:()=>x,EvalRunner:()=>_e,FIREWORKS_DEFAULT:()=>qe,GOOGLE_DEFAULT:()=>Ge,GOOGLE_IMAGE:()=>ut,GOOGLE_PREMIUM:()=>ct,GaussError:()=>N,Graph:()=>me,GuardrailChain:()=>Pe,MISTRAL_DEFAULT:()=>Fe,McpClient:()=>Te,McpServer:()=>xe,Memory:()=>ce,MiddlewareChain:()=>fe,Network:()=>ye,OPENAI_DEFAULT:()=>L,OPENAI_FAST:()=>it,OPENAI_IMAGE:()=>lt,OPENAI_REASONING:()=>at,OPENROUTER_DEFAULT:()=>Le,PERPLEXITY_DEFAULT:()=>Be,PROVIDER_DEFAULTS:()=>V,PluginRegistry:()=>ve,ProviderError:()=>te,SkillSpec:()=>Oe,TOGETHER_DEFAULT:()=>$e,Team:()=>ge,Telemetry:()=>we,TextSplitter:()=>j,ToolExecutionError:()=>re,ToolRegistry:()=>je,ToolValidator:()=>De,ValidationError:()=>m,VectorStore:()=>ue,Workflow:()=>he,XAI_DEFAULT:()=>ze,agentMessage:()=>ar,applyGovernancePack:()=>gt,availableRuntimes:()=>_t,batch:()=>bt,classify:()=>Zt,clearPricing:()=>Mt,codeReview:()=>Qt,compose:()=>ir,countMessageTokens:()=>Ht,countTokens:()=>It,countTokensForModel:()=>Nt,createCircuitBreaker:()=>Jt,createFallbackProvider:()=>Lt,createResilientAgent:()=>$t,createResilientProvider:()=>et,createToolExecutor:()=>de,defaultModel:()=>ht,detectProvider:()=>$,discoverAgents:()=>tr,enforceRoutingCostLimit:()=>ne,enforceRoutingGovernance:()=>q,enforceRoutingRateLimit:()=>se,enforceRoutingTimeWindow:()=>oe,enterprisePreset:()=>Ve,enterpriseRun:()=>Pt,estimateCost:()=>Re,evaluatePolicyDiff:()=>ie,evaluatePolicyGate:()=>yt,evaluatePolicyRolloutGuardrails:()=>ft,executeCode:()=>kt,explainRoutingTarget:()=>H,extract:()=>er,extractText:()=>He,filterAsync:()=>nr,gauss:()=>Tt,generateImage:()=>wt,getContextWindowSize:()=>jt,getPricing:()=>Ot,governancePolicyPack:()=>Ke,isTypedTool:()=>le,loadJson:()=>Et,loadMarkdown:()=>St,loadText:()=>Ze,mapAsync:()=>rt,parseAgentConfig:()=>qt,parsePartialJson:()=>zt,pipe:()=>rr,reduceAsync:()=>sr,resolveApiKey:()=>J,resolveEnv:()=>Ft,resolveFallbackProvider:()=>We,resolveRoutingTarget:()=>F,retryable:()=>Kt,setPricing:()=>Dt,splitText:()=>Rt,structured:()=>Wt,summarize:()=>Yt,tapAsync:()=>or,taskText:()=>Ie,template:()=>G,textMessage:()=>Ne,tool:()=>ae,translate:()=>Xt,userMessage:()=>st,version:()=>Ye.version,withRetry:()=>tt});module.exports=yr(wr);var N=class extends Error{code;constructor(e,t){super(t),this.name="GaussError",this.code=e}},x=class extends N{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}},te=class extends N{provider;constructor(e,t){super("PROVIDER_ERROR",`[${e}] ${t}`),this.name="ProviderError",this.provider=e}},re=class extends N{toolName;cause;constructor(e,t,r){super("TOOL_EXECUTION_ERROR",`Tool "${e}" failed: ${t}`),this.name="ToolExecutionError",this.toolName=e,this.cause=r}},m=class extends N{field;constructor(e,t){super("VALIDATION_ERROR",t?`Invalid "${t}": ${e}`:e),this.name="ValidationError",this.field=t}};var L="gpt-5.2",it="gpt-4.1",at="o4-mini",lt="gpt-image-1",Ue="claude-sonnet-4-20250514",dt="claude-haiku-4-20250414",pt="claude-opus-4-20250414",Ge="gemini-2.5-flash",ct="gemini-2.5-pro",ut="gemini-2.0-flash",Le="openai/gpt-5.2",Je="deepseek-chat",mt="deepseek-reasoner",$e="meta-llama/Llama-3.3-70B-Instruct-Turbo",qe="accounts/fireworks/models/llama-v3p1-70b-instruct",Fe="mistral-large-latest",Be="sonar-pro",ze="grok-3-beta",V={openai:L,anthropic:Ue,google:Ge,openrouter:Le,deepseek:Je,groq:"llama-3.3-70b-versatile",ollama:"llama3.2",together:$e,fireworks:qe,mistral:Fe,perplexity:Be,xai:ze};function ht(n){return V[n]??L}var fr={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 J(n){let e=fr[n]??"";return e?(typeof process<"u"?process.env[e]:"")??"":""}function $(){let n=[{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 n)if(typeof process<"u"&&process.env[e])return{provider:t,model:V[t]}}var h=require("gauss-napi");function Ke(n){switch(n){case"enterprise-strict":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"pci"}]};case"eu-residency":return{rules:[{type:"deny_provider",provider:"xai"},{type:"require_tag",tag:"eu"}]};case"cost-guarded":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"deepseek"},{type:"require_tag",tag:"cost-sensitive"}],maxTotalCostUsd:.15};case"ops-business-hours":return{rules:[{type:"require_tag",tag:"ops"}],allowedHoursUtc:Array.from({length:11},(e,t)=>t+8)};case"balanced-mix":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"balanced"}],providerWeights:{openai:60,anthropic:40}};case"rollout-canary":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"rollout"}],maxTotalCostUsd:.1,maxRequestsPerMinute:30,fallbackOrder:["openai","anthropic"],providerWeights:{openai:70,anthropic:30}};case"rollout-strict":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"rollout"},{type:"require_tag",tag:"approved"}],maxTotalCostUsd:.08,maxRequestsPerMinute:15,allowedHoursUtc:Array.from({length:9},(e,t)=>t+9),fallbackOrder:["openai","anthropic"]}}}function gt(n,e){let t=Ke(e),r=n?.governance?.rules??[],s=t.fallbackOrder?[...new Set([...n?.fallbackOrder??[],...t.fallbackOrder])]:n?.fallbackOrder,o=t.providerWeights?{...n?.providerWeights??{},...t.providerWeights}:n?.providerWeights;return{...n,maxTotalCostUsd:t.maxTotalCostUsd??n?.maxTotalCostUsd,maxRequestsPerMinute:t.maxRequestsPerMinute??n?.maxRequestsPerMinute,allowedHoursUtc:t.allowedHoursUtc??n?.allowedHoursUtc,fallbackOrder:s,providerWeights:o,governance:{rules:[...r,...t.rules]}}}function ne(n,e){if(n?.maxTotalCostUsd!==void 0&&e>n.maxTotalCostUsd)throw new Error(`routing policy rejected cost ${e}`)}function se(n,e){if(n?.maxRequestsPerMinute!==void 0&&e>n.maxRequestsPerMinute)throw new Error(`routing policy rejected rate ${e}`)}function oe(n,e){let t=n?.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 q(n,e,t){let r=n?.governance?.rules??[];if(r.length===0)return;let s=r.filter(o=>o.type==="allow_provider").map(o=>o.provider);if(s.length>0&&!s.includes(e))throw new Error(`routing policy governance rejected provider ${e}`);for(let o of r){if(o.type==="deny_provider"&&o.provider===e)throw new Error(`routing policy governance rejected provider ${e}`);if(o.type==="require_tag"&&t!==void 0&&!t.includes(o.tag))throw new Error(`routing policy governance missing tag ${o.tag}`)}}function We(n,e){let t=n?.fallbackOrder;if(!t||t.length===0||e.length===0)return null;let r=new Set(e);for(let s of t)if(r.has(s))return s;return null}function F(n,e,t,r={}){let s=r.governanceTags,o=r.currentHourUtc??new Date().getUTCHours();oe(n,o),r.estimatedCostUsd!==void 0&&ne(n,r.estimatedCostUsd),r.currentRequestsPerMinute!==void 0&&se(n,r.currentRequestsPerMinute);let i=d=>d.length===1?d[0]:[...d].sort((p,c)=>{let y=n?.providerWeights?.[c.provider]??0,u=n?.providerWeights?.[p.provider]??0;return y!==u?y-u:(c.priority??0)-(p.priority??0)})[0],a=n?.aliases?.[t];if(a&&a.length>0){let d=[...a].sort((u,Z)=>(Z.priority??0)-(u.priority??0)),p=r.availableProviders;if(!p||p.length===0){let u=i(d);return q(n,u.provider,s),{provider:u.provider,model:u.model,selectedBy:`alias:${t}`}}let c=new Set(p),y=d.filter(u=>c.has(u.provider));if(y.length>0){let u=i(y);return q(n,u.provider,s),{provider:u.provider,model:u.model,selectedBy:`alias:${t}`}}}let l=We(n,r.availableProviders??[]);return l&&l!==e?(q(n,l,s),{provider:l,model:t,selectedBy:`fallback:${l}`}):(q(n,e,s),{provider:e,model:t,selectedBy:"direct"})}function H(n,e,t,r={}){let s=[],o=r.currentHourUtc??new Date().getUTCHours(),i=(a,l)=>{let d=l instanceof Error?l.message:String(l);return s.push({check:a,status:"failed",detail:d}),{ok:!1,checks:s,error:d}};if(n?.allowedHoursUtc&&n.allowedHoursUtc.length>0)try{oe(n,o),s.push({check:"time_window",status:"passed",detail:`hour=${o}`})}catch(a){return i("time_window",a)}else s.push({check:"time_window",status:"skipped",detail:"not configured"});if(r.estimatedCostUsd!==void 0)try{ne(n,r.estimatedCostUsd),s.push({check:"cost_limit",status:"passed",detail:`cost=${r.estimatedCostUsd}`})}catch(a){return i("cost_limit",a)}else s.push({check:"cost_limit",status:"skipped",detail:"no estimate provided"});if(r.currentRequestsPerMinute!==void 0)try{se(n,r.currentRequestsPerMinute),s.push({check:"rate_limit",status:"passed",detail:`rpm=${r.currentRequestsPerMinute}`})}catch(a){return i("rate_limit",a)}else s.push({check:"rate_limit",status:"skipped",detail:"no rpm provided"});try{let a=F(n,e,t,r);return s.push({check:"governance",status:"passed",detail:"accepted"}),s.push({check:"selection",status:"passed",detail:a.selectedBy}),{ok:!0,decision:a,checks:s}}catch(a){let l=a instanceof Error?a.message:String(a);return l.includes("governance")?(s.push({check:"governance",status:"failed",detail:l}),s.push({check:"selection",status:"skipped",detail:"selection aborted"}),{ok:!1,checks:s,error:l}):i("selection",a)}}function yt(n,e){let t=e.map(o=>H(n,o.provider,o.model,o.options??{})),r=t.map((o,i)=>({result:o,index:i})).filter(o=>!o.result.ok).map(o=>o.index),s=r.length;return{total:t.length,passed:t.length-s,failed:s,failedIndexes:r,results:t}}function ie(n,e,t=void 0){let r=e.map((o,i)=>{let a=H(t,o.provider,o.model,o.options??{}),l=H(n,o.provider,o.model,o.options??{}),d=a.ok!==l.ok||a.decision?.provider!==l.decision?.provider||a.decision?.model!==l.decision?.model||a.decision?.selectedBy!==l.decision?.selectedBy||a.error!==l.error;return{index:i,input:{provider:o.provider,model:o.model},baseline:a,candidate:l,changed:d}}),s=r.filter(o=>o.baseline.ok&&!o.candidate.ok).length;return{total:r.length,baselinePassed:r.filter(o=>o.baseline.ok).length,candidatePassed:r.filter(o=>o.candidate.ok).length,changed:r.filter(o=>o.changed).length,regressions:s,results:r}}function ft(n,e={}){let t=[],r=e.maxChanged??n.total,s=e.maxRegressions??0,o=e.minCandidatePassRate??1,i=n.total===0?1:n.candidatePassed/n.total;t.push({check:"changed_budget",status:n.changed<=r?"passed":"failed",detail:`changed=${n.changed}, limit=${r}`}),t.push({check:"regression_budget",status:n.regressions<=s?"passed":"failed",detail:`regressions=${n.regressions}, limit=${s}`}),t.push({check:"candidate_pass_rate",status:i>=o?"passed":"failed",detail:`candidate_pass_rate=${i.toFixed(3)}, min=${o.toFixed(3)}`});let a=t.find(l=>l.status==="failed");return a?{ok:!1,checks:t,error:a.detail}:{ok:!0,checks:t}}var vt=require("gauss-napi");function vr(n){return{...n,citations:n.citations?.map(e=>({type:e.citationType??e.type,citedText:e.citedText,documentTitle:e.documentTitle,start:e.start,end:e.end}))}}var B=class{constructor(e,t,r,s,o,i){this.agentName=e;this.providerHandle=t;this.tools=r;this.messages=s;this.options=o;this.toolExecutor=i}_result;get result(){return this._result}async*[Symbol.asyncIterator](){let e=[],t,r=!1,s=i=>{try{e.push(JSON.parse(i))}catch{e.push({type:"raw",text:i})}t?.()},o=(0,vt.agent_stream_with_tool_executor)(this.agentName,this.providerHandle,this.tools,this.messages,this.options,s,this.toolExecutor).then(i=>{this._result=vr(i),r=!0,t?.()});for(;!r||e.length>0;)e.length>0?yield e.shift():r||await new Promise(i=>{t=i});await o}};function ae(n){return{name:n.name,description:n.description,parameters:n.parameters,execute:n.execute}}function le(n){return typeof n.execute=="function"}function de(n,e){let t=new Map(n.map(r=>[r.name,r]));return async r=>{let s;try{s=JSON.parse(r)}catch{return JSON.stringify({error:"Invalid tool call JSON"})}let o=s.tool??s.name??"",i=t.get(o);if(!i)return e?e(r):JSON.stringify({error:`Unknown tool: ${o}`});try{let a=s.args??s.arguments??{},l=await i.execute(a);return typeof l=="string"?l:JSON.stringify(l)}catch(a){let l=a instanceof Error?a.message:String(a);return JSON.stringify({error:`Tool "${o}" failed: ${l}`})}}}function pe(n){return{...n,citations:n.citations?.map(e=>({type:e.citationType??e.type??"unknown",citedText:e.citedText,documentTitle:e.documentTitle,start:e.start,end:e.end}))}}var f=class n{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=$(),r=e.provider??t?.provider??"openai",s=e.model??t?.model??L;this._requestedProvider=r,this._requestedModel=s,this._routingPolicy=e.routingPolicy;let o=F(this._routingPolicy,r,s);this._provider=o.provider,this._model=o.model,this._name=e.name??"agent",this._instructions=e.instructions??"";let i=e.providerOptions?.apiKey??J(this._provider);this._providerOptions={apiKey:i,...e.providerOptions},this.providerHandle=(0,h.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,l=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:l,grounding:e.grounding,nativeCodeExecution:e.nativeCodeExecution,responseModalities:e.responseModalities}}static fromEnv(e={}){return new n(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,h.get_provider_capabilities)(this.providerHandle)}addTool(e){return this._tools.push(e),this}addTools(e){return this._tools.push(...e),this}withTool(e,t,r,s){return this._tools.push(ae({name:e,description:t,parameters:s??{},execute:r})),this}setOptions(e){return this._options={...this._options,...e},this}withModel(e){return this.assertNotDisposed(),new n({...this.toConfig(),model:e})}withRoutingContext(e){this.assertNotDisposed();let t=F(this._routingPolicy,this._requestedProvider,this._requestedModel,e);return new n({...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:
1
+ "use strict";var pr=Object.create;var ee=Object.defineProperty;var dr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var hr=(s,e)=>{for(var t in e)ee(s,t,{get:e[t],enumerable:!0})},it=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of cr(e))!mr.call(s,n)&&n!==t&&ee(s,n,{get:()=>e[n],enumerable:!(r=dr(e,n))||r.enumerable});return s};var gr=(s,e,t)=>(t=s!=null?pr(ur(s)):{},it(e||!s||!s.__esModule?ee(t,"default",{value:s,enumerable:!0}):t,s)),yr=s=>it(ee({},"__esModule",{value:!0}),s);var wr={};hr(wr,{A2aClient:()=>Me,ANTHROPIC_DEFAULT:()=>Ue,ANTHROPIC_FAST:()=>dt,ANTHROPIC_PREMIUM:()=>ct,Agent:()=>f,AgentSpec:()=>Y,AgentStream:()=>B,ApprovalManager:()=>ke,CheckpointStore:()=>_e,ControlPlane:()=>Ee,DEEPSEEK_DEFAULT:()=>$e,DEEPSEEK_REASONING:()=>ht,DisposedError:()=>x,EvalRunner:()=>we,FIREWORKS_DEFAULT:()=>Fe,GOOGLE_DEFAULT:()=>Ge,GOOGLE_IMAGE:()=>mt,GOOGLE_PREMIUM:()=>ut,GaussError:()=>N,Graph:()=>he,GuardrailChain:()=>be,MISTRAL_DEFAULT:()=>Be,McpClient:()=>Te,McpServer:()=>Pe,Memory:()=>ue,MiddlewareChain:()=>ve,Network:()=>fe,OPENAI_DEFAULT:()=>G,OPENAI_FAST:()=>at,OPENAI_IMAGE:()=>pt,OPENAI_REASONING:()=>lt,OPENROUTER_DEFAULT:()=>Je,PERPLEXITY_DEFAULT:()=>Ve,PROVIDER_DEFAULTS:()=>W,PluginRegistry:()=>xe,ProviderError:()=>te,SkillSpec:()=>Ie,TOGETHER_DEFAULT:()=>qe,Team:()=>ye,Telemetry:()=>Ce,TextSplitter:()=>j,ToolExecutionError:()=>re,ToolRegistry:()=>Le,ToolValidator:()=>Oe,ValidationError:()=>u,VectorStore:()=>me,Workflow:()=>ge,XAI_DEFAULT:()=>ze,agentMessage:()=>ar,applyGovernancePack:()=>yt,availableRuntimes:()=>_t,batch:()=>bt,classify:()=>Zt,clearPricing:()=>It,codeReview:()=>Qt,compose:()=>ir,countMessageTokens:()=>Ht,countTokens:()=>Mt,countTokensForModel:()=>Nt,createCircuitBreaker:()=>Jt,createFallbackProvider:()=>Gt,createResilientAgent:()=>$t,createResilientProvider:()=>tt,createToolExecutor:()=>de,defaultModel:()=>gt,detectProvider:()=>$,discoverAgents:()=>tr,enforceRoutingCostLimit:()=>ne,enforceRoutingGovernance:()=>q,enforceRoutingRateLimit:()=>se,enforceRoutingTimeWindow:()=>oe,enterprisePreset:()=>Ye,enterpriseRun:()=>Tt,estimateCost:()=>Se,evaluatePolicyDiff:()=>ae,evaluatePolicyGate:()=>ie,evaluatePolicyRolloutGuardrails:()=>ft,executeCode:()=>kt,explainRoutingTarget:()=>H,extract:()=>er,extractText:()=>je,filterAsync:()=>nr,gauss:()=>Pt,generateImage:()=>wt,getContextWindowSize:()=>jt,getPricing:()=>Ot,governancePolicyPack:()=>Ke,isTypedTool:()=>pe,loadJson:()=>Et,loadMarkdown:()=>St,loadText:()=>et,mapAsync:()=>nt,parseAgentConfig:()=>qt,parsePartialJson:()=>Vt,pipe:()=>rr,reduceAsync:()=>sr,resolveApiKey:()=>J,resolveEnv:()=>Ft,resolveFallbackProvider:()=>We,resolveRoutingTarget:()=>F,retryable:()=>zt,setPricing:()=>Dt,splitText:()=>Rt,structured:()=>Kt,summarize:()=>Yt,tapAsync:()=>or,taskText:()=>Ne,template:()=>U,textMessage:()=>He,tool:()=>le,translate:()=>Xt,userMessage:()=>ot,version:()=>Xe.version,withRetry:()=>rt});module.exports=yr(wr);var N=class extends Error{code;constructor(e,t){super(t),this.name="GaussError",this.code=e}},x=class extends N{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}},te=class extends N{provider;constructor(e,t){super("PROVIDER_ERROR",`[${e}] ${t}`),this.name="ProviderError",this.provider=e}},re=class extends N{toolName;cause;constructor(e,t,r){super("TOOL_EXECUTION_ERROR",`Tool "${e}" failed: ${t}`),this.name="ToolExecutionError",this.toolName=e,this.cause=r}},u=class extends N{field;constructor(e,t){super("VALIDATION_ERROR",t?`Invalid "${t}": ${e}`:e),this.name="ValidationError",this.field=t}};var G="gpt-5.2",at="gpt-4.1",lt="o4-mini",pt="gpt-image-1",Ue="claude-sonnet-4-20250514",dt="claude-haiku-4-20250414",ct="claude-opus-4-20250414",Ge="gemini-2.5-flash",ut="gemini-2.5-pro",mt="gemini-2.0-flash",Je="openai/gpt-5.2",$e="deepseek-chat",ht="deepseek-reasoner",qe="meta-llama/Llama-3.3-70B-Instruct-Turbo",Fe="accounts/fireworks/models/llama-v3p1-70b-instruct",Be="mistral-large-latest",Ve="sonar-pro",ze="grok-3-beta",W={openai:G,anthropic:Ue,google:Ge,openrouter:Je,deepseek:$e,groq:"llama-3.3-70b-versatile",ollama:"llama3.2",together:qe,fireworks:Fe,mistral:Be,perplexity:Ve,xai:ze};function gt(s){return W[s]??G}var fr={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 J(s){let e=fr[s]??"";return e?(typeof process<"u"?process.env[e]:"")??"":""}function $(){let s=[{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 s)if(typeof process<"u"&&process.env[e])return{provider:t,model:W[t]}}var h=require("gauss-napi");function Ke(s){switch(s){case"enterprise-strict":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"pci"}]};case"eu-residency":return{rules:[{type:"deny_provider",provider:"xai"},{type:"require_tag",tag:"eu"}]};case"cost-guarded":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"deepseek"},{type:"require_tag",tag:"cost-sensitive"}],maxTotalCostUsd:.15};case"ops-business-hours":return{rules:[{type:"require_tag",tag:"ops"}],allowedHoursUtc:Array.from({length:11},(e,t)=>t+8)};case"balanced-mix":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"balanced"}],providerWeights:{openai:60,anthropic:40}};case"rollout-canary":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"rollout"}],maxTotalCostUsd:.1,maxRequestsPerMinute:30,fallbackOrder:["openai","anthropic"],providerWeights:{openai:70,anthropic:30}};case"rollout-strict":return{rules:[{type:"allow_provider",provider:"openai"},{type:"allow_provider",provider:"anthropic"},{type:"require_tag",tag:"rollout"},{type:"require_tag",tag:"approved"}],maxTotalCostUsd:.08,maxRequestsPerMinute:15,allowedHoursUtc:Array.from({length:9},(e,t)=>t+9),fallbackOrder:["openai","anthropic"]}}}function yt(s,e){let t=Ke(e),r=s?.governance?.rules??[],n=t.fallbackOrder?[...new Set([...s?.fallbackOrder??[],...t.fallbackOrder])]:s?.fallbackOrder,o=t.providerWeights?{...s?.providerWeights??{},...t.providerWeights}:s?.providerWeights;return{...s,maxTotalCostUsd:t.maxTotalCostUsd??s?.maxTotalCostUsd,maxRequestsPerMinute:t.maxRequestsPerMinute??s?.maxRequestsPerMinute,allowedHoursUtc:t.allowedHoursUtc??s?.allowedHoursUtc,fallbackOrder:n,providerWeights:o,governance:{rules:[...r,...t.rules]}}}function ne(s,e){if(s?.maxTotalCostUsd!==void 0&&e>s.maxTotalCostUsd)throw new Error(`routing policy rejected cost ${e}`)}function se(s,e){if(s?.maxRequestsPerMinute!==void 0&&e>s.maxRequestsPerMinute)throw new Error(`routing policy rejected rate ${e}`)}function oe(s,e){let t=s?.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 q(s,e,t){let r=s?.governance?.rules??[];if(r.length===0)return;let n=r.filter(o=>o.type==="allow_provider").map(o=>o.provider);if(n.length>0&&!n.includes(e))throw new Error(`routing policy governance rejected provider ${e}`);for(let o of r){if(o.type==="deny_provider"&&o.provider===e)throw new Error(`routing policy governance rejected provider ${e}`);if(o.type==="require_tag"&&t!==void 0&&!t.includes(o.tag))throw new Error(`routing policy governance missing tag ${o.tag}`)}}function We(s,e){let t=s?.fallbackOrder;if(!t||t.length===0||e.length===0)return null;let r=new Set(e);for(let n of t)if(r.has(n))return n;return null}function F(s,e,t,r={}){let n=r.governanceTags,o=r.currentHourUtc??new Date().getUTCHours();oe(s,o),r.estimatedCostUsd!==void 0&&ne(s,r.estimatedCostUsd),r.currentRequestsPerMinute!==void 0&&se(s,r.currentRequestsPerMinute);let i=p=>p.length===1?p[0]:[...p].sort((d,c)=>{let y=s?.providerWeights?.[c.provider]??0,m=s?.providerWeights?.[d.provider]??0;return y!==m?y-m:(c.priority??0)-(d.priority??0)})[0],a=s?.aliases?.[t];if(a&&a.length>0){let p=[...a].sort((m,Z)=>(Z.priority??0)-(m.priority??0)),d=r.availableProviders;if(!d||d.length===0){let m=i(p);return q(s,m.provider,n),{provider:m.provider,model:m.model,selectedBy:`alias:${t}`}}let c=new Set(d),y=p.filter(m=>c.has(m.provider));if(y.length>0){let m=i(y);return q(s,m.provider,n),{provider:m.provider,model:m.model,selectedBy:`alias:${t}`}}}let l=We(s,r.availableProviders??[]);return l&&l!==e?(q(s,l,n),{provider:l,model:t,selectedBy:`fallback:${l}`}):(q(s,e,n),{provider:e,model:t,selectedBy:"direct"})}function H(s,e,t,r={}){let n=[],o=r.currentHourUtc??new Date().getUTCHours(),i=(a,l)=>{let p=l instanceof Error?l.message:String(l);return n.push({check:a,status:"failed",detail:p}),{ok:!1,checks:n,error:p}};if(s?.allowedHoursUtc&&s.allowedHoursUtc.length>0)try{oe(s,o),n.push({check:"time_window",status:"passed",detail:`hour=${o}`})}catch(a){return i("time_window",a)}else n.push({check:"time_window",status:"skipped",detail:"not configured"});if(r.estimatedCostUsd!==void 0)try{ne(s,r.estimatedCostUsd),n.push({check:"cost_limit",status:"passed",detail:`cost=${r.estimatedCostUsd}`})}catch(a){return i("cost_limit",a)}else n.push({check:"cost_limit",status:"skipped",detail:"no estimate provided"});if(r.currentRequestsPerMinute!==void 0)try{se(s,r.currentRequestsPerMinute),n.push({check:"rate_limit",status:"passed",detail:`rpm=${r.currentRequestsPerMinute}`})}catch(a){return i("rate_limit",a)}else n.push({check:"rate_limit",status:"skipped",detail:"no rpm provided"});try{let a=F(s,e,t,r);return n.push({check:"governance",status:"passed",detail:"accepted"}),n.push({check:"selection",status:"passed",detail:a.selectedBy}),{ok:!0,decision:a,checks:n}}catch(a){let l=a instanceof Error?a.message:String(a);return l.includes("governance")?(n.push({check:"governance",status:"failed",detail:l}),n.push({check:"selection",status:"skipped",detail:"selection aborted"}),{ok:!1,checks:n,error:l}):i("selection",a)}}function ie(s,e){let t=e.map(o=>H(s,o.provider,o.model,o.options??{})),r=t.map((o,i)=>({result:o,index:i})).filter(o=>!o.result.ok).map(o=>o.index),n=r.length;return{total:t.length,passed:t.length-n,failed:n,failedIndexes:r,results:t}}function ae(s,e,t=void 0){let r=e.map((o,i)=>{let a=H(t,o.provider,o.model,o.options??{}),l=H(s,o.provider,o.model,o.options??{}),p=a.ok!==l.ok||a.decision?.provider!==l.decision?.provider||a.decision?.model!==l.decision?.model||a.decision?.selectedBy!==l.decision?.selectedBy||a.error!==l.error;return{index:i,input:{provider:o.provider,model:o.model},baseline:a,candidate:l,changed:p}}),n=r.filter(o=>o.baseline.ok&&!o.candidate.ok).length;return{total:r.length,baselinePassed:r.filter(o=>o.baseline.ok).length,candidatePassed:r.filter(o=>o.candidate.ok).length,changed:r.filter(o=>o.changed).length,regressions:n,results:r}}function ft(s,e={}){let t=[],r=e.maxChanged??s.total,n=e.maxRegressions??0,o=e.minCandidatePassRate??1,i=s.total===0?1:s.candidatePassed/s.total;t.push({check:"changed_budget",status:s.changed<=r?"passed":"failed",detail:`changed=${s.changed}, limit=${r}`}),t.push({check:"regression_budget",status:s.regressions<=n?"passed":"failed",detail:`regressions=${s.regressions}, limit=${n}`}),t.push({check:"candidate_pass_rate",status:i>=o?"passed":"failed",detail:`candidate_pass_rate=${i.toFixed(3)}, min=${o.toFixed(3)}`});let a=t.find(l=>l.status==="failed");return a?{ok:!1,checks:t,error:a.detail}:{ok:!0,checks:t}}var vt=require("gauss-napi");function vr(s){return{...s,citations:s.citations?.map(e=>({type:e.citationType??e.type,citedText:e.citedText,documentTitle:e.documentTitle,start:e.start,end:e.end}))}}var B=class{constructor(e,t,r,n,o,i){this.agentName=e;this.providerHandle=t;this.tools=r;this.messages=n;this.options=o;this.toolExecutor=i}_result;get result(){return this._result}async*[Symbol.asyncIterator](){let e=[],t,r=!1,n=i=>{try{e.push(JSON.parse(i))}catch{e.push({type:"raw",text:i})}t?.()},o=(0,vt.agent_stream_with_tool_executor)(this.agentName,this.providerHandle,this.tools,this.messages,this.options,n,this.toolExecutor).then(i=>{this._result=vr(i),r=!0,t?.()});for(;!r||e.length>0;)e.length>0?yield e.shift():r||await new Promise(i=>{t=i});await o}};function le(s){return{name:s.name,description:s.description,parameters:s.parameters,execute:s.execute}}function pe(s){return typeof s.execute=="function"}function de(s,e){let t=new Map(s.map(r=>[r.name,r]));return async r=>{let n;try{n=JSON.parse(r)}catch{return JSON.stringify({error:"Invalid tool call JSON"})}let o=n.tool??n.name??"",i=t.get(o);if(!i)return e?e(r):JSON.stringify({error:`Unknown tool: ${o}`});try{let a=n.args??n.arguments??{},l=await i.execute(a);return typeof l=="string"?l:JSON.stringify(l)}catch(a){let l=a instanceof Error?a.message:String(a);return JSON.stringify({error:`Tool "${o}" failed: ${l}`})}}}function ce(s){return{...s,citations:s.citations?.map(e=>({type:e.citationType??e.type??"unknown",citedText:e.citedText,documentTitle:e.documentTitle,start:e.start,end:e.end}))}}var f=class s{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=$(),r=e.provider??t?.provider??"openai",n=e.model??t?.model??G;this._requestedProvider=r,this._requestedModel=n,this._routingPolicy=e.routingPolicy;let o=F(this._routingPolicy,r,n);this._provider=o.provider,this._model=o.model,this._name=e.name??"agent",this._instructions=e.instructions??"";let i=e.providerOptions?.apiKey??J(this._provider);this._providerOptions={apiKey:i,...e.providerOptions},this.providerHandle=(0,h.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,l=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:l,grounding:e.grounding,nativeCodeExecution:e.nativeCodeExecution,responseModalities:e.responseModalities}}static fromEnv(e={}){return new s(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,h.get_provider_capabilities)(this.providerHandle)}addTool(e){return this._tools.push(e),this}addTools(e){return this._tools.push(...e),this}withTool(e,t,r,n){return this._tools.push(le({name:e,description:t,parameters:n??{},execute:r})),this}setOptions(e){return this._options={...this._options,...e},this}withModel(e){return this.assertNotDisposed(),new s({...this.toConfig(),model:e})}withRoutingContext(e){this.assertNotDisposed();let t=F(this._routingPolicy,this._requestedProvider,this._requestedModel,e);return new s({...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(l=>l.content).join(`
3
- `)}`},...t])}let{toolDefs:r,executor:s}=this.resolveToolsAndExecutor(),o;if(s?o=pe(await(0,h.agent_run_with_tool_executor)(this._name,this.providerHandle,r,t,this._options,s)):o=pe(await(0,h.agent_run)(this._name,this.providerHandle,r,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:o.text,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0})}return o}async runWithTools(e,t){this.assertNotDisposed(),await this.ensureMcpTools();let r=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:s,executor:o}=this.resolveToolsAndExecutor(),i=async a=>{if(o){let l=await o(a);if(!JSON.parse(l).error?.startsWith("Unknown tool:"))return l}return t(a)};return pe(await(0,h.agent_run_with_tool_executor)(this._name,this.providerHandle,s,r,this._options,i))}async stream(e,t,r){this.assertNotDisposed(),await this.ensureMcpTools();let s=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:o,executor:i}=this.resolveToolsAndExecutor(),a=r??i??xt;return pe(await(0,h.agent_stream_with_tool_executor)(this._name,this.providerHandle,o,s,this._options,t,a))}streamIter(e,t){this.assertNotDisposed();let r=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:s,executor:o}=this.resolveToolsAndExecutor(),i=t??o??xt;return new B(this._name,this.providerHandle,s,r,this._options,i)}async streamText(e,t,r){this.assertNotDisposed();let s=this.streamIter(e,r),o="";for await(let i of s){if(i.type!=="text_delta")continue;let a=typeof i.text=="string"?i.text:typeof i.delta=="string"?i.delta:"";a&&(o+=a,t?.(a))}return s.result?.text??o}async generate(e,t){this.assertNotDisposed();let r=typeof e=="string"?[{role:"user",content:e}]:e;return(0,h.generate)(this.providerHandle,r,t?.temperature,t?.maxTokens)}async generateWithTools(e,t,r){this.assertNotDisposed();let s=typeof e=="string"?[{role:"user",content:e}]:e;return(0,h.generate_with_tools)(this.providerHandle,s,t,r?.temperature,r?.maxTokens)}destroy(){if(!this.disposed){this.disposed=!0;for(let e of this._mcpClients)try{e.close()}catch{}try{(0,h.destroy_provider)(this.providerHandle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new x("Agent",this._name)}resolveToolsAndExecutor(){let e=this._tools.filter(le),t=this._tools.map(s=>({name:s.name,description:s.description,parameters:s.parameters})),r=e.length>0?de(e):null;return{toolDefs:t,executor:r}}async ensureMcpTools(){if(!(this._mcpToolsLoaded||this._mcpClients.length===0)){for(let e of this._mcpClients){let{tools:t,executor:r}=await e.getToolsWithExecutor();for(let s of t){let o={...s,execute:async i=>{let a=JSON.stringify({tool:s.name,args:i}),l=await r(a);return JSON.parse(l)}};this._tools.push(o)}}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}}},xt=async()=>"{}";async function Tt(n,e){let t=new f({name:"gauss",...e});try{return(await t.run(n)).text}finally{t.destroy()}}function Ve(n={}){let e=n.providerOptions?.maxRetries??n.retries??5;return new f({...n,name:n.name??"enterprise-agent",maxSteps:n.maxSteps??20,temperature:n.temperature??.2,cacheControl:n.cacheControl??!0,reasoningEffort:n.reasoningEffort??"medium",providerOptions:{...n.providerOptions,maxRetries:e}})}async function Pt(n,e){let t=Ve(e);try{return(await t.run(n)).text}finally{t.destroy()}}async function bt(n,e){let{concurrency:t=5,...r}=e??{},s=n.map(i=>({input:i})),o=new f({name:"batch",...r});try{let i=[...s.entries()],a=Array.from({length:Math.min(t,i.length)},async()=>{for(;i.length>0;){let l=i.shift();if(!l)break;let[d,p]=l;try{s[d].result=await o.run(p.input)}catch(c){s[d].error=c instanceof Error?c:new Error(String(c))}}});await Promise.all(a)}finally{o.destroy()}return s}var R=require("gauss-napi");var Ye=require("gauss-napi");async function kt(n,e,t){return(0,R.execute_code)(n,e,t?.timeoutSecs,t?.workingDir,t?.sandbox)}async function _t(){return(0,R.available_runtimes)()}async function wt(n,e={}){let t=$(),r=e.provider??t?.provider??"openai",s=e.model??t?.model??"dall-e-3",o=e.providerOptions?.apiKey??J(r),i=(0,R.create_provider)(r,s,{apiKey:o,...e.providerOptions});try{return await(0,R.generate_image)(i,n,e.model,e.size,e.quality,e.style,e.aspectRatio,e.n,e.responseFormat)}finally{(0,R.destroy_provider)(i)}}var Ct=require("crypto"),T=require("gauss-napi"),ce=class{_handle;disposed=!1;constructor(){this._handle=(0,T.create_memory)()}get handle(){return this._handle}async store(e,t,r){this.assertNotDisposed();let s=typeof e=="string"?{id:(0,Ct.randomUUID)(),content:t,entryType:e||"conversation",timestamp:new Date().toISOString(),sessionId:r}:e,o={id:s.id,content:s.content,entry_type:s.entryType,timestamp:s.timestamp,tier:s.tier,metadata:s.metadata,importance:s.importance,session_id:s.sessionId,embedding:s.embedding};return(0,T.memory_store)(this._handle,JSON.stringify(o))}async recall(e){this.assertNotDisposed();let t=e?JSON.stringify(e):void 0;return(0,T.memory_recall)(this._handle,t)}async clear(e){return this.assertNotDisposed(),(0,T.memory_clear)(this._handle,e)}async stats(){return this.assertNotDisposed(),(0,T.memory_stats)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,T.destroy_memory)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("Memory has been destroyed")}};var S=require("gauss-napi"),ue=class{_handle;disposed=!1;constructor(e){this._handle=(0,S.create_vector_store)()}get handle(){return this._handle}async upsert(e){this.assertNotDisposed();let t=e.map(r=>({id:r.id,document_id:r.documentId,content:r.content,index:r.index,metadata:r.metadata??{},embedding:r.embedding}));return(0,S.vector_store_upsert)(this._handle,JSON.stringify(t))}async search(e,t){return this.assertNotDisposed(),(0,S.vector_store_search)(this._handle,JSON.stringify(e),t)}async searchByText(e,t,r){this.assertNotDisposed();let s=await r(e);return this.search(s,t)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,S.destroy_vector_store)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("VectorStore has been destroyed")}static cosineSimilarity(e,t){return(0,S.cosine_similarity)(e,t)}};var xr=[`
3
+ `)}`},...t])}let{toolDefs:r,executor:n}=this.resolveToolsAndExecutor(),o;if(n?o=ce(await(0,h.agent_run_with_tool_executor)(this._name,this.providerHandle,r,t,this._options,n)):o=ce(await(0,h.agent_run)(this._name,this.providerHandle,r,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:o.text,entryType:"conversation",timestamp:new Date().toISOString(),sessionId:this._sessionId||void 0})}return o}async runWithTools(e,t){this.assertNotDisposed(),await this.ensureMcpTools();let r=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:n,executor:o}=this.resolveToolsAndExecutor(),i=async a=>{if(o){let l=await o(a);if(!JSON.parse(l).error?.startsWith("Unknown tool:"))return l}return t(a)};return ce(await(0,h.agent_run_with_tool_executor)(this._name,this.providerHandle,n,r,this._options,i))}async stream(e,t,r){this.assertNotDisposed(),await this.ensureMcpTools();let n=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:o,executor:i}=this.resolveToolsAndExecutor(),a=r??i??xt;return ce(await(0,h.agent_stream_with_tool_executor)(this._name,this.providerHandle,o,n,this._options,t,a))}streamIter(e,t){this.assertNotDisposed();let r=typeof e=="string"?[{role:"user",content:e}]:e,{toolDefs:n,executor:o}=this.resolveToolsAndExecutor(),i=t??o??xt;return new B(this._name,this.providerHandle,n,r,this._options,i)}async streamText(e,t,r){this.assertNotDisposed();let n=this.streamIter(e,r),o="";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&&(o+=a,t?.(a))}return n.result?.text??o}async generate(e,t){this.assertNotDisposed();let r=typeof e=="string"?[{role:"user",content:e}]:e;return(0,h.generate)(this.providerHandle,r,t?.temperature,t?.maxTokens)}async generateWithTools(e,t,r){this.assertNotDisposed();let n=typeof e=="string"?[{role:"user",content:e}]:e;return(0,h.generate_with_tools)(this.providerHandle,n,t,r?.temperature,r?.maxTokens)}destroy(){if(!this.disposed){this.disposed=!0;for(let e of this._mcpClients)try{e.close()}catch{}try{(0,h.destroy_provider)(this.providerHandle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new x("Agent",this._name)}resolveToolsAndExecutor(){let e=this._tools.filter(pe),t=this._tools.map(n=>({name:n.name,description:n.description,parameters:n.parameters})),r=e.length>0?de(e):null;return{toolDefs:t,executor:r}}async ensureMcpTools(){if(!(this._mcpToolsLoaded||this._mcpClients.length===0)){for(let e of this._mcpClients){let{tools:t,executor:r}=await e.getToolsWithExecutor();for(let n of t){let o={...n,execute:async i=>{let a=JSON.stringify({tool:n.name,args:i}),l=await r(a);return JSON.parse(l)}};this._tools.push(o)}}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}}},xt=async()=>"{}";async function Pt(s,e){let t=new f({name:"gauss",...e});try{return(await t.run(s)).text}finally{t.destroy()}}function Ye(s={}){let e=s.providerOptions?.maxRetries??s.retries??5;return new f({...s,name:s.name??"enterprise-agent",maxSteps:s.maxSteps??20,temperature:s.temperature??.2,cacheControl:s.cacheControl??!0,reasoningEffort:s.reasoningEffort??"medium",providerOptions:{...s.providerOptions,maxRetries:e}})}async function Tt(s,e){let t=Ye(e);try{return(await t.run(s)).text}finally{t.destroy()}}async function bt(s,e){let{concurrency:t=5,...r}=e??{},n=s.map(i=>({input:i})),o=new f({name:"batch",...r});try{let i=[...n.entries()],a=Array.from({length:Math.min(t,i.length)},async()=>{for(;i.length>0;){let l=i.shift();if(!l)break;let[p,d]=l;try{n[p].result=await o.run(d.input)}catch(c){n[p].error=c instanceof Error?c:new Error(String(c))}}});await Promise.all(a)}finally{o.destroy()}return n}var R=require("gauss-napi");var Xe=require("gauss-napi");async function kt(s,e,t){return(0,R.execute_code)(s,e,t?.timeoutSecs,t?.workingDir,t?.sandbox)}async function _t(){return(0,R.available_runtimes)()}async function wt(s,e={}){let t=$(),r=e.provider??t?.provider??"openai",n=e.model??t?.model??"dall-e-3",o=e.providerOptions?.apiKey??J(r),i=(0,R.create_provider)(r,n,{apiKey:o,...e.providerOptions});try{return await(0,R.generate_image)(i,s,e.model,e.size,e.quality,e.style,e.aspectRatio,e.n,e.responseFormat)}finally{(0,R.destroy_provider)(i)}}var Ct=require("crypto"),P=require("gauss-napi"),ue=class{_handle;disposed=!1;constructor(){this._handle=(0,P.create_memory)()}get handle(){return this._handle}async store(e,t,r){this.assertNotDisposed();let n=typeof e=="string"?{id:(0,Ct.randomUUID)(),content:t,entryType:e||"conversation",timestamp:new Date().toISOString(),sessionId:r}:e,o={id:n.id,content:n.content,entry_type:n.entryType,timestamp:n.timestamp,tier:n.tier,metadata:n.metadata,importance:n.importance,session_id:n.sessionId,embedding:n.embedding};return(0,P.memory_store)(this._handle,JSON.stringify(o))}async recall(e){this.assertNotDisposed();let t=e?JSON.stringify(e):void 0;return(0,P.memory_recall)(this._handle,t)}async clear(e){return this.assertNotDisposed(),(0,P.memory_clear)(this._handle,e)}async stats(){return this.assertNotDisposed(),(0,P.memory_stats)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,P.destroy_memory)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("Memory has been destroyed")}};var S=require("gauss-napi"),me=class{_handle;disposed=!1;constructor(e){this._handle=(0,S.create_vector_store)()}get handle(){return this._handle}async upsert(e){this.assertNotDisposed();let t=e.map(r=>({id:r.id,document_id:r.documentId,content:r.content,index:r.index,metadata:r.metadata??{},embedding:r.embedding}));return(0,S.vector_store_upsert)(this._handle,JSON.stringify(t))}async search(e,t){return this.assertNotDisposed(),(0,S.vector_store_search)(this._handle,JSON.stringify(e),t)}async searchByText(e,t,r){this.assertNotDisposed();let n=await r(e);return this.search(n,t)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,S.destroy_vector_store)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("VectorStore has been destroyed")}static cosineSimilarity(e,t){return(0,S.cosine_similarity)(e,t)}};var xr=[`
5
5
 
6
6
  `,`
7
- `,". "," ",""],j=class{chunkSize;chunkOverlap;separators;constructor(e={}){this.chunkSize=e.chunkSize??1e3,this.chunkOverlap=e.chunkOverlap??200,this.separators=e.separators??xr}split(e){return this._splitRecursive(e,this.separators).map((r,s)=>({content:r,index:s}))}_splitRecursive(e,t){if(e.length<=this.chunkSize)return[e];let r=t[0]??"",s=t.slice(1),o=r?e.split(r):[...e],i=[],a="";for(let l of o){let d=a?a+r+l:l;if(d.length>this.chunkSize&&a){i.push(a);let p=Math.max(0,a.length-this.chunkOverlap);if(a=a.slice(p)+r+l,a.length>this.chunkSize&&s.length>0){let c=this._splitRecursive(a,s);a=c.pop()??"",i.push(...c)}}else a=d}return a&&i.push(a),i}};function Rt(n,e){return new j(e).split(n)}var Xe=require("fs/promises"),Qe=require("path");async function Ze(n,e={}){let t=!n.includes(`
8
- `)&&n.length<500,r,s;if(t)try{r=await(0,Xe.readFile)(n,"utf-8"),s=e.documentId??(0,Qe.basename)(n)}catch{r=n,s=e.documentId??"text-document"}else r=n,s=e.documentId??"text-document";let a=new j(e).split(r).map(l=>({id:`${s}-${l.index}`,documentId:s,content:l.content,index:l.index,metadata:{...e.metadata,...l.metadata}}));return{documentId:s,content:r,chunks:a,metadata:e.metadata??{}}}async function St(n,e={}){let t=await Ze(n,{...e,separators:[`
7
+ `,". "," ",""],j=class{chunkSize;chunkOverlap;separators;constructor(e={}){this.chunkSize=e.chunkSize??1e3,this.chunkOverlap=e.chunkOverlap??200,this.separators=e.separators??xr}split(e){return this._splitRecursive(e,this.separators).map((r,n)=>({content:r,index:n}))}_splitRecursive(e,t){if(e.length<=this.chunkSize)return[e];let r=t[0]??"",n=t.slice(1),o=r?e.split(r):[...e],i=[],a="";for(let l of o){let p=a?a+r+l:l;if(p.length>this.chunkSize&&a){i.push(a);let d=Math.max(0,a.length-this.chunkOverlap);if(a=a.slice(d)+r+l,a.length>this.chunkSize&&n.length>0){let c=this._splitRecursive(a,n);a=c.pop()??"",i.push(...c)}}else a=p}return a&&i.push(a),i}};function Rt(s,e){return new j(e).split(s)}var Qe=require("fs/promises"),Ze=require("path");async function et(s,e={}){let t=!s.includes(`
8
+ `)&&s.length<500,r,n;if(t)try{r=await(0,Qe.readFile)(s,"utf-8"),n=e.documentId??(0,Ze.basename)(s)}catch{r=s,n=e.documentId??"text-document"}else r=s,n=e.documentId??"text-document";let a=new j(e).split(r).map(l=>({id:`${n}-${l.index}`,documentId:n,content:l.content,index:l.index,metadata:{...e.metadata,...l.metadata}}));return{documentId:n,content:r,chunks:a,metadata:e.metadata??{}}}async function St(s,e={}){let t=await et(s,{...e,separators:[`
9
9
  ## `,`
10
10
  ### `,`
11
11
 
12
12
  `,`
13
- `,". "," "]});return t.content=t.content.replace(/^---[\s\S]*?---\n?/,""),t}async function Et(n,e={}){let t,r;if(!n.includes(`
14
- `)&&n.length<500)try{t=await(0,Xe.readFile)(n,"utf-8"),r=e.documentId??(0,Qe.basename)(n)}catch{t=n,r=e.documentId??"json-document"}else t=n,r=e.documentId??"json-document";let o=JSON.parse(t),i=[];if(Array.isArray(o))o.forEach((l,d)=>{let p=e.textField?String(l[e.textField]??""):JSON.stringify(l);i.push({key:String(d),text:p})});else if(typeof o=="object"&&o!==null)for(let[l,d]of Object.entries(o)){let p=typeof d=="string"?d:JSON.stringify(d);i.push({key:l,text:p})}let a=i.map((l,d)=>({id:`${r}-${l.key}`,documentId:r,content:l.text,index:d,metadata:{...e.metadata,key:l.key}}));return{documentId:r,content:t,chunks:a,metadata:e.metadata??{}}}var P=require("gauss-napi");var me=class n{static pipeline(e){let t=new n;for(let r of e)t.addNode(r);for(let r=0;r<e.length-1;r++)t.addEdge(e[r].nodeId,e[r+1].nodeId);return t}_handle;disposed=!1;_nodes=new Map;_edges=new Map;_conditionalEdges=new Map;constructor(){this._handle=(0,P.create_graph)()}get handle(){return this._handle}addNode(e){return this.assertNotDisposed(),(0,P.graph_add_node)(this._handle,e.nodeId,e.agent.name,e.agent.handle,e.instructions,e.tools??[]),this._nodes.set(e.nodeId,{agent:e.agent,instructions:e.instructions}),this}addFork(e){return this.assertNotDisposed(),(0,P.graph_add_fork_node)(this._handle,e.nodeId,e.agents.map(t=>({agentName:t.agent.name,providerHandle:t.agent.handle,instructions:t.instructions})),e.consensus??"concat"),this}addEdge(e,t){return this.assertNotDisposed(),(0,P.graph_add_edge)(this._handle,e,t),this._edges.set(e,t),this}addConditionalEdge(e,t){return this.assertNotDisposed(),this._conditionalEdges.set(e,t),this}async run(e){return this.assertNotDisposed(),this._conditionalEdges.size===0?(0,P.graph_run)(this._handle,e):this._runWithConditionals(e)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,P.destroy_graph)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}async _runWithConditionals(e){let t=new Set([...this._edges.values()]),r=[...this._nodes.keys()].filter(d=>!t.has(d));if(r.length===0)throw new m("Graph has no entry node (every node has an incoming edge)");let s={},o=r[0],i=e;for(;o;){let d=this._nodes.get(o);if(!d)throw new m(`Node "${o}" not found in graph`);let p=d.instructions?`${d.instructions}
13
+ `,". "," "]});return t.content=t.content.replace(/^---[\s\S]*?---\n?/,""),t}async function Et(s,e={}){let t,r;if(!s.includes(`
14
+ `)&&s.length<500)try{t=await(0,Qe.readFile)(s,"utf-8"),r=e.documentId??(0,Ze.basename)(s)}catch{t=s,r=e.documentId??"json-document"}else t=s,r=e.documentId??"json-document";let o=JSON.parse(t),i=[];if(Array.isArray(o))o.forEach((l,p)=>{let d=e.textField?String(l[e.textField]??""):JSON.stringify(l);i.push({key:String(p),text:d})});else if(typeof o=="object"&&o!==null)for(let[l,p]of Object.entries(o)){let d=typeof p=="string"?p:JSON.stringify(p);i.push({key:l,text:d})}let a=i.map((l,p)=>({id:`${r}-${l.key}`,documentId:r,content:l.text,index:p,metadata:{...e.metadata,key:l.key}}));return{documentId:r,content:t,chunks:a,metadata:e.metadata??{}}}var T=require("gauss-napi");var he=class s{static pipeline(e){let t=new s;for(let r of e)t.addNode(r);for(let r=0;r<e.length-1;r++)t.addEdge(e[r].nodeId,e[r+1].nodeId);return t}_handle;disposed=!1;_nodes=new Map;_edges=new Map;_conditionalEdges=new Map;constructor(){this._handle=(0,T.create_graph)()}get handle(){return this._handle}addNode(e){return this.assertNotDisposed(),(0,T.graph_add_node)(this._handle,e.nodeId,e.agent.name,e.agent.handle,e.instructions,e.tools??[]),this._nodes.set(e.nodeId,{agent:e.agent,instructions:e.instructions}),this}addFork(e){return this.assertNotDisposed(),(0,T.graph_add_fork_node)(this._handle,e.nodeId,e.agents.map(t=>({agentName:t.agent.name,providerHandle:t.agent.handle,instructions:t.instructions})),e.consensus??"concat"),this}addEdge(e,t){return this.assertNotDisposed(),(0,T.graph_add_edge)(this._handle,e,t),this._edges.set(e,t),this}addConditionalEdge(e,t){return this.assertNotDisposed(),this._conditionalEdges.set(e,t),this}async run(e){return this.assertNotDisposed(),this._conditionalEdges.size===0?(0,T.graph_run)(this._handle,e):this._runWithConditionals(e)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,T.destroy_graph)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}async _runWithConditionals(e){let t=new Set([...this._edges.values()]),r=[...this._nodes.keys()].filter(p=>!t.has(p));if(r.length===0)throw new u("Graph has no entry node (every node has an incoming edge)");let n={},o=r[0],i=e;for(;o;){let p=this._nodes.get(o);if(!p)throw new u(`Node "${o}" not found in graph`);let d=p.instructions?`${p.instructions}
15
15
 
16
- ${i}`:i,c=await d.agent.run(p),y={text:c.text,...c.structuredOutput?{structuredOutput:c.structuredOutput}:{}};s[o]=y;let u=this._conditionalEdges.get(o);u?o=await u(y):o=this._edges.get(o),i=c.text}let a=Object.keys(s),l=a[a.length-1];return{outputs:s,final_text:s[l]?.text??""}}assertNotDisposed(){if(this.disposed)throw new x("Graph","graph")}};var E=require("gauss-napi"),he=class{_handle;disposed=!1;constructor(){this._handle=(0,E.create_workflow)()}get handle(){return this._handle}addStep(e){return this.assertNotDisposed(),(0,E.workflow_add_step)(this._handle,e.stepId,e.agent.name,e.agent.handle,e.instructions,e.tools??[]),this}addDependency(e,t){return this.assertNotDisposed(),(0,E.workflow_add_dependency)(this._handle,e,t),this}async run(e){return this.assertNotDisposed(),(0,E.workflow_run)(this._handle,e)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,E.destroy_workflow)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("Workflow has been destroyed")}};var A=require("gauss-napi");var ge=class n{_handle;_name;disposed=!1;agents=[];static quick(e,t,r){let s=new n(e);for(let o of r){let i=new f({name:o.name,provider:o.provider??"openai",model:o.model??"gpt-4o",instructions:o.instructions});s.add(i)}return s.strategy(t),s}constructor(e){this._name=e,this._handle=(0,A.create_team)(e)}get handle(){return this._handle}add(e,t){return this.assertNotDisposed(),(0,A.team_add_agent)(this._handle,e.name,e.handle,t),this.agents.push(e),this}strategy(e){return this.assertNotDisposed(),(0,A.team_set_strategy)(this._handle,e),this}async run(e){this.assertNotDisposed();let t=JSON.stringify([{role:"user",content:[{type:"text",text:e}]}]);return(0,A.team_run)(this._handle,t)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,A.destroy_team)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new x("Team",this._name)}};var v=require("gauss-napi");var ye=class n{_handle;disposed=!1;supervisorName=null;static quick(e,t){let r=new n;for(let s of t){let o=new f({name:s.name,provider:s.provider??"openai",model:s.model??"gpt-4o",instructions:s.instructions});r.addAgent(o,s.instructions)}return r.setSupervisor(e),r}static template(e){return e==="research-delivery"?{supervisor:"lead",agents:[{name:"lead",instructions:"Coordinate and delegate work."},{name:"researcher",instructions:"Research context and constraints."},{name:"implementer",instructions:"Implement practical solutions."}]}:e==="incident-response"?{supervisor:"incident-commander",agents:[{name:"incident-commander",instructions:"Drive response and coordination."},{name:"triage",instructions:"Assess impact and prioritize mitigation."},{name:"remediator",instructions:"Propose and execute remediation steps."}]}:e==="support-triage"?{supervisor:"support-lead",agents:[{name:"support-lead",instructions:"Coordinate support workload and escalations."},{name:"triage-bot",instructions:"Classify incoming support requests."},{name:"resolver",instructions:"Draft and validate customer resolutions."}]}:e==="fintech-risk-review"?{supervisor:"risk-lead",agents:[{name:"risk-lead",instructions:"Approve risk recommendations and report rationale."},{name:"policy-analyst",instructions:"Map events to compliance policy obligations."},{name:"fraud-scorer",instructions:"Score suspicious patterns and flag anomalies."}]}:{supervisor:"rag-ops-lead",agents:[{name:"rag-ops-lead",instructions:"Coordinate retrieval quality and index freshness."},{name:"retrieval-auditor",instructions:"Audit recall/precision and retrieval grounding."},{name:"index-maintainer",instructions:"Propose chunking and indexing improvements."}]}}static fromTemplate(e){let t=n.template(e);return n.quick(t.supervisor,t.agents)}constructor(){this._handle=(0,v.create_network)()}get handle(){return this._handle}addAgent(e,t){this.assertNotDisposed();let r=typeof t=="string"?t:t?.instructions;return(0,v.network_add_agent)(this._handle,e.name,e.handle,r),this}setSupervisor(e){return this.assertNotDisposed(),this.supervisorName=e,(0,v.network_set_supervisor)(this._handle,e),this}async delegate(e,t,r){this.assertNotDisposed();let s=r===void 0?e:t,o=r===void 0?t:r;return(0,v.network_delegate)(this._handle,s,o)}async delegateWithSupervisor(e){if(this.assertNotDisposed(),!this.supervisorName)throw new Error("Network supervisor is not set. Call setSupervisor() first.");return(0,v.network_delegate)(this._handle,this.supervisorName,e)}agentCards(){return this.assertNotDisposed(),(0,v.network_agent_cards)(this._handle)}destroy(){this.disposed||(this.disposed=!0,(0,v.destroy_network)(this._handle))}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new x("Network","network")}};var D=require("gauss-napi"),fe=class{_handle;disposed=!1;constructor(){this._handle=(0,D.create_middleware_chain)()}get handle(){return this._handle}useLogging(){return this.assertNotDisposed(),(0,D.middleware_use_logging)(this._handle),this}useCaching(e){return this.assertNotDisposed(),(0,D.middleware_use_caching)(this._handle,e),this}useRateLimit(e,t){return this.assertNotDisposed(),(0,D.middleware_use_rate_limit)(this._handle,e,t),this}destroy(){if(!this.disposed){this.disposed=!0;try{(0,D.destroy_middleware_chain)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("MiddlewareChain has been destroyed")}};var b=require("gauss-napi"),ve=class{_handle;disposed=!1;constructor(){this._handle=(0,b.create_plugin_registry)()}get handle(){return this._handle}addTelemetry(){return this.assertNotDisposed(),(0,b.plugin_registry_add_telemetry)(this._handle),this}addMemory(){return this.assertNotDisposed(),(0,b.plugin_registry_add_memory)(this._handle),this}list(){return this.assertNotDisposed(),(0,b.plugin_registry_list)(this._handle)}emit(e){this.assertNotDisposed(),(0,b.plugin_registry_emit)(this._handle,JSON.stringify(e))}destroy(){if(!this.disposed){this.disposed=!0;try{(0,b.destroy_plugin_registry)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("PluginRegistry has been destroyed")}};var k=require("gauss-napi"),xe=class{_handle;disposed=!1;constructor(e,t){this._handle=(0,k.create_mcp_server)(e,t)}get handle(){return this._handle}addTool(e){this.assertNotDisposed();let t={name:e.name,description:e.description,inputSchema:e.parameters??{type:"object"}};return(0,k.mcp_server_add_tool)(this._handle,JSON.stringify(t)),this}addResource(e){return this.assertNotDisposed(),(0,k.mcpServerAddResource)(this._handle,JSON.stringify(e)),this}addPrompt(e){return this.assertNotDisposed(),(0,k.mcpServerAddPrompt)(this._handle,JSON.stringify(e)),this}async handleMessage(e){return this.assertNotDisposed(),(0,k.mcp_server_handle)(this._handle,JSON.stringify(e))}destroy(){if(!this.disposed){this.disposed=!0;try{(0,k.destroy_mcp_server)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("McpServer has been destroyed")}};var At=require("child_process"),Te=class{config;process=null;connected=!1;closed=!1;nextId=1;pending=new Map;buffer="";serverCapabilities={};cachedTools=null;constructor(e){this.config=e}async connect(){if(this.connected)return;if(this.closed)throw new Error("McpClient has been closed");let e=this.config.timeoutMs??1e4;this.process=(0,At.spawn)(this.config.command,this.config.args??[],{stdio:["pipe","pipe","pipe"],env:{...process.env,...this.config.env}}),this.process.stdout.on("data",r=>this.onData(r)),this.process.stderr.on("data",()=>{}),this.process.on("error",r=>this.onProcessError(r)),this.process.on("close",()=>this.onProcessClose());let t=await this.request("initialize",{protocolVersion:"2024-11-05",capabilities:{},clientInfo:{name:"gauss-mcp-client",version:"1.2.0"}},e);this.serverCapabilities=t?.capabilities??{},this.notify("notifications/initialized",{}),this.connected=!0}async listTools(){if(this.assertConnected(),this.cachedTools)return this.cachedTools;let t=((await this.request("tools/list",{}))?.tools??[]).map(r=>({name:r.name,description:r.description??"",parameters:r.inputSchema}));return this.cachedTools=t,t}async callTool(e,t={}){return this.assertConnected(),await this.request("tools/call",{name:e,arguments:t})}async getToolsWithExecutor(){return{tools:await this.listTools(),executor:async r=>{let s;try{s=JSON.parse(r)}catch{return JSON.stringify({error:"Invalid tool call JSON"})}let o=s.tool??s.name??"",i=s.args??s.arguments??{};try{let a=await this.callTool(o,i);if(a.isError){let d=a.content?.map(p=>p.text).filter(Boolean).join(`
17
- `)??"Tool error";return JSON.stringify({error:d})}let l=a.content?.map(d=>d.text).filter(Boolean).join(`
18
- `)??"";return JSON.stringify({result:l})}catch(a){let l=a instanceof Error?a.message:String(a);return JSON.stringify({error:l})}}}}close(){if(!this.closed){this.closed=!0,this.connected=!1,this.cachedTools=null;for(let[,{reject:e}]of this.pending)e(new Error("McpClient closed"));this.pending.clear(),this.process&&(this.process.stdin.end(),this.process.kill("SIGTERM"),this.process=null)}}destroy(){this.close()}[Symbol.dispose](){this.close()}get isConnected(){return this.connected}async request(e,t,r=3e4){let s=this.nextId++,o={jsonrpc:"2.0",id:s,method:e,params:t};return new Promise((i,a)=>{let l=setTimeout(()=>{this.pending.delete(s),a(new Error(`MCP request "${e}" timed out after ${r}ms`))},r);this.pending.set(s,{resolve:d=>{clearTimeout(l),i(d)},reject:d=>{clearTimeout(l),a(d)}}),this.send(o)})}notify(e,t){let r={jsonrpc:"2.0",method:e,params:t};this.send(r)}send(e){if(!this.process?.stdin?.writable)throw new Error("MCP server process not available");let t=JSON.stringify(e);this.process.stdin.write(t+`
16
+ ${i}`:i,c=await p.agent.run(d),y={text:c.text,...c.structuredOutput?{structuredOutput:c.structuredOutput}:{}};n[o]=y;let m=this._conditionalEdges.get(o);m?o=await m(y):o=this._edges.get(o),i=c.text}let a=Object.keys(n),l=a[a.length-1];return{outputs:n,final_text:n[l]?.text??""}}assertNotDisposed(){if(this.disposed)throw new x("Graph","graph")}};var E=require("gauss-napi"),ge=class{_handle;disposed=!1;constructor(){this._handle=(0,E.create_workflow)()}get handle(){return this._handle}addStep(e){return this.assertNotDisposed(),(0,E.workflow_add_step)(this._handle,e.stepId,e.agent.name,e.agent.handle,e.instructions,e.tools??[]),this}addDependency(e,t){return this.assertNotDisposed(),(0,E.workflow_add_dependency)(this._handle,e,t),this}async run(e){return this.assertNotDisposed(),(0,E.workflow_run)(this._handle,e)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,E.destroy_workflow)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("Workflow has been destroyed")}};var A=require("gauss-napi");var ye=class s{_handle;_name;disposed=!1;agents=[];static quick(e,t,r){let n=new s(e);for(let o of r){let i=new f({name:o.name,provider:o.provider??"openai",model:o.model??"gpt-4o",instructions:o.instructions});n.add(i)}return n.strategy(t),n}constructor(e){this._name=e,this._handle=(0,A.create_team)(e)}get handle(){return this._handle}add(e,t){return this.assertNotDisposed(),(0,A.team_add_agent)(this._handle,e.name,e.handle,t),this.agents.push(e),this}strategy(e){return this.assertNotDisposed(),(0,A.team_set_strategy)(this._handle,e),this}async run(e){this.assertNotDisposed();let t=JSON.stringify([{role:"user",content:[{type:"text",text:e}]}]);return(0,A.team_run)(this._handle,t)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,A.destroy_team)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new x("Team",this._name)}};var v=require("gauss-napi");var fe=class s{_handle;disposed=!1;supervisorName=null;static quick(e,t){let r=new s;for(let n of t){let o=new f({name:n.name,provider:n.provider??"openai",model:n.model??"gpt-4o",instructions:n.instructions});r.addAgent(o,n.instructions)}return r.setSupervisor(e),r}static template(e){return e==="research-delivery"?{supervisor:"lead",agents:[{name:"lead",instructions:"Coordinate and delegate work."},{name:"researcher",instructions:"Research context and constraints."},{name:"implementer",instructions:"Implement practical solutions."}]}:e==="incident-response"?{supervisor:"incident-commander",agents:[{name:"incident-commander",instructions:"Drive response and coordination."},{name:"triage",instructions:"Assess impact and prioritize mitigation."},{name:"remediator",instructions:"Propose and execute remediation steps."}]}:e==="support-triage"?{supervisor:"support-lead",agents:[{name:"support-lead",instructions:"Coordinate support workload and escalations."},{name:"triage-bot",instructions:"Classify incoming support requests."},{name:"resolver",instructions:"Draft and validate customer resolutions."}]}:e==="fintech-risk-review"?{supervisor:"risk-lead",agents:[{name:"risk-lead",instructions:"Approve risk recommendations and report rationale."},{name:"policy-analyst",instructions:"Map events to compliance policy obligations."},{name:"fraud-scorer",instructions:"Score suspicious patterns and flag anomalies."}]}:{supervisor:"rag-ops-lead",agents:[{name:"rag-ops-lead",instructions:"Coordinate retrieval quality and index freshness."},{name:"retrieval-auditor",instructions:"Audit recall/precision and retrieval grounding."},{name:"index-maintainer",instructions:"Propose chunking and indexing improvements."}]}}static fromTemplate(e){let t=s.template(e);return s.quick(t.supervisor,t.agents)}constructor(){this._handle=(0,v.create_network)()}get handle(){return this._handle}addAgent(e,t){this.assertNotDisposed();let r=typeof t=="string"?t:t?.instructions;return(0,v.network_add_agent)(this._handle,e.name,e.handle,r),this}setSupervisor(e){return this.assertNotDisposed(),this.supervisorName=e,(0,v.network_set_supervisor)(this._handle,e),this}async delegate(e,t,r){this.assertNotDisposed();let n=r===void 0?e:t,o=r===void 0?t:r;return(0,v.network_delegate)(this._handle,n,o)}async delegateWithSupervisor(e){if(this.assertNotDisposed(),!this.supervisorName)throw new Error("Network supervisor is not set. Call setSupervisor() first.");return(0,v.network_delegate)(this._handle,this.supervisorName,e)}agentCards(){return this.assertNotDisposed(),(0,v.network_agent_cards)(this._handle)}destroy(){this.disposed||(this.disposed=!0,(0,v.destroy_network)(this._handle))}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new x("Network","network")}};var D=require("gauss-napi"),ve=class{_handle;disposed=!1;constructor(){this._handle=(0,D.create_middleware_chain)()}get handle(){return this._handle}useLogging(){return this.assertNotDisposed(),(0,D.middleware_use_logging)(this._handle),this}useCaching(e){return this.assertNotDisposed(),(0,D.middleware_use_caching)(this._handle,e),this}useRateLimit(e,t){return this.assertNotDisposed(),(0,D.middleware_use_rate_limit)(this._handle,e,t),this}destroy(){if(!this.disposed){this.disposed=!0;try{(0,D.destroy_middleware_chain)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("MiddlewareChain has been destroyed")}};var b=require("gauss-napi"),xe=class{_handle;disposed=!1;constructor(){this._handle=(0,b.create_plugin_registry)()}get handle(){return this._handle}addTelemetry(){return this.assertNotDisposed(),(0,b.plugin_registry_add_telemetry)(this._handle),this}addMemory(){return this.assertNotDisposed(),(0,b.plugin_registry_add_memory)(this._handle),this}list(){return this.assertNotDisposed(),(0,b.plugin_registry_list)(this._handle)}emit(e){this.assertNotDisposed(),(0,b.plugin_registry_emit)(this._handle,JSON.stringify(e))}destroy(){if(!this.disposed){this.disposed=!0;try{(0,b.destroy_plugin_registry)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("PluginRegistry has been destroyed")}};var k=require("gauss-napi"),Pe=class{_handle;disposed=!1;constructor(e,t){this._handle=(0,k.create_mcp_server)(e,t)}get handle(){return this._handle}addTool(e){this.assertNotDisposed();let t={name:e.name,description:e.description,inputSchema:e.parameters??{type:"object"}};return(0,k.mcp_server_add_tool)(this._handle,JSON.stringify(t)),this}addResource(e){return this.assertNotDisposed(),(0,k.mcpServerAddResource)(this._handle,JSON.stringify(e)),this}addPrompt(e){return this.assertNotDisposed(),(0,k.mcpServerAddPrompt)(this._handle,JSON.stringify(e)),this}async handleMessage(e){return this.assertNotDisposed(),(0,k.mcp_server_handle)(this._handle,JSON.stringify(e))}destroy(){if(!this.disposed){this.disposed=!0;try{(0,k.destroy_mcp_server)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("McpServer has been destroyed")}};var At=require("child_process"),Te=class{config;process=null;connected=!1;closed=!1;nextId=1;pending=new Map;buffer="";serverCapabilities={};cachedTools=null;constructor(e){this.config=e}async connect(){if(this.connected)return;if(this.closed)throw new Error("McpClient has been closed");let e=this.config.timeoutMs??1e4;this.process=(0,At.spawn)(this.config.command,this.config.args??[],{stdio:["pipe","pipe","pipe"],env:{...process.env,...this.config.env}}),this.process.stdout.on("data",r=>this.onData(r)),this.process.stderr.on("data",()=>{}),this.process.on("error",r=>this.onProcessError(r)),this.process.on("close",()=>this.onProcessClose());let t=await this.request("initialize",{protocolVersion:"2024-11-05",capabilities:{},clientInfo:{name:"gauss-mcp-client",version:"1.2.0"}},e);this.serverCapabilities=t?.capabilities??{},this.notify("notifications/initialized",{}),this.connected=!0}async listTools(){if(this.assertConnected(),this.cachedTools)return this.cachedTools;let t=((await this.request("tools/list",{}))?.tools??[]).map(r=>({name:r.name,description:r.description??"",parameters:r.inputSchema}));return this.cachedTools=t,t}async callTool(e,t={}){return this.assertConnected(),await this.request("tools/call",{name:e,arguments:t})}async getToolsWithExecutor(){return{tools:await this.listTools(),executor:async r=>{let n;try{n=JSON.parse(r)}catch{return JSON.stringify({error:"Invalid tool call JSON"})}let o=n.tool??n.name??"",i=n.args??n.arguments??{};try{let a=await this.callTool(o,i);if(a.isError){let p=a.content?.map(d=>d.text).filter(Boolean).join(`
17
+ `)??"Tool error";return JSON.stringify({error:p})}let l=a.content?.map(p=>p.text).filter(Boolean).join(`
18
+ `)??"";return JSON.stringify({result:l})}catch(a){let l=a instanceof Error?a.message:String(a);return JSON.stringify({error:l})}}}}close(){if(!this.closed){this.closed=!0,this.connected=!1,this.cachedTools=null;for(let[,{reject:e}]of this.pending)e(new Error("McpClient closed"));this.pending.clear(),this.process&&(this.process.stdin.end(),this.process.kill("SIGTERM"),this.process=null)}}destroy(){this.close()}[Symbol.dispose](){this.close()}get isConnected(){return this.connected}async request(e,t,r=3e4){let n=this.nextId++,o={jsonrpc:"2.0",id:n,method:e,params:t};return new Promise((i,a)=>{let l=setTimeout(()=>{this.pending.delete(n),a(new Error(`MCP request "${e}" timed out after ${r}ms`))},r);this.pending.set(n,{resolve:p=>{clearTimeout(l),i(p)},reject:p=>{clearTimeout(l),a(p)}}),this.send(o)})}notify(e,t){let r={jsonrpc:"2.0",method:e,params:t};this.send(r)}send(e){if(!this.process?.stdin?.writable)throw new Error("MCP server process not available");let t=JSON.stringify(e);this.process.stdin.write(t+`
19
19
  `)}onData(e){this.buffer+=e.toString("utf-8");let t;for(;(t=this.buffer.indexOf(`
20
- `))!==-1;){let r=this.buffer.slice(0,t).trim();if(this.buffer=this.buffer.slice(t+1),!!r)try{let s=JSON.parse(r);if(s.id!==void 0&&this.pending.has(s.id)){let{resolve:o,reject:i}=this.pending.get(s.id);this.pending.delete(s.id),s.error?i(new Error(`MCP error ${s.error.code}: ${s.error.message}`)):o(s.result)}}catch{}}}onProcessError(e){for(let[,{reject:t}]of this.pending)t(new Error(`MCP process error: ${e.message}`));this.pending.clear(),this.connected=!1}onProcessClose(){this.connected=!1;for(let[,{reject:e}]of this.pending)e(new Error("MCP server process exited"));this.pending.clear()}assertConnected(){if(!this.connected)throw new Error("McpClient is not connected. Call connect() first.")}};var g=require("gauss-napi"),Pe=class{_handle;disposed=!1;constructor(){this._handle=(0,g.create_guardrail_chain)()}get handle(){return this._handle}addContentModeration(e,t=[]){return this.assertNotDisposed(),(0,g.guardrail_chain_add_content_moderation)(this._handle,e,t),this}addPiiDetection(e){return this.assertNotDisposed(),(0,g.guardrail_chain_add_pii_detection)(this._handle,e),this}addTokenLimit(e,t){return this.assertNotDisposed(),(0,g.guardrail_chain_add_token_limit)(this._handle,e,t),this}addRegexFilter(e,t=[]){return this.assertNotDisposed(),(0,g.guardrail_chain_add_regex_filter)(this._handle,e,t),this}addSchema(e){return this.assertNotDisposed(),(0,g.guardrail_chain_add_schema)(this._handle,JSON.stringify(e)),this}list(){return this.assertNotDisposed(),(0,g.guardrail_chain_list)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,g.destroy_guardrail_chain)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("GuardrailChain has been destroyed")}};var _=require("gauss-napi"),be=class{_handle;disposed=!1;constructor(){this._handle=(0,_.create_approval_manager)()}get handle(){return this._handle}request(e,t,r){return this.assertNotDisposed(),(0,_.approval_request)(this._handle,e,JSON.stringify(t),r)}approve(e,t){this.assertNotDisposed(),(0,_.approval_approve)(this._handle,e,t?JSON.stringify(t):void 0)}deny(e,t){this.assertNotDisposed(),(0,_.approval_deny)(this._handle,e,t)}listPending(){return this.assertNotDisposed(),(0,_.approval_list_pending)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,_.destroy_approval_manager)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("ApprovalManager has been destroyed")}};var O=require("gauss-napi"),ke=class{_handle;disposed=!1;constructor(){this._handle=(0,O.create_checkpoint_store)()}get handle(){return this._handle}async save(e){return this.assertNotDisposed(),(0,O.checkpoint_save)(this._handle,JSON.stringify(e))}async load(e){return this.assertNotDisposed(),(0,O.checkpoint_load)(this._handle,e)}async loadLatest(e){return this.assertNotDisposed(),(0,O.checkpoint_load_latest)(this._handle,e)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,O.destroy_checkpoint_store)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("CheckpointStore has been destroyed")}};var M=require("gauss-napi"),_e=class{_handle;disposed=!1;constructor(e){this._handle=(0,M.create_eval_runner)(e)}get handle(){return this._handle}addScorer(e){return this.assertNotDisposed(),(0,M.eval_add_scorer)(this._handle,e),this}destroy(){if(!this.disposed){this.disposed=!0;try{(0,M.destroy_eval_runner)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("EvalRunner has been destroyed")}static loadDatasetJsonl(e){return(0,M.load_dataset_jsonl)(e)}static loadDatasetJson(e){return(0,M.load_dataset_json)(e)}};var w=require("gauss-napi"),we=class{_handle;disposed=!1;constructor(){this._handle=(0,w.create_telemetry)()}get handle(){return this._handle}recordSpan(e,t,r){this.assertNotDisposed();let s=typeof e=="string"?{name:e,span_type:"custom",start_ms:Date.now()-(t??0),duration_ms:t??0,attributes:r??{},status:"ok",children:[]}:e;(0,w.telemetry_record_span)(this._handle,JSON.stringify(s))}exportSpans(){return this.assertNotDisposed(),(0,w.telemetry_export_spans)(this._handle)}exportMetrics(){return this.assertNotDisposed(),(0,w.telemetry_export_metrics)(this._handle)}clear(){this.assertNotDisposed(),(0,w.telemetry_clear)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,w.destroy_telemetry)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("Telemetry has been destroyed")}};var Ee=require("fs"),Ut=require("http"),Gt=require("path");var I=require("gauss-napi"),Ce=new Map;function Dt(n,e){Ce.set(n,e)}function Ot(n){return Ce.get(n)}function Mt(){Ce.clear()}function It(n){return(0,I.count_tokens)(n)}function Nt(n,e){return(0,I.count_tokens_for_model)(n,e)}function Ht(n){return(0,I.count_message_tokens)(n)}function jt(n){return(0,I.get_context_window_size)(n)}function Re(n,e){let t=Ce.get(n);if(t){let s=e.inputTokens*t.inputPerToken,o=e.outputTokens*t.outputPerToken,i=(e.reasoningTokens??0)*(t.reasoningPerToken??t.outputPerToken),a=(e.cacheReadTokens??0)*(t.cacheReadPerToken??t.inputPerToken*.5),l=(e.cacheCreationTokens??0)*(t.cacheCreationPerToken??t.inputPerToken*1.25);return{model:n,normalizedModel:n,currency:"USD",inputTokens:e.inputTokens,outputTokens:e.outputTokens,reasoningTokens:e.reasoningTokens??0,cacheReadTokens:e.cacheReadTokens??0,cacheCreationTokens:e.cacheCreationTokens??0,inputCostUsd:s,outputCostUsd:o,reasoningCostUsd:i,cacheReadCostUsd:a,cacheCreationCostUsd:l,totalCostUsd:s+o+i+a+l}}let r=(0,I.estimate_cost)(n,e.inputTokens,e.outputTokens,e.reasoningTokens,e.cacheReadTokens,e.cacheCreationTokens);return{model:String(r.model??n),normalizedModel:String(r.normalized_model??n),currency:String(r.currency??"USD"),inputTokens:Number(r.input_tokens??e.inputTokens),outputTokens:Number(r.output_tokens??e.outputTokens),reasoningTokens:Number(r.reasoning_tokens??e.reasoningTokens??0),cacheReadTokens:Number(r.cache_read_tokens??e.cacheReadTokens??0),cacheCreationTokens:Number(r.cache_creation_tokens??e.cacheCreationTokens??0),inputCostUsd:Number(r.input_cost_usd??0),outputCostUsd:Number(r.output_cost_usd??0),reasoningCostUsd:Number(r.reasoning_cost_usd??0),cacheReadCostUsd:Number(r.cache_read_cost_usd??0),cacheCreationCostUsd:Number(r.cache_creation_cost_usd??0),totalCostUsd:Number(r.total_cost_usd??0)}}var U=class extends Error{},Tr=["openai","anthropic","google","groq","ollama","deepseek","openrouter","together","fireworks","mistral","perplexity","xai"],Se=class{telemetry;approvals;model;routingPolicy;authToken;authClaims;persistPath;historyLimit;streamReplayLimit;context;latestCost=null;history=[];nextStreamEventId=1;streamEvents=[];explainTraces=[];nextExplainTraceId=1;latestExplainTraceId=null;server=null;constructor(e={}){this.telemetry=e.telemetry,this.approvals=e.approvals,this.model=e.model??"gpt-5.2",this.routingPolicy=e.routingPolicy,this.authToken=e.authToken,this.authClaims=e.authClaims,this.persistPath=e.persistPath,this.historyLimit=e.historyLimit??200,this.streamReplayLimit=e.streamReplayLimit??500,this.context={...e.context??{}}}withModel(e){return this.model=e,this}withRoutingPolicy(e){return this.routingPolicy=e,this}withAuthToken(e){return this.authToken=e,this}withAuthClaims(e){return this.authClaims=e,this}withContext(e){return this.assertContextAllowed(e),this.context={...e},this}setCostUsage(e){return this.latestCost=Re(this.model,e),this}snapshot(e){let t=this.captureSnapshot();return e?{generatedAt:t.generatedAt,context:t.context,[e]:t[e]}:t}getHistory(e){return this.filterHistory(e)}getTimeline(e){return this.filterHistory(e).map(t=>({generatedAt:t.generatedAt,spanCount:Array.isArray(t.spans)?t.spans.length:0,pendingApprovalsCount:Array.isArray(t.pendingApprovals)?t.pendingApprovals.length:0,totalCostUsd:t.latestCost?.totalCostUsd??0,latestExplainTraceId:t.latestExplainTraceId}))}getDag(e){let t=this.filterHistory(e),r=t[t.length-1];if(!r||!Array.isArray(r.spans))return{nodes:[],edges:[]};let s=r.spans.map((i,a)=>({id:String(a),label:this.spanLabel(i,a)})),o=s.slice(1).map((i,a)=>({from:String(a),to:i.id}));return{nodes:s,edges:o}}async startServer(e="127.0.0.1",t=4200){if(this.server){let s=this.server.address();return s&&typeof s!="string"?{url:`http://${e}:${s.port}`}:{url:`http://${e}:${t}`}}this.server=(0,Ut.createServer)((s,o)=>{if(!s.url){o.statusCode=400,o.end("Bad request");return}let i=new URL(s.url,`http://${s.headers.host??`${e}:${t}`}`),a=i.pathname;if(a.startsWith("/api/")&&!this.isAuthorized(s,i)){o.statusCode=401,o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify({error:"Unauthorized"}));return}try{if(a==="/api/snapshot"){let l=i.searchParams.get("section"),d=l?this.snapshot(this.parseSection(l)):this.snapshot();o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(d,null,2));return}if(a==="/api/history"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.getHistory(l),null,2));return}if(a==="/api/timeline"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.getTimeline(l),null,2));return}if(a==="/api/dag"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.getDag(l),null,2));return}if(a==="/api/ops/capabilities"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsCapabilities(),null,2));return}if(a==="/api/ops/health"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsHealth(),null,2));return}if(a==="/api/ops/summary"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsSummary(l),null,2));return}if(a==="/api/ops/tenants"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsTenants(l),null,2));return}if(a==="/api/ops/policy/explain"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplain(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/batch"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainBatch(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/simulate"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainSimulation(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/diff"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainDiff(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/traces"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainTraces(i.searchParams),null,2));return}if(a==="/api/stream"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams)),d=this.parseStreamChannels(i.searchParams);for(let lr of d)this.assertChannelAllowed(lr);let p=i.searchParams.get("once")==="1",c=this.parseLastEventId(s,i.searchParams);o.statusCode=200,o.setHeader("Content-Type","text/event-stream; charset=utf-8"),o.setHeader("Cache-Control","no-cache"),o.setHeader("Connection","keep-alive");let y=this.replayStreamEvents(o,d,l,c);if(p&&y>0){o.end();return}if(this.emitStreamBatch(o,d,l),p){o.end();return}let u=setInterval(()=>{o.writableEnded||o.destroyed||this.emitStreamBatch(o,d,l)},1e3),Z=()=>clearInterval(u);s.on("close",Z),s.on("aborted",Z);return}if(a==="/"){o.setHeader("Content-Type","text/html; charset=utf-8"),o.end(this.renderDashboardHtml());return}if(a==="/ops"){o.setHeader("Content-Type","text/html; charset=utf-8"),o.end(this.renderHostedOpsHtml());return}if(a==="/ops/tenants"){o.setHeader("Content-Type","text/html; charset=utf-8"),o.end(this.renderHostedTenantOpsHtml());return}o.statusCode=404,o.end("Not found")}catch(l){if(l instanceof U){o.statusCode=403,o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify({error:l.message}));return}let d=l instanceof Error?l.message:"Internal error";o.statusCode=500,o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify({error:d}))}}),await new Promise((s,o)=>{this.server.once("error",o),this.server.listen(t,e,()=>s())});let r=this.server.address();return!r||typeof r=="string"?{url:`http://${e}:${t}`}:{url:`http://${e}:${r.port}`}}async stopServer(){if(!this.server)return;let e=this.server;this.server=null,await new Promise((t,r)=>{e.close(s=>s?r(s):t())})}destroy(){this.stopServer()}[Symbol.dispose](){this.destroy()}captureSnapshot(){this.assertContextAllowed(this.context);let e={generatedAt:new Date().toISOString(),context:{...this.context},spans:this.telemetry?.exportSpans()??[],metrics:this.telemetry?.exportMetrics()??{},pendingApprovals:this.approvals?.listPending()??[],latestCost:this.latestCost,latestExplainTraceId:this.latestExplainTraceId};return this.history.push(e),this.history.length>this.historyLimit&&this.history.shift(),this.persistPath&&((0,Ee.mkdirSync)((0,Gt.dirname)(this.persistPath),{recursive:!0}),(0,Ee.appendFileSync)(this.persistPath,`${JSON.stringify(e)}
21
- `,"utf8")),e}parseSection(e){if(e==="spans"||e==="metrics"||e==="pendingApprovals"||e==="latestCost")return e;throw new m(`Unknown section "${e}"`,"section")}parseStreamChannel(e){if(e===null||e==="snapshot")return"snapshot";if(e==="timeline"||e==="dag")return e;throw new m(`Unknown stream channel "${e}"`,"channel")}parseStreamChannels(e){let t=e.get("channels");if(!t)return[this.parseStreamChannel(e.get("channel"))];let r=t.split(",").map(s=>s.trim()).filter(s=>s.length>0).map(s=>this.parseStreamChannel(s));return r.length===0?["snapshot"]:[...new Set(r)]}parseLastEventId(e,t){let r=t.get("lastEventId"),s=e.headers["last-event-id"],o=r??(typeof s=="string"?s:null);if(o===null)return null;let i=Number.parseInt(o,10);if(!Number.isFinite(i)||i<0)throw new m(`Invalid lastEventId "${o}"`,"lastEventId");return i}parseContextFilters(e){return{tenantId:e.get("tenant")??void 0,sessionId:e.get("session")??void 0,runId:e.get("run")??void 0}}parsePolicyProvider(e){if(!Tr.includes(e))throw new m(`Unknown provider "${e}"`,"provider");return e}parseOptionalNumber(e,t){if(e===null||e.trim().length===0)return;let r=Number(e);if(!Number.isFinite(r))throw new m(`Invalid ${t} "${e}"`,t);return r}parsePolicyExplainScenario(e){let t=this.parsePolicyProvider(typeof e.provider=="string"&&e.provider.trim().length>0?e.provider:"openai"),r=typeof e.model=="string"&&e.model.trim().length>0?e.model:"gpt-5.2",s=Array.isArray(e.available)?e.available:typeof e.available=="string"?e.available.split(","):[],o=s.length>0?s.map(c=>String(c).trim()).filter(c=>c.length>0).map(c=>this.parsePolicyProvider(c)):void 0,i=Array.isArray(e.tags)?e.tags:typeof e.tags=="string"?e.tags.split(","):[],a=i.length>0?i.map(c=>String(c).trim()).filter(c=>c.length>0):void 0,l=this.parseOptionalNumber(e.cost!==void 0&&e.cost!==null?String(e.cost):null,"cost"),d=this.parseOptionalNumber(e.rpm!==void 0&&e.rpm!==null?String(e.rpm):null,"rpm"),p=this.parseOptionalNumber(e.hour!==void 0&&e.hour!==null?String(e.hour):null,"hour");return{provider:t,model:r,options:{availableProviders:o,estimatedCostUsd:l,currentRequestsPerMinute:d,currentHourUtc:p,governanceTags:a}}}parsePolicyExplainOptions(e){return this.parsePolicyExplainScenario({provider:e.get("provider"),model:e.get("model"),available:e.get("available"),cost:e.get("cost"),rpm:e.get("rpm"),hour:e.get("hour"),tags:e.get("tags")})}parsePolicyExplainBatchScenarios(e){let t=e.get("scenarios");if(!t)throw new m("Missing scenarios query parameter","scenarios");let r;try{r=JSON.parse(t)}catch{throw new m("Invalid scenarios JSON payload","scenarios")}if(!Array.isArray(r)||r.length===0)throw new m("scenarios must be a non-empty array","scenarios");return r.map((s,o)=>{if(typeof s!="object"||s===null)throw new m(`Scenario ${o} must be an object`,"scenarios");return this.parsePolicyExplainScenario(s)})}buildStreamEvent(e,t,r){let s=e==="timeline"?this.getTimeline(t):e==="dag"?this.getDag(t):this.filterHistory(t).slice(-1)[0]??r,o={id:this.nextStreamEventId++,event:e,generatedAt:r.generatedAt,context:{...r.context},payload:s};return this.streamEvents.push(o),this.streamEvents.length>this.streamReplayLimit&&this.streamEvents.shift(),o}writeSseEvent(e,t){e.write(`id: ${t.id}
20
+ `))!==-1;){let r=this.buffer.slice(0,t).trim();if(this.buffer=this.buffer.slice(t+1),!!r)try{let n=JSON.parse(r);if(n.id!==void 0&&this.pending.has(n.id)){let{resolve:o,reject:i}=this.pending.get(n.id);this.pending.delete(n.id),n.error?i(new Error(`MCP error ${n.error.code}: ${n.error.message}`)):o(n.result)}}catch{}}}onProcessError(e){for(let[,{reject:t}]of this.pending)t(new Error(`MCP process error: ${e.message}`));this.pending.clear(),this.connected=!1}onProcessClose(){this.connected=!1;for(let[,{reject:e}]of this.pending)e(new Error("MCP server process exited"));this.pending.clear()}assertConnected(){if(!this.connected)throw new Error("McpClient is not connected. Call connect() first.")}};var g=require("gauss-napi"),be=class{_handle;disposed=!1;constructor(){this._handle=(0,g.create_guardrail_chain)()}get handle(){return this._handle}addContentModeration(e,t=[]){return this.assertNotDisposed(),(0,g.guardrail_chain_add_content_moderation)(this._handle,e,t),this}addPiiDetection(e){return this.assertNotDisposed(),(0,g.guardrail_chain_add_pii_detection)(this._handle,e),this}addTokenLimit(e,t){return this.assertNotDisposed(),(0,g.guardrail_chain_add_token_limit)(this._handle,e,t),this}addRegexFilter(e,t=[]){return this.assertNotDisposed(),(0,g.guardrail_chain_add_regex_filter)(this._handle,e,t),this}addSchema(e){return this.assertNotDisposed(),(0,g.guardrail_chain_add_schema)(this._handle,JSON.stringify(e)),this}list(){return this.assertNotDisposed(),(0,g.guardrail_chain_list)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,g.destroy_guardrail_chain)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("GuardrailChain has been destroyed")}};var _=require("gauss-napi"),ke=class{_handle;disposed=!1;constructor(){this._handle=(0,_.create_approval_manager)()}get handle(){return this._handle}request(e,t,r){return this.assertNotDisposed(),(0,_.approval_request)(this._handle,e,JSON.stringify(t),r)}approve(e,t){this.assertNotDisposed(),(0,_.approval_approve)(this._handle,e,t?JSON.stringify(t):void 0)}deny(e,t){this.assertNotDisposed(),(0,_.approval_deny)(this._handle,e,t)}listPending(){return this.assertNotDisposed(),(0,_.approval_list_pending)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,_.destroy_approval_manager)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("ApprovalManager has been destroyed")}};var O=require("gauss-napi"),_e=class{_handle;disposed=!1;constructor(){this._handle=(0,O.create_checkpoint_store)()}get handle(){return this._handle}async save(e){return this.assertNotDisposed(),(0,O.checkpoint_save)(this._handle,JSON.stringify(e))}async load(e){return this.assertNotDisposed(),(0,O.checkpoint_load)(this._handle,e)}async loadLatest(e){return this.assertNotDisposed(),(0,O.checkpoint_load_latest)(this._handle,e)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,O.destroy_checkpoint_store)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("CheckpointStore has been destroyed")}};var I=require("gauss-napi"),we=class{_handle;disposed=!1;constructor(e){this._handle=(0,I.create_eval_runner)(e)}get handle(){return this._handle}addScorer(e){return this.assertNotDisposed(),(0,I.eval_add_scorer)(this._handle,e),this}destroy(){if(!this.disposed){this.disposed=!0;try{(0,I.destroy_eval_runner)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("EvalRunner has been destroyed")}static loadDatasetJsonl(e){return(0,I.load_dataset_jsonl)(e)}static loadDatasetJson(e){return(0,I.load_dataset_json)(e)}};var w=require("gauss-napi"),Ce=class{_handle;disposed=!1;constructor(){this._handle=(0,w.create_telemetry)()}get handle(){return this._handle}recordSpan(e,t,r){this.assertNotDisposed();let n=typeof e=="string"?{name:e,span_type:"custom",start_ms:Date.now()-(t??0),duration_ms:t??0,attributes:r??{},status:"ok",children:[]}:e;(0,w.telemetry_record_span)(this._handle,JSON.stringify(n))}exportSpans(){return this.assertNotDisposed(),(0,w.telemetry_export_spans)(this._handle)}exportMetrics(){return this.assertNotDisposed(),(0,w.telemetry_export_metrics)(this._handle)}clear(){this.assertNotDisposed(),(0,w.telemetry_clear)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,w.destroy_telemetry)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("Telemetry has been destroyed")}};var Ae=require("fs"),Lt=require("http"),Ut=require("path");var M=require("gauss-napi"),Re=new Map;function Dt(s,e){Re.set(s,e)}function Ot(s){return Re.get(s)}function It(){Re.clear()}function Mt(s){return(0,M.count_tokens)(s)}function Nt(s,e){return(0,M.count_tokens_for_model)(s,e)}function Ht(s){return(0,M.count_message_tokens)(s)}function jt(s){return(0,M.get_context_window_size)(s)}function Se(s,e){let t=Re.get(s);if(t){let n=e.inputTokens*t.inputPerToken,o=e.outputTokens*t.outputPerToken,i=(e.reasoningTokens??0)*(t.reasoningPerToken??t.outputPerToken),a=(e.cacheReadTokens??0)*(t.cacheReadPerToken??t.inputPerToken*.5),l=(e.cacheCreationTokens??0)*(t.cacheCreationPerToken??t.inputPerToken*1.25);return{model:s,normalizedModel:s,currency:"USD",inputTokens:e.inputTokens,outputTokens:e.outputTokens,reasoningTokens:e.reasoningTokens??0,cacheReadTokens:e.cacheReadTokens??0,cacheCreationTokens:e.cacheCreationTokens??0,inputCostUsd:n,outputCostUsd:o,reasoningCostUsd:i,cacheReadCostUsd:a,cacheCreationCostUsd:l,totalCostUsd:n+o+i+a+l}}let r=(0,M.estimate_cost)(s,e.inputTokens,e.outputTokens,e.reasoningTokens,e.cacheReadTokens,e.cacheCreationTokens);return{model:String(r.model??s),normalizedModel:String(r.normalized_model??s),currency:String(r.currency??"USD"),inputTokens:Number(r.input_tokens??e.inputTokens),outputTokens:Number(r.output_tokens??e.outputTokens),reasoningTokens:Number(r.reasoning_tokens??e.reasoningTokens??0),cacheReadTokens:Number(r.cache_read_tokens??e.cacheReadTokens??0),cacheCreationTokens:Number(r.cache_creation_tokens??e.cacheCreationTokens??0),inputCostUsd:Number(r.input_cost_usd??0),outputCostUsd:Number(r.output_cost_usd??0),reasoningCostUsd:Number(r.reasoning_cost_usd??0),cacheReadCostUsd:Number(r.cache_read_cost_usd??0),cacheCreationCostUsd:Number(r.cache_creation_cost_usd??0),totalCostUsd:Number(r.total_cost_usd??0)}}var L=class extends Error{},Pr=["openai","anthropic","google","groq","ollama","deepseek","openrouter","together","fireworks","mistral","perplexity","xai"],Ee=class{telemetry;approvals;model;routingPolicy;authToken;authClaims;persistPath;historyLimit;streamReplayLimit;context;latestCost=null;history=[];nextStreamEventId=1;streamEvents=[];explainTraces=[];nextExplainTraceId=1;latestExplainTraceId=null;policyLifecycleVersions=[];nextPolicyLifecycleVersion=1;activePolicyVersionId=null;server=null;constructor(e={}){this.telemetry=e.telemetry,this.approvals=e.approvals,this.model=e.model??"gpt-5.2",this.routingPolicy=e.routingPolicy,this.authToken=e.authToken,this.authClaims=e.authClaims,this.persistPath=e.persistPath,this.historyLimit=e.historyLimit??200,this.streamReplayLimit=e.streamReplayLimit??500,this.context={...e.context??{}}}withModel(e){return this.model=e,this}withRoutingPolicy(e){return this.routingPolicy=e,this}withAuthToken(e){return this.authToken=e,this}withAuthClaims(e){return this.authClaims=e,this}withContext(e){return this.assertContextAllowed(e),this.context={...e},this}setCostUsage(e){return this.latestCost=Se(this.model,e),this}snapshot(e){let t=this.captureSnapshot();return e?{generatedAt:t.generatedAt,context:t.context,[e]:t[e]}:t}getHistory(e){return this.filterHistory(e)}getTimeline(e){return this.filterHistory(e).map(t=>({generatedAt:t.generatedAt,spanCount:Array.isArray(t.spans)?t.spans.length:0,pendingApprovalsCount:Array.isArray(t.pendingApprovals)?t.pendingApprovals.length:0,totalCostUsd:t.latestCost?.totalCostUsd??0,latestExplainTraceId:t.latestExplainTraceId}))}getDag(e){let t=this.filterHistory(e),r=t[t.length-1];if(!r||!Array.isArray(r.spans))return{nodes:[],edges:[]};let n=r.spans.map((i,a)=>({id:String(a),label:this.spanLabel(i,a)})),o=n.slice(1).map((i,a)=>({from:String(a),to:i.id}));return{nodes:n,edges:o}}async startServer(e="127.0.0.1",t=4200){if(this.server){let n=this.server.address();return n&&typeof n!="string"?{url:`http://${e}:${n.port}`}:{url:`http://${e}:${t}`}}this.server=(0,Lt.createServer)((n,o)=>{if(!n.url){o.statusCode=400,o.end("Bad request");return}let i=new URL(n.url,`http://${n.headers.host??`${e}:${t}`}`),a=i.pathname;if(a.startsWith("/api/")&&!this.isAuthorized(n,i)){o.statusCode=401,o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify({error:"Unauthorized"}));return}try{if(a==="/api/snapshot"){let l=i.searchParams.get("section"),p=l?this.snapshot(this.parseSection(l)):this.snapshot();o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(p,null,2));return}if(a==="/api/history"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.getHistory(l),null,2));return}if(a==="/api/timeline"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.getTimeline(l),null,2));return}if(a==="/api/dag"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.getDag(l),null,2));return}if(a==="/api/ops/capabilities"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsCapabilities(),null,2));return}if(a==="/api/ops/health"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsHealth(),null,2));return}if(a==="/api/ops/summary"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsSummary(l),null,2));return}if(a==="/api/ops/tenants"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams));o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsTenants(l),null,2));return}if(a==="/api/ops/policy/explain"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplain(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/batch"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainBatch(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/simulate"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainSimulation(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/diff"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainDiff(i.searchParams),null,2));return}if(a==="/api/ops/policy/explain/traces"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyExplainTraces(i.searchParams),null,2));return}if(a==="/api/ops/policy/lifecycle/draft"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyLifecycleDraft(i.searchParams),null,2));return}if(a==="/api/ops/policy/lifecycle/validate"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyLifecycleValidate(i.searchParams),null,2));return}if(a==="/api/ops/policy/lifecycle/approve"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyLifecycleApprove(i.searchParams),null,2));return}if(a==="/api/ops/policy/lifecycle/promote"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyLifecyclePromote(i.searchParams),null,2));return}if(a==="/api/ops/policy/lifecycle/versions"){o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify(this.opsPolicyLifecycleVersions(),null,2));return}if(a==="/api/stream"){let l=this.applyAuthClaims(this.parseContextFilters(i.searchParams)),p=this.parseStreamChannels(i.searchParams);for(let lr of p)this.assertChannelAllowed(lr);let d=i.searchParams.get("once")==="1",c=this.parseLastEventId(n,i.searchParams);o.statusCode=200,o.setHeader("Content-Type","text/event-stream; charset=utf-8"),o.setHeader("Cache-Control","no-cache"),o.setHeader("Connection","keep-alive");let y=this.replayStreamEvents(o,p,l,c);if(d&&y>0){o.end();return}if(this.emitStreamBatch(o,p,l),d){o.end();return}let m=setInterval(()=>{o.writableEnded||o.destroyed||this.emitStreamBatch(o,p,l)},1e3),Z=()=>clearInterval(m);n.on("close",Z),n.on("aborted",Z);return}if(a==="/"){o.setHeader("Content-Type","text/html; charset=utf-8"),o.end(this.renderDashboardHtml());return}if(a==="/ops"){o.setHeader("Content-Type","text/html; charset=utf-8"),o.end(this.renderHostedOpsHtml());return}if(a==="/ops/tenants"){o.setHeader("Content-Type","text/html; charset=utf-8"),o.end(this.renderHostedTenantOpsHtml());return}o.statusCode=404,o.end("Not found")}catch(l){if(l instanceof L){o.statusCode=403,o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify({error:l.message}));return}let p=l instanceof Error?l.message:"Internal error";o.statusCode=500,o.setHeader("Content-Type","application/json; charset=utf-8"),o.end(JSON.stringify({error:p}))}}),await new Promise((n,o)=>{this.server.once("error",o),this.server.listen(t,e,()=>n())});let r=this.server.address();return!r||typeof r=="string"?{url:`http://${e}:${t}`}:{url:`http://${e}:${r.port}`}}async stopServer(){if(!this.server)return;let e=this.server;this.server=null,await new Promise((t,r)=>{e.close(n=>n?r(n):t())})}destroy(){this.stopServer()}[Symbol.dispose](){this.destroy()}captureSnapshot(){this.assertContextAllowed(this.context);let e={generatedAt:new Date().toISOString(),context:{...this.context},spans:this.telemetry?.exportSpans()??[],metrics:this.telemetry?.exportMetrics()??{},pendingApprovals:this.approvals?.listPending()??[],latestCost:this.latestCost,latestExplainTraceId:this.latestExplainTraceId};return this.history.push(e),this.history.length>this.historyLimit&&this.history.shift(),this.persistPath&&((0,Ae.mkdirSync)((0,Ut.dirname)(this.persistPath),{recursive:!0}),(0,Ae.appendFileSync)(this.persistPath,`${JSON.stringify(e)}
21
+ `,"utf8")),e}parseSection(e){if(e==="spans"||e==="metrics"||e==="pendingApprovals"||e==="latestCost")return e;throw new u(`Unknown section "${e}"`,"section")}parseStreamChannel(e){if(e===null||e==="snapshot")return"snapshot";if(e==="timeline"||e==="dag")return e;throw new u(`Unknown stream channel "${e}"`,"channel")}parseStreamChannels(e){let t=e.get("channels");if(!t)return[this.parseStreamChannel(e.get("channel"))];let r=t.split(",").map(n=>n.trim()).filter(n=>n.length>0).map(n=>this.parseStreamChannel(n));return r.length===0?["snapshot"]:[...new Set(r)]}parseLastEventId(e,t){let r=t.get("lastEventId"),n=e.headers["last-event-id"],o=r??(typeof n=="string"?n:null);if(o===null)return null;let i=Number.parseInt(o,10);if(!Number.isFinite(i)||i<0)throw new u(`Invalid lastEventId "${o}"`,"lastEventId");return i}parseContextFilters(e){return{tenantId:e.get("tenant")??void 0,sessionId:e.get("session")??void 0,runId:e.get("run")??void 0}}parsePolicyProvider(e){if(!Pr.includes(e))throw new u(`Unknown provider "${e}"`,"provider");return e}parseOptionalNumber(e,t){if(e===null||e.trim().length===0)return;let r=Number(e);if(!Number.isFinite(r))throw new u(`Invalid ${t} "${e}"`,t);return r}parsePolicyExplainScenario(e){let t=this.parsePolicyProvider(typeof e.provider=="string"&&e.provider.trim().length>0?e.provider:"openai"),r=typeof e.model=="string"&&e.model.trim().length>0?e.model:"gpt-5.2",n=Array.isArray(e.available)?e.available:typeof e.available=="string"?e.available.split(","):[],o=n.length>0?n.map(c=>String(c).trim()).filter(c=>c.length>0).map(c=>this.parsePolicyProvider(c)):void 0,i=Array.isArray(e.tags)?e.tags:typeof e.tags=="string"?e.tags.split(","):[],a=i.length>0?i.map(c=>String(c).trim()).filter(c=>c.length>0):void 0,l=this.parseOptionalNumber(e.cost!==void 0&&e.cost!==null?String(e.cost):null,"cost"),p=this.parseOptionalNumber(e.rpm!==void 0&&e.rpm!==null?String(e.rpm):null,"rpm"),d=this.parseOptionalNumber(e.hour!==void 0&&e.hour!==null?String(e.hour):null,"hour");return{provider:t,model:r,options:{availableProviders:o,estimatedCostUsd:l,currentRequestsPerMinute:p,currentHourUtc:d,governanceTags:a}}}parsePolicyExplainOptions(e){return this.parsePolicyExplainScenario({provider:e.get("provider"),model:e.get("model"),available:e.get("available"),cost:e.get("cost"),rpm:e.get("rpm"),hour:e.get("hour"),tags:e.get("tags")})}parsePolicyExplainBatchScenarios(e){let t=e.get("scenarios");if(!t)throw new u("Missing scenarios query parameter","scenarios");let r;try{r=JSON.parse(t)}catch{throw new u("Invalid scenarios JSON payload","scenarios")}if(!Array.isArray(r)||r.length===0)throw new u("scenarios must be a non-empty array","scenarios");return r.map((n,o)=>{if(typeof n!="object"||n===null)throw new u(`Scenario ${o} must be an object`,"scenarios");return this.parsePolicyExplainScenario(n)})}parseLifecyclePolicy(e){let t=e.get("policy");if(!t)throw new u("Missing policy query parameter","policy");let r;try{r=JSON.parse(t)}catch{throw new u("Invalid policy JSON payload","policy")}if(!r||typeof r!="object")throw new u("policy must be a JSON object","policy");return r}cloneRoutingPolicy(e){return JSON.parse(JSON.stringify(e))}summarizeLifecycleVersion(e){return{versionId:e.versionId,status:e.status,createdAt:e.createdAt,validatedAt:e.validatedAt,approvedAt:e.approvedAt,promotedAt:e.promotedAt,hasValidation:!!e.validation,validation:e.validation}}findLifecycleVersion(e){let t=this.policyLifecycleVersions.find(r=>r.versionId===e);if(!t)throw new u(`Unknown lifecycle version "${e}"`,"version");return t}opsPolicyLifecycleDraft(e){let t=new Date().toISOString(),r={versionId:`policy-v${this.nextPolicyLifecycleVersion++}`,status:"draft",createdAt:t,policy:this.cloneRoutingPolicy(this.parseLifecyclePolicy(e))};return this.policyLifecycleVersions.push(r),{ok:!0,version:this.summarizeLifecycleVersion(r)}}opsPolicyLifecycleValidate(e){let t=e.get("version");if(!t)throw new u("Missing version query parameter","version");let r=this.findLifecycleVersion(t),n=this.parsePolicyExplainBatchScenarios(e).map(i=>({provider:i.provider,model:i.model,options:i.options})),o=ie(r.policy,n);return r.validation=o,o.failed===0&&(r.status="validated",r.validatedAt=new Date().toISOString()),{ok:o.failed===0,version:this.summarizeLifecycleVersion(r),validation:o}}opsPolicyLifecycleApprove(e){let t=e.get("version");if(!t)throw new u("Missing version query parameter","version");let r=this.findLifecycleVersion(t);return!r.validation||r.validation.failed>0||r.status!=="validated"?{ok:!1,version:this.summarizeLifecycleVersion(r),error:"version must pass validation before approval"}:(r.status="approved",r.approvedAt=new Date().toISOString(),{ok:!0,version:this.summarizeLifecycleVersion(r)})}opsPolicyLifecyclePromote(e){let t=e.get("version");if(!t)throw new u("Missing version query parameter","version");let r=this.findLifecycleVersion(t);if(r.status!=="approved")return{ok:!1,activeVersionId:this.activePolicyVersionId,version:this.summarizeLifecycleVersion(r),error:"version must be approved before promotion"};for(let n of this.policyLifecycleVersions)n.versionId!==t&&n.status==="promoted"&&(n.status="approved");return r.status="promoted",r.promotedAt=new Date().toISOString(),this.activePolicyVersionId=r.versionId,this.routingPolicy=this.cloneRoutingPolicy(r.policy),{ok:!0,activeVersionId:this.activePolicyVersionId,version:this.summarizeLifecycleVersion(r)}}opsPolicyLifecycleVersions(){return{ok:!0,activeVersionId:this.activePolicyVersionId,versions:this.policyLifecycleVersions.map(e=>this.summarizeLifecycleVersion(e))}}buildStreamEvent(e,t,r){let n=e==="timeline"?this.getTimeline(t):e==="dag"?this.getDag(t):this.filterHistory(t).slice(-1)[0]??r,o={id:this.nextStreamEventId++,event:e,generatedAt:r.generatedAt,context:{...r.context},payload:n};return this.streamEvents.push(o),this.streamEvents.length>this.streamReplayLimit&&this.streamEvents.shift(),o}writeSseEvent(e,t){e.write(`id: ${t.id}
22
22
  `),e.write(`event: ${t.event}
23
23
  `),e.write(`data: ${JSON.stringify(t)}
24
24
 
25
- `)}opsCapabilities(){return{sections:["spans","metrics","pendingApprovals","latestCost"],channels:["snapshot","timeline","dag"],supportsMultiplex:!0,supportsReplayCursor:!0,supportsChannelRbac:!0,supportsOpsSummary:!0,supportsOpsTenants:!0,supportsPolicyExplain:!0,supportsPolicyExplainBatch:!0,supportsPolicyExplainTraces:!0,supportsPolicyExplainDiff:!0,hostedDashboardPath:"/ops",hostedTenantDashboardPath:"/ops/tenants",policyExplainPath:"/api/ops/policy/explain",policyExplainBatchPath:"/api/ops/policy/explain/batch",policyExplainSimulatePath:"/api/ops/policy/explain/simulate",policyExplainTracePath:"/api/ops/policy/explain/traces",policyExplainDiffPath:"/api/ops/policy/explain/diff"}}opsHealth(){return{status:"ok",generatedAt:new Date().toISOString(),historySize:this.history.length,streamBufferSize:this.streamEvents.length}}opsSummary(e){let t=this.filterHistory(e),r=t[t.length-1],s=r?.spans,o=r?.pendingApprovals,i=e&&(e.tenantId||e.sessionId||e.runId)?this.streamEvents.filter(p=>this.matchesContext(p.context,e)).length:this.streamEvents.length,a=new Set,l=new Set,d=new Set;for(let p of t)p.context.tenantId&&a.add(p.context.tenantId),p.context.sessionId&&l.add(p.context.sessionId),p.context.runId&&d.add(p.context.runId);return{status:"ok",generatedAt:new Date().toISOString(),historySize:t.length,streamBufferSize:i,spansCount:Array.isArray(s)?s.length:0,pendingApprovalsCount:Array.isArray(o)?o.length:0,latestTotalCostUsd:r?.latestCost?.totalCostUsd??0,tenantCount:a.size,sessionCount:l.size,runCount:d.size}}opsTenants(e){let t=this.filterHistory(e),r=new Map;for(let s of t){let o=s.context.tenantId??"_unscoped",i=r.get(o)??{snapshotCount:0,spansCount:0,pendingApprovalsCount:0,latestTotalCostUsd:0,latestGeneratedAt:s.generatedAt,sessions:new Set,runs:new Set};i.snapshotCount+=1,i.spansCount+=Array.isArray(s.spans)?s.spans.length:0,i.pendingApprovalsCount+=Array.isArray(s.pendingApprovals)?s.pendingApprovals.length:0,s.latestCost?.totalCostUsd!==void 0&&(i.latestTotalCostUsd=s.latestCost.totalCostUsd),s.generatedAt>=i.latestGeneratedAt&&(i.latestGeneratedAt=s.generatedAt),s.context.sessionId&&i.sessions.add(s.context.sessionId),s.context.runId&&i.runs.add(s.context.runId),r.set(o,i)}return[...r.entries()].map(([s,o])=>({tenantId:s,snapshotCount:o.snapshotCount,spansCount:o.spansCount,pendingApprovalsCount:o.pendingApprovalsCount,latestTotalCostUsd:o.latestTotalCostUsd,sessionCount:o.sessions.size,runCount:o.runs.size,latestGeneratedAt:o.latestGeneratedAt})).sort((s,o)=>s.tenantId.localeCompare(o.tenantId))}recordPolicyExplainTrace(e,t){let r={traceId:`trace-${this.nextExplainTraceId++}`,generatedAt:new Date().toISOString(),mode:e,payload:t};return this.latestExplainTraceId=r.traceId,this.explainTraces.push(r),this.explainTraces.length>this.historyLimit&&this.explainTraces.shift(),r}opsPolicyExplain(e){let t=this.parsePolicyExplainOptions(e),r=H(this.routingPolicy,t.provider,t.model,t.options),s=this.recordPolicyExplainTrace("single",{input:{provider:t.provider,model:t.model,options:t.options},explanation:r});return{...r,traceId:s.traceId}}opsPolicyExplainBatch(e){let t=this.parsePolicyExplainBatchScenarios(e),r=this.buildPolicyExplainBatchResponse(t),s=this.recordPolicyExplainTrace("batch",r);return{...r,traceId:s.traceId}}buildPolicyExplainBatchResponse(e){let t=e.map((s,o)=>({index:o,input:{provider:s.provider,model:s.model},explanation:H(this.routingPolicy,s.provider,s.model,s.options)})),r=t.filter(s=>s.explanation.ok).length;return{ok:!0,total:t.length,passed:r,failed:t.length-r,results:t}}opsPolicyExplainSimulation(e){let t=this.parsePolicyExplainBatchScenarios(e),r=this.buildPolicyExplainBatchResponse(t),s=this.recordPolicyExplainTrace("simulate",r);return{...r,traceId:s.traceId}}opsPolicyExplainDiff(e){let t=this.parsePolicyExplainBatchScenarios(e),r=ie(this.routingPolicy,t,void 0),s={ok:!0,total:r.total,baselinePassed:r.baselinePassed,candidatePassed:r.candidatePassed,changed:r.changed,regressions:r.regressions,results:r.results},o=this.recordPolicyExplainTrace("diff",s);return{...s,traceId:o.traceId}}opsPolicyExplainTraces(e){let t=e.get("traceId"),r=t?this.explainTraces.filter(s=>s.traceId===t):this.explainTraces;return{total:r.length,traces:r}}emitStreamBatch(e,t,r){let s=this.captureSnapshot();for(let o of t)this.writeSseEvent(e,this.buildStreamEvent(o,r,s))}replayStreamEvents(e,t,r,s){if(s===null)return 0;let o=0;for(let i of this.streamEvents)i.id<=s||t.includes(i.event)&&this.matchesContext(i.context,r)&&(this.writeSseEvent(e,i),o+=1);return o}assertChannelAllowed(e){let t=(this.authClaims?.roles??[]).map(r=>r.toLowerCase());if(t.length!==0&&!(t.includes("admin")||t.includes("operator"))&&!((e==="snapshot"||e==="timeline")&&(t.includes("viewer")||t.includes("reader"))))throw new U(`Forbidden stream channel "${e}"`)}applyAuthClaims(e){if(!this.authClaims)return e;let t={...e};if(this.authClaims.tenantId){if(t.tenantId&&t.tenantId!==this.authClaims.tenantId)throw new U("Forbidden tenant scope");t.tenantId??=this.authClaims.tenantId}let r=this.authClaims.allowedSessionIds??[];if(t.sessionId&&r.length>0&&!r.includes(t.sessionId))throw new U("Forbidden session scope");!t.sessionId&&r.length===1&&(t.sessionId=r[0]);let s=this.authClaims.allowedRunIds??[];if(t.runId&&s.length>0&&!s.includes(t.runId))throw new U("Forbidden run scope");return!t.runId&&s.length===1&&(t.runId=s[0]),t}assertContextAllowed(e){this.authClaims&&this.applyAuthClaims(e)}filterHistory(e){return!e||!e.tenantId&&!e.sessionId&&!e.runId?[...this.history]:this.history.filter(t=>this.matchesContext(t.context,e))}matchesContext(e,t){return!(t.tenantId&&e.tenantId!==t.tenantId||t.sessionId&&e.sessionId!==t.sessionId||t.runId&&e.runId!==t.runId)}spanLabel(e,t){if(e&&typeof e=="object"){let r=e;if(typeof r.name=="string")return r.name;if(typeof r.span_name=="string")return r.span_name}return`span-${t+1}`}isAuthorized(e,t){if(!this.authToken)return!0;let r=e.headers.authorization,s=typeof r=="string"&&r===`Bearer ${this.authToken}`,o=e.headers["x-gauss-token"],i=typeof o=="string"&&o===this.authToken,a=t.searchParams.get("token")===this.authToken;return s||i||a}renderDashboardHtml(){return`<!doctype html>
25
+ `)}opsCapabilities(){return{sections:["spans","metrics","pendingApprovals","latestCost"],channels:["snapshot","timeline","dag"],supportsMultiplex:!0,supportsReplayCursor:!0,supportsChannelRbac:!0,supportsOpsSummary:!0,supportsOpsTenants:!0,supportsPolicyExplain:!0,supportsPolicyExplainBatch:!0,supportsPolicyExplainTraces:!0,supportsPolicyExplainDiff:!0,supportsPolicyLifecycle:!0,hostedDashboardPath:"/ops",hostedTenantDashboardPath:"/ops/tenants",policyExplainPath:"/api/ops/policy/explain",policyExplainBatchPath:"/api/ops/policy/explain/batch",policyExplainSimulatePath:"/api/ops/policy/explain/simulate",policyExplainTracePath:"/api/ops/policy/explain/traces",policyExplainDiffPath:"/api/ops/policy/explain/diff",policyLifecycleBasePath:"/api/ops/policy/lifecycle"}}opsHealth(){return{status:"ok",generatedAt:new Date().toISOString(),historySize:this.history.length,streamBufferSize:this.streamEvents.length}}opsSummary(e){let t=this.filterHistory(e),r=t[t.length-1],n=r?.spans,o=r?.pendingApprovals,i=e&&(e.tenantId||e.sessionId||e.runId)?this.streamEvents.filter(d=>this.matchesContext(d.context,e)).length:this.streamEvents.length,a=new Set,l=new Set,p=new Set;for(let d of t)d.context.tenantId&&a.add(d.context.tenantId),d.context.sessionId&&l.add(d.context.sessionId),d.context.runId&&p.add(d.context.runId);return{status:"ok",generatedAt:new Date().toISOString(),historySize:t.length,streamBufferSize:i,spansCount:Array.isArray(n)?n.length:0,pendingApprovalsCount:Array.isArray(o)?o.length:0,latestTotalCostUsd:r?.latestCost?.totalCostUsd??0,tenantCount:a.size,sessionCount:l.size,runCount:p.size}}opsTenants(e){let t=this.filterHistory(e),r=new Map;for(let n of t){let o=n.context.tenantId??"_unscoped",i=r.get(o)??{snapshotCount:0,spansCount:0,pendingApprovalsCount:0,latestTotalCostUsd:0,latestGeneratedAt:n.generatedAt,sessions:new Set,runs:new Set};i.snapshotCount+=1,i.spansCount+=Array.isArray(n.spans)?n.spans.length:0,i.pendingApprovalsCount+=Array.isArray(n.pendingApprovals)?n.pendingApprovals.length:0,n.latestCost?.totalCostUsd!==void 0&&(i.latestTotalCostUsd=n.latestCost.totalCostUsd),n.generatedAt>=i.latestGeneratedAt&&(i.latestGeneratedAt=n.generatedAt),n.context.sessionId&&i.sessions.add(n.context.sessionId),n.context.runId&&i.runs.add(n.context.runId),r.set(o,i)}return[...r.entries()].map(([n,o])=>({tenantId:n,snapshotCount:o.snapshotCount,spansCount:o.spansCount,pendingApprovalsCount:o.pendingApprovalsCount,latestTotalCostUsd:o.latestTotalCostUsd,sessionCount:o.sessions.size,runCount:o.runs.size,latestGeneratedAt:o.latestGeneratedAt})).sort((n,o)=>n.tenantId.localeCompare(o.tenantId))}recordPolicyExplainTrace(e,t){let r={traceId:`trace-${this.nextExplainTraceId++}`,generatedAt:new Date().toISOString(),mode:e,payload:t};return this.latestExplainTraceId=r.traceId,this.explainTraces.push(r),this.explainTraces.length>this.historyLimit&&this.explainTraces.shift(),r}opsPolicyExplain(e){let t=this.parsePolicyExplainOptions(e),r=H(this.routingPolicy,t.provider,t.model,t.options),n=this.recordPolicyExplainTrace("single",{input:{provider:t.provider,model:t.model,options:t.options},explanation:r});return{...r,traceId:n.traceId}}opsPolicyExplainBatch(e){let t=this.parsePolicyExplainBatchScenarios(e),r=this.buildPolicyExplainBatchResponse(t),n=this.recordPolicyExplainTrace("batch",r);return{...r,traceId:n.traceId}}buildPolicyExplainBatchResponse(e){let t=e.map((n,o)=>({index:o,input:{provider:n.provider,model:n.model},explanation:H(this.routingPolicy,n.provider,n.model,n.options)})),r=t.filter(n=>n.explanation.ok).length;return{ok:!0,total:t.length,passed:r,failed:t.length-r,results:t}}opsPolicyExplainSimulation(e){let t=this.parsePolicyExplainBatchScenarios(e),r=this.buildPolicyExplainBatchResponse(t),n=this.recordPolicyExplainTrace("simulate",r);return{...r,traceId:n.traceId}}opsPolicyExplainDiff(e){let t=this.parsePolicyExplainBatchScenarios(e),r=ae(this.routingPolicy,t,void 0),n={ok:!0,total:r.total,baselinePassed:r.baselinePassed,candidatePassed:r.candidatePassed,changed:r.changed,regressions:r.regressions,results:r.results},o=this.recordPolicyExplainTrace("diff",n);return{...n,traceId:o.traceId}}opsPolicyExplainTraces(e){let t=e.get("traceId"),r=t?this.explainTraces.filter(n=>n.traceId===t):this.explainTraces;return{total:r.length,traces:r}}emitStreamBatch(e,t,r){let n=this.captureSnapshot();for(let o of t)this.writeSseEvent(e,this.buildStreamEvent(o,r,n))}replayStreamEvents(e,t,r,n){if(n===null)return 0;let o=0;for(let i of this.streamEvents)i.id<=n||t.includes(i.event)&&this.matchesContext(i.context,r)&&(this.writeSseEvent(e,i),o+=1);return o}assertChannelAllowed(e){let t=(this.authClaims?.roles??[]).map(r=>r.toLowerCase());if(t.length!==0&&!(t.includes("admin")||t.includes("operator"))&&!((e==="snapshot"||e==="timeline")&&(t.includes("viewer")||t.includes("reader"))))throw new L(`Forbidden stream channel "${e}"`)}applyAuthClaims(e){if(!this.authClaims)return e;let t={...e};if(this.authClaims.tenantId){if(t.tenantId&&t.tenantId!==this.authClaims.tenantId)throw new L("Forbidden tenant scope");t.tenantId??=this.authClaims.tenantId}let r=this.authClaims.allowedSessionIds??[];if(t.sessionId&&r.length>0&&!r.includes(t.sessionId))throw new L("Forbidden session scope");!t.sessionId&&r.length===1&&(t.sessionId=r[0]);let n=this.authClaims.allowedRunIds??[];if(t.runId&&n.length>0&&!n.includes(t.runId))throw new L("Forbidden run scope");return!t.runId&&n.length===1&&(t.runId=n[0]),t}assertContextAllowed(e){this.authClaims&&this.applyAuthClaims(e)}filterHistory(e){return!e||!e.tenantId&&!e.sessionId&&!e.runId?[...this.history]:this.history.filter(t=>this.matchesContext(t.context,e))}matchesContext(e,t){return!(t.tenantId&&e.tenantId!==t.tenantId||t.sessionId&&e.sessionId!==t.sessionId||t.runId&&e.runId!==t.runId)}spanLabel(e,t){if(e&&typeof e=="object"){let r=e;if(typeof r.name=="string")return r.name;if(typeof r.span_name=="string")return r.span_name}return`span-${t+1}`}isAuthorized(e,t){if(!this.authToken)return!0;let r=e.headers.authorization,n=typeof r=="string"&&r===`Bearer ${this.authToken}`,o=e.headers["x-gauss-token"],i=typeof o=="string"&&o===this.authToken,a=t.searchParams.get("token")===this.authToken;return n||i||a}renderDashboardHtml(){return`<!doctype html>
26
26
  <html lang="en">
27
27
  <head>
28
28
  <meta charset="utf-8" />
@@ -163,24 +163,24 @@ ${i}`:i,c=await d.agent.run(p),y={text:c.text,...c.structuredOutput?{structuredO
163
163
  refresh();
164
164
  </script>
165
165
  </body>
166
- </html>`}};var z=require("gauss-napi");function Lt(n){return(0,z.create_fallback_provider)(n)}function Jt(n,e,t){return(0,z.create_circuit_breaker)(n,e,t)}function et(n,e,t){return(0,z.create_resilient_provider)(n,e,t)}function $t(n,e,t=!0){return et(n.handle,e.map(r=>r.handle),t)}var Ae=require("gauss-napi");function qt(n){return(0,Ae.agent_config_from_json)(n)}function Ft(n){return(0,Ae.agent_config_resolve_env)(n)}var K=require("gauss-napi"),De=class{_handle;disposed=!1;constructor(e){this._handle=(0,K.create_tool_validator)(e)}get handle(){return this._handle}validate(e,t){return this.assertNotDisposed(),JSON.parse((0,K.tool_validator_validate)(this._handle,JSON.stringify(e),JSON.stringify(t)))}destroy(){if(!this.disposed){this.disposed=!0;try{(0,K.destroy_tool_validator)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("ToolValidator has been destroyed")}};var Bt=require("gauss-napi");function zt(n){return(0,Bt.parse_partial_json)(n)}function Pr(n,e){let t;switch(n.backoff){case"fixed":t=n.baseDelayMs;break;case"linear":t=n.baseDelayMs*e;break;case"exponential":t=n.baseDelayMs*Math.pow(2,e-1);break}let r=t*n.jitter;return t+=Math.random()*r*2-r,Math.min(Math.max(0,t),n.maxDelayMs)}function br(n){return new Promise(e=>setTimeout(e,n))}async function tt(n,e){let t=e?.maxRetries??3,r=e?.backoff??"exponential",s=e?.baseDelayMs??1e3,o=e?.maxDelayMs??3e4,i=e?.jitter??.1,a=e?.retryIf,l=e?.onRetry,d;for(let p=0;p<=t;p++)try{return await n()}catch(c){if(d=c instanceof Error?c:new Error(String(c)),p===t||a&&!a(d,p+1))break;let y=Pr({backoff:r,baseDelayMs:s,maxDelayMs:o,jitter:i},p+1);l?.(d,p+1,y),await br(y)}throw d}function Kt(n,e){return t=>tt(()=>n.run(t),e)}function kr(n,e){let t=JSON.stringify(e,null,2);return`${n}
166
+ </html>`}};var V=require("gauss-napi");function Gt(s){return(0,V.create_fallback_provider)(s)}function Jt(s,e,t){return(0,V.create_circuit_breaker)(s,e,t)}function tt(s,e,t){return(0,V.create_resilient_provider)(s,e,t)}function $t(s,e,t=!0){return tt(s.handle,e.map(r=>r.handle),t)}var De=require("gauss-napi");function qt(s){return(0,De.agent_config_from_json)(s)}function Ft(s){return(0,De.agent_config_resolve_env)(s)}var z=require("gauss-napi"),Oe=class{_handle;disposed=!1;constructor(e){this._handle=(0,z.create_tool_validator)(e)}get handle(){return this._handle}validate(e,t){return this.assertNotDisposed(),JSON.parse((0,z.tool_validator_validate)(this._handle,JSON.stringify(e),JSON.stringify(t)))}destroy(){if(!this.disposed){this.disposed=!0;try{(0,z.destroy_tool_validator)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("ToolValidator has been destroyed")}};var Bt=require("gauss-napi");function Vt(s){return(0,Bt.parse_partial_json)(s)}function Tr(s,e){let t;switch(s.backoff){case"fixed":t=s.baseDelayMs;break;case"linear":t=s.baseDelayMs*e;break;case"exponential":t=s.baseDelayMs*Math.pow(2,e-1);break}let r=t*s.jitter;return t+=Math.random()*r*2-r,Math.min(Math.max(0,t),s.maxDelayMs)}function br(s){return new Promise(e=>setTimeout(e,s))}async function rt(s,e){let t=e?.maxRetries??3,r=e?.backoff??"exponential",n=e?.baseDelayMs??1e3,o=e?.maxDelayMs??3e4,i=e?.jitter??.1,a=e?.retryIf,l=e?.onRetry,p;for(let d=0;d<=t;d++)try{return await s()}catch(c){if(p=c instanceof Error?c:new Error(String(c)),d===t||a&&!a(p,d+1))break;let y=Tr({backoff:r,baseDelayMs:n,maxDelayMs:o,jitter:i},d+1);l?.(p,d+1,y),await br(y)}throw p}function zt(s,e){return t=>rt(()=>s.run(t),e)}function kr(s,e){let t=JSON.stringify(e,null,2);return`${s}
167
167
 
168
168
  Respond ONLY with valid JSON matching this schema:
169
169
  ${t}
170
170
 
171
- Do not include any text outside the JSON object.`}function _r(n){let e=n.match(/```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/);if(e)return e[1].trim();let t=n.indexOf("{"),r=n.indexOf("[");if(t===-1&&r===-1)return n.trim();let s=t===-1?r:r===-1?t:Math.min(t,r),i=n[s]==="["?"]":"}",a=0,l=!1,d=!1;for(let p=s;p<n.length;p++){let c=n[p];if(d){d=!1;continue}if(c==="\\"){d=!0;continue}if(c==='"'){l=!l;continue}if(!l&&(c===n[s]&&a++,c===i&&(a--,a===0)))return n.slice(s,p+1)}return n.slice(s)}async function Wt(n,e,t){let r=t.maxParseRetries??2,s=typeof e=="string"?kr(e,t.schema):e,o;for(let i=0;i<=r;i++){let a=i===0?s:typeof s=="string"?`${s}
171
+ Do not include any text outside the JSON object.`}function _r(s){let e=s.match(/```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/);if(e)return e[1].trim();let t=s.indexOf("{"),r=s.indexOf("[");if(t===-1&&r===-1)return s.trim();let n=t===-1?r:r===-1?t:Math.min(t,r),i=s[n]==="["?"]":"}",a=0,l=!1,p=!1;for(let d=n;d<s.length;d++){let c=s[d];if(p){p=!1;continue}if(c==="\\"){p=!0;continue}if(c==='"'){l=!l;continue}if(!l&&(c===s[n]&&a++,c===i&&(a--,a===0)))return s.slice(n,d+1)}return s.slice(n)}async function Kt(s,e,t){let r=t.maxParseRetries??2,n=typeof e=="string"?kr(e,t.schema):e,o;for(let i=0;i<=r;i++){let a=i===0?n:typeof n=="string"?`${n}
172
172
 
173
- Previous attempt failed: ${o?.message}. Please output ONLY valid JSON.`:s,l=await n.run(a);try{let d=_r(l.text);return{data:JSON.parse(d),raw:t.includeRaw?l:void 0}}catch(d){o=d instanceof Error?d:new Error(String(d))}}throw new Error(`Failed to extract structured output after ${r+1} attempts: ${o?.message}`)}var Vt=/\{\{(\w+)\}\}/g;function G(n){let e=[...new Set(Array.from(n.matchAll(Vt),r=>r[1]))],t=r=>n.replace(Vt,(s,o)=>{let i=r[o];if(i===void 0)throw new Error(`Missing template variable: {{${o}}}`);return i});return Object.defineProperty(t,"raw",{value:n,enumerable:!0}),Object.defineProperty(t,"variables",{value:e,enumerable:!0}),t}var Yt=G(`Summarize the following {{format}} in {{style}}:
173
+ Previous attempt failed: ${o?.message}. Please output ONLY valid JSON.`:n,l=await s.run(a);try{let p=_r(l.text);return{data:JSON.parse(p),raw:t.includeRaw?l:void 0}}catch(p){o=p instanceof Error?p:new Error(String(p))}}throw new Error(`Failed to extract structured output after ${r+1} attempts: ${o?.message}`)}var Wt=/\{\{(\w+)\}\}/g;function U(s){let e=[...new Set(Array.from(s.matchAll(Wt),r=>r[1]))],t=r=>s.replace(Wt,(n,o)=>{let i=r[o];if(i===void 0)throw new Error(`Missing template variable: {{${o}}}`);return i});return Object.defineProperty(t,"raw",{value:s,enumerable:!0}),Object.defineProperty(t,"variables",{value:e,enumerable:!0}),t}var Yt=U(`Summarize the following {{format}} in {{style}}:
174
174
 
175
- {{text}}`),Xt=G(`Translate the following text to {{language}}:
175
+ {{text}}`),Xt=U(`Translate the following text to {{language}}:
176
176
 
177
- {{text}}`),Qt=G("Review this {{language}} code for bugs, security issues, and best practices:\n\n```{{language}}\n{{code}}\n```"),Zt=G(`Classify the following text into one of these categories: {{categories}}
177
+ {{text}}`),Qt=U("Review this {{language}} code for bugs, security issues, and best practices:\n\n```{{language}}\n{{code}}\n```"),Zt=U(`Classify the following text into one of these categories: {{categories}}
178
178
 
179
179
  Text: {{text}}
180
180
 
181
- Respond with only the category name.`),er=G(`Extract the following information from the text: {{fields}}
181
+ Respond with only the category name.`),er=U(`Extract the following information from the text: {{fields}}
182
182
 
183
183
  Text: {{text}}
184
184
 
185
- Respond as JSON.`);var W=require("gauss-napi"),Y=class n{name;description;model;provider;instructions;tools;skills;capabilities;environment;metadata;constructor(e){this.name=e.name,this.description=e.description,this.model=e.model??void 0,this.provider=e.provider??void 0,this.instructions=e.instructions??void 0,this.tools=Object.freeze([...e.tools]),this.skills=Object.freeze([...e.skills]),this.capabilities=Object.freeze([...e.capabilities]),this.environment=new Map(e.environment),this.metadata=Object.freeze({...e.metadata})}static fromMarkdown(e){let t=(0,W.parseAgentsMd)(e),r=typeof t=="string"?JSON.parse(t):t;return new n(r)}hasTool(e){return this.tools.some(t=>t.name===e)}hasCapability(e){return this.capabilities.includes(e)}toJSON(){return{name:this.name,description:this.description,model:this.model,provider:this.provider,instructions:this.instructions,tools:[...this.tools],skills:[...this.skills],capabilities:[...this.capabilities],environment:[...this.environment.entries()],metadata:{...this.metadata}}}},Oe=class n{name;description;steps;inputs;outputs;constructor(e){this.name=e.name,this.description=e.description,this.steps=Object.freeze([...e.steps]),this.inputs=Object.freeze([...e.inputs]),this.outputs=Object.freeze([...e.outputs])}static fromMarkdown(e){let t=(0,W.parseSkillMd)(e),r=typeof t=="string"?JSON.parse(t):t;return new n(r)}get stepCount(){return this.steps.length}get requiredInputs(){return this.inputs.filter(e=>e.required)}toJSON(){return{name:this.name,description:this.description,steps:[...this.steps],inputs:[...this.inputs],outputs:[...this.outputs]}}};function tr(n){let e=(0,W.discoverAgents)(n);return(typeof e=="string"?JSON.parse(e):e).map(r=>Object.assign(Object.create(Y.prototype),{name:r.name,description:r.description,model:r.model??void 0,provider:r.provider??void 0,instructions:r.instructions??void 0,tools:Object.freeze([...r.tools]),skills:Object.freeze([...r.skills]),capabilities:Object.freeze([...r.capabilities]),environment:new Map(r.environment),metadata:Object.freeze({...r.metadata})}))}async function rr(n,...e){let t=n;for(let r of e)t=await r(t);return t}async function rt(n,e,t){let r=t?.concurrency??n.length,s=new Array(n.length),o=n.map((a,l)=>({item:a,index:l})),i=Array.from({length:Math.min(r,o.length)},async()=>{for(;o.length>0;){let a=o.shift();if(!a)break;s[a.index]=await e(a.item,a.index)}});return await Promise.all(i),s}async function nr(n,e,t){let r=await rt(n,e,t);return n.filter((s,o)=>r[o])}async function sr(n,e,t){let r=t;for(let s=0;s<n.length;s++)r=await e(r,n[s],s);return r}async function or(n,e){for(let t=0;t<n.length;t++)await e(n[t],t);return n}function ir(...n){return async e=>{let t=e;for(let r of n)t=await r(t);return t}}var nt=gr(require("gauss-napi"),1);function X(n){let e=nt[n];if(typeof e=="function")return e;let t=nt.default?.[n];if(typeof t=="function")return t;throw new TypeError(`gauss-napi is missing ${n}`)}function Q(n){let e=n instanceof Error?n.message:String(n);return e.includes("not available in this gauss-napi build")||e.includes("gauss-napi is missing")||e.includes("Invalid response: missing field")||e.includes("Invalid task response: missing field")||e.includes("Invalid cancel response: missing field")}var Me=class{baseUrl;authToken;rpcId=0;constructor(e){typeof e=="string"?this.baseUrl=e:(this.baseUrl=e.baseUrl,this.authToken=e.authToken)}async discover(){try{return await X("a2aDiscover")(this.baseUrl,this.authToken??void 0)}catch(e){if(!Q(e))throw e;let t=await fetch(`${this.baseUrl.replace(/\/+$/,"")}/.well-known/agent.json`,{method:"GET",headers:this.buildHeaders()});if(!t.ok)throw new Error(`A2A discover failed (${t.status})`);return await t.json()}}async sendMessage(e,t){let r;try{r=await X("a2aSendMessage")(this.baseUrl,this.authToken??void 0,JSON.stringify(e),t?JSON.stringify(t):void 0)}catch(i){if(!Q(i))throw i;r=await this.rpc("message/send",{message:e,config:t})}if(r._type==="task"){let{_type:i,...a}=r;return{type:"task",task:a}}let{_type:s,...o}=r;return{type:"message",message:o}}async ask(e){try{return await X("a2aAsk")(this.baseUrl,this.authToken??void 0,e)}catch(t){if(!Q(t))throw t;let r=await this.sendMessage(st(e));if(r.type==="message")return He(r.message);let s=Ie(r.task);if(s)return s;let o=await this.getTask(r.task.id);return Ie(o)??""}}async getTask(e,t){try{return await X("a2aGetTask")(this.baseUrl,this.authToken??void 0,e,t??void 0)}catch(r){if(!Q(r))throw r;return this.rpc("tasks/get",{id:e,historyLength:t??void 0})}}async cancelTask(e){try{return await X("a2aCancelTask")(this.baseUrl,this.authToken??void 0,e)}catch(t){if(!Q(t))throw t;return this.rpc("tasks/cancel",{id:e})}}buildHeaders(){let e={Accept:"application/json"};return this.authToken&&(e.Authorization=`Bearer ${this.authToken}`),e}async rpc(e,t){let r=await fetch(this.baseUrl,{method:"POST",headers:{...this.buildHeaders(),"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:++this.rpcId,method:e,params:t})});if(!r.ok)throw new Error(`A2A request failed (${r.status})`);let s=await r.json();if(s.error)throw new Error(s.error.message??`A2A RPC error (${s.error.code??"unknown"})`);return s.result}};function Ne(n,e){return{role:n,parts:[{type:"text",text:e}]}}function st(n){return Ne("user",n)}function ar(n){return Ne("agent",n)}function He(n){return n.parts.filter(e=>e.type==="text"&&e.text).map(e=>e.text).join("")}function Ie(n){if(n.status.message)return He(n.status.message)}var C=require("gauss-napi"),je=class{_handle;disposed=!1;constructor(){this._handle=(0,C.createToolRegistry)()}get handle(){return this._handle}add(e){return this.assertNotDisposed(),(0,C.toolRegistryAdd)(this._handle,JSON.stringify(e)),this}search(e){return this.assertNotDisposed(),(0,C.toolRegistrySearch)(this._handle,e)}byTag(e){return this.assertNotDisposed(),(0,C.toolRegistryByTag)(this._handle,e)}list(){return this.assertNotDisposed(),(0,C.toolRegistryList)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,C.destroyToolRegistry)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("ToolRegistry has been destroyed")}};0&&(module.exports={A2aClient,ANTHROPIC_DEFAULT,ANTHROPIC_FAST,ANTHROPIC_PREMIUM,Agent,AgentSpec,AgentStream,ApprovalManager,CheckpointStore,ControlPlane,DEEPSEEK_DEFAULT,DEEPSEEK_REASONING,DisposedError,EvalRunner,FIREWORKS_DEFAULT,GOOGLE_DEFAULT,GOOGLE_IMAGE,GOOGLE_PREMIUM,GaussError,Graph,GuardrailChain,MISTRAL_DEFAULT,McpClient,McpServer,Memory,MiddlewareChain,Network,OPENAI_DEFAULT,OPENAI_FAST,OPENAI_IMAGE,OPENAI_REASONING,OPENROUTER_DEFAULT,PERPLEXITY_DEFAULT,PROVIDER_DEFAULTS,PluginRegistry,ProviderError,SkillSpec,TOGETHER_DEFAULT,Team,Telemetry,TextSplitter,ToolExecutionError,ToolRegistry,ToolValidator,ValidationError,VectorStore,Workflow,XAI_DEFAULT,agentMessage,applyGovernancePack,availableRuntimes,batch,classify,clearPricing,codeReview,compose,countMessageTokens,countTokens,countTokensForModel,createCircuitBreaker,createFallbackProvider,createResilientAgent,createResilientProvider,createToolExecutor,defaultModel,detectProvider,discoverAgents,enforceRoutingCostLimit,enforceRoutingGovernance,enforceRoutingRateLimit,enforceRoutingTimeWindow,enterprisePreset,enterpriseRun,estimateCost,evaluatePolicyDiff,evaluatePolicyGate,evaluatePolicyRolloutGuardrails,executeCode,explainRoutingTarget,extract,extractText,filterAsync,gauss,generateImage,getContextWindowSize,getPricing,governancePolicyPack,isTypedTool,loadJson,loadMarkdown,loadText,mapAsync,parseAgentConfig,parsePartialJson,pipe,reduceAsync,resolveApiKey,resolveEnv,resolveFallbackProvider,resolveRoutingTarget,retryable,setPricing,splitText,structured,summarize,tapAsync,taskText,template,textMessage,tool,translate,userMessage,version,withRetry});
185
+ Respond as JSON.`);var K=require("gauss-napi"),Y=class s{name;description;model;provider;instructions;tools;skills;capabilities;environment;metadata;constructor(e){this.name=e.name,this.description=e.description,this.model=e.model??void 0,this.provider=e.provider??void 0,this.instructions=e.instructions??void 0,this.tools=Object.freeze([...e.tools]),this.skills=Object.freeze([...e.skills]),this.capabilities=Object.freeze([...e.capabilities]),this.environment=new Map(e.environment),this.metadata=Object.freeze({...e.metadata})}static fromMarkdown(e){let t=(0,K.parseAgentsMd)(e),r=typeof t=="string"?JSON.parse(t):t;return new s(r)}hasTool(e){return this.tools.some(t=>t.name===e)}hasCapability(e){return this.capabilities.includes(e)}toJSON(){return{name:this.name,description:this.description,model:this.model,provider:this.provider,instructions:this.instructions,tools:[...this.tools],skills:[...this.skills],capabilities:[...this.capabilities],environment:[...this.environment.entries()],metadata:{...this.metadata}}}},Ie=class s{name;description;steps;inputs;outputs;constructor(e){this.name=e.name,this.description=e.description,this.steps=Object.freeze([...e.steps]),this.inputs=Object.freeze([...e.inputs]),this.outputs=Object.freeze([...e.outputs])}static fromMarkdown(e){let t=(0,K.parseSkillMd)(e),r=typeof t=="string"?JSON.parse(t):t;return new s(r)}get stepCount(){return this.steps.length}get requiredInputs(){return this.inputs.filter(e=>e.required)}toJSON(){return{name:this.name,description:this.description,steps:[...this.steps],inputs:[...this.inputs],outputs:[...this.outputs]}}};function tr(s){let e=(0,K.discoverAgents)(s);return(typeof e=="string"?JSON.parse(e):e).map(r=>Object.assign(Object.create(Y.prototype),{name:r.name,description:r.description,model:r.model??void 0,provider:r.provider??void 0,instructions:r.instructions??void 0,tools:Object.freeze([...r.tools]),skills:Object.freeze([...r.skills]),capabilities:Object.freeze([...r.capabilities]),environment:new Map(r.environment),metadata:Object.freeze({...r.metadata})}))}async function rr(s,...e){let t=s;for(let r of e)t=await r(t);return t}async function nt(s,e,t){let r=t?.concurrency??s.length,n=new Array(s.length),o=s.map((a,l)=>({item:a,index:l})),i=Array.from({length:Math.min(r,o.length)},async()=>{for(;o.length>0;){let a=o.shift();if(!a)break;n[a.index]=await e(a.item,a.index)}});return await Promise.all(i),n}async function nr(s,e,t){let r=await nt(s,e,t);return s.filter((n,o)=>r[o])}async function sr(s,e,t){let r=t;for(let n=0;n<s.length;n++)r=await e(r,s[n],n);return r}async function or(s,e){for(let t=0;t<s.length;t++)await e(s[t],t);return s}function ir(...s){return async e=>{let t=e;for(let r of s)t=await r(t);return t}}var st=gr(require("gauss-napi"),1);function X(s){let e=st[s];if(typeof e=="function")return e;let t=st.default?.[s];if(typeof t=="function")return t;throw new TypeError(`gauss-napi is missing ${s}`)}function Q(s){let e=s instanceof Error?s.message:String(s);return e.includes("not available in this gauss-napi build")||e.includes("gauss-napi is missing")||e.includes("Invalid response: missing field")||e.includes("Invalid task response: missing field")||e.includes("Invalid cancel response: missing field")}var Me=class{baseUrl;authToken;rpcId=0;constructor(e){typeof e=="string"?this.baseUrl=e:(this.baseUrl=e.baseUrl,this.authToken=e.authToken)}async discover(){try{return await X("a2aDiscover")(this.baseUrl,this.authToken??void 0)}catch(e){if(!Q(e))throw e;let t=await fetch(`${this.baseUrl.replace(/\/+$/,"")}/.well-known/agent.json`,{method:"GET",headers:this.buildHeaders()});if(!t.ok)throw new Error(`A2A discover failed (${t.status})`);return await t.json()}}async sendMessage(e,t){let r;try{r=await X("a2aSendMessage")(this.baseUrl,this.authToken??void 0,JSON.stringify(e),t?JSON.stringify(t):void 0)}catch(i){if(!Q(i))throw i;r=await this.rpc("message/send",{message:e,config:t})}if(r._type==="task"){let{_type:i,...a}=r;return{type:"task",task:a}}let{_type:n,...o}=r;return{type:"message",message:o}}async ask(e){try{return await X("a2aAsk")(this.baseUrl,this.authToken??void 0,e)}catch(t){if(!Q(t))throw t;let r=await this.sendMessage(ot(e));if(r.type==="message")return je(r.message);let n=Ne(r.task);if(n)return n;let o=await this.getTask(r.task.id);return Ne(o)??""}}async getTask(e,t){try{return await X("a2aGetTask")(this.baseUrl,this.authToken??void 0,e,t??void 0)}catch(r){if(!Q(r))throw r;return this.rpc("tasks/get",{id:e,historyLength:t??void 0})}}async cancelTask(e){try{return await X("a2aCancelTask")(this.baseUrl,this.authToken??void 0,e)}catch(t){if(!Q(t))throw t;return this.rpc("tasks/cancel",{id:e})}}buildHeaders(){let e={Accept:"application/json"};return this.authToken&&(e.Authorization=`Bearer ${this.authToken}`),e}async rpc(e,t){let r=await fetch(this.baseUrl,{method:"POST",headers:{...this.buildHeaders(),"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:++this.rpcId,method:e,params:t})});if(!r.ok)throw new Error(`A2A request failed (${r.status})`);let n=await r.json();if(n.error)throw new Error(n.error.message??`A2A RPC error (${n.error.code??"unknown"})`);return n.result}};function He(s,e){return{role:s,parts:[{type:"text",text:e}]}}function ot(s){return He("user",s)}function ar(s){return He("agent",s)}function je(s){return s.parts.filter(e=>e.type==="text"&&e.text).map(e=>e.text).join("")}function Ne(s){if(s.status.message)return je(s.status.message)}var C=require("gauss-napi"),Le=class{_handle;disposed=!1;constructor(){this._handle=(0,C.createToolRegistry)()}get handle(){return this._handle}add(e){return this.assertNotDisposed(),(0,C.toolRegistryAdd)(this._handle,JSON.stringify(e)),this}search(e){return this.assertNotDisposed(),(0,C.toolRegistrySearch)(this._handle,e)}byTag(e){return this.assertNotDisposed(),(0,C.toolRegistryByTag)(this._handle,e)}list(){return this.assertNotDisposed(),(0,C.toolRegistryList)(this._handle)}destroy(){if(!this.disposed){this.disposed=!0;try{(0,C.destroyToolRegistry)(this._handle)}catch{}}}[Symbol.dispose](){this.destroy()}assertNotDisposed(){if(this.disposed)throw new Error("ToolRegistry has been destroyed")}};0&&(module.exports={A2aClient,ANTHROPIC_DEFAULT,ANTHROPIC_FAST,ANTHROPIC_PREMIUM,Agent,AgentSpec,AgentStream,ApprovalManager,CheckpointStore,ControlPlane,DEEPSEEK_DEFAULT,DEEPSEEK_REASONING,DisposedError,EvalRunner,FIREWORKS_DEFAULT,GOOGLE_DEFAULT,GOOGLE_IMAGE,GOOGLE_PREMIUM,GaussError,Graph,GuardrailChain,MISTRAL_DEFAULT,McpClient,McpServer,Memory,MiddlewareChain,Network,OPENAI_DEFAULT,OPENAI_FAST,OPENAI_IMAGE,OPENAI_REASONING,OPENROUTER_DEFAULT,PERPLEXITY_DEFAULT,PROVIDER_DEFAULTS,PluginRegistry,ProviderError,SkillSpec,TOGETHER_DEFAULT,Team,Telemetry,TextSplitter,ToolExecutionError,ToolRegistry,ToolValidator,ValidationError,VectorStore,Workflow,XAI_DEFAULT,agentMessage,applyGovernancePack,availableRuntimes,batch,classify,clearPricing,codeReview,compose,countMessageTokens,countTokens,countTokensForModel,createCircuitBreaker,createFallbackProvider,createResilientAgent,createResilientProvider,createToolExecutor,defaultModel,detectProvider,discoverAgents,enforceRoutingCostLimit,enforceRoutingGovernance,enforceRoutingRateLimit,enforceRoutingTimeWindow,enterprisePreset,enterpriseRun,estimateCost,evaluatePolicyDiff,evaluatePolicyGate,evaluatePolicyRolloutGuardrails,executeCode,explainRoutingTarget,extract,extractText,filterAsync,gauss,generateImage,getContextWindowSize,getPricing,governancePolicyPack,isTypedTool,loadJson,loadMarkdown,loadText,mapAsync,parseAgentConfig,parsePartialJson,pipe,reduceAsync,resolveApiKey,resolveEnv,resolveFallbackProvider,resolveRoutingTarget,retryable,setPricing,splitText,structured,summarize,tapAsync,taskText,template,textMessage,tool,translate,userMessage,version,withRetry});
186
186
  //# sourceMappingURL=index.cjs.map