@directive-run/ai 1.23.0 → 1.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anthropic.d.cts +1 -1
- package/dist/anthropic.d.ts +1 -1
- package/dist/{chunk-ESJQSOKJ.cjs → chunk-2FPL5W2H.cjs} +7 -7
- package/dist/{chunk-ESJQSOKJ.cjs.map → chunk-2FPL5W2H.cjs.map} +1 -1
- package/dist/{chunk-7KCLEIAG.js → chunk-4VP67W7L.js} +15 -15
- package/dist/chunk-4VP67W7L.js.map +1 -0
- package/dist/{chunk-CXWHLEBQ.js → chunk-EW77VF5K.js} +3 -3
- package/dist/{chunk-CXWHLEBQ.js.map → chunk-EW77VF5K.js.map} +1 -1
- package/dist/{chunk-GWWZXJOG.cjs → chunk-F73AKFDB.cjs} +15 -15
- package/dist/chunk-F73AKFDB.cjs.map +1 -0
- package/dist/{chunk-TEPEQE42.js → chunk-FSSCGRAM.js} +2 -2
- package/dist/chunk-FSSCGRAM.js.map +1 -0
- package/dist/{chunk-PEM2LPOC.cjs → chunk-JMG5GZAH.cjs} +4 -4
- package/dist/{chunk-PEM2LPOC.cjs.map → chunk-JMG5GZAH.cjs.map} +1 -1
- package/dist/{chunk-GTB6HTZV.js → chunk-MRKU3UXH.js} +2 -2
- package/dist/chunk-MRKU3UXH.js.map +1 -0
- package/dist/{chunk-MPMBFW2P.cjs → chunk-QMSLWAMH.cjs} +2 -2
- package/dist/chunk-QMSLWAMH.cjs.map +1 -0
- package/dist/{chunk-LOHC2KP5.js → chunk-XGOTVPN6.js} +3 -3
- package/dist/{chunk-LOHC2KP5.js.map → chunk-XGOTVPN6.js.map} +1 -1
- package/dist/{chunk-MDXDPECP.cjs → chunk-Y4A4UJPU.cjs} +2 -2
- package/dist/chunk-Y4A4UJPU.cjs.map +1 -0
- package/dist/{debug-timeline-L13P-U2I.d.ts → debug-timeline-C5Dzs2r_.d.ts} +1 -1
- package/dist/{debug-timeline-DpnRMnLU.d.cts → debug-timeline-Sc9cxgxV.d.cts} +1 -1
- package/dist/devtools.d.cts +5 -5
- package/dist/devtools.d.ts +5 -5
- package/dist/evals.d.cts +2 -2
- package/dist/evals.d.ts +2 -2
- package/dist/gemini.d.cts +1 -1
- package/dist/gemini.d.ts +1 -1
- package/dist/{guardrails-export-CxCOi3sd.d.ts → guardrails-export-BL8ozXSj.d.ts} +5 -5
- package/dist/{guardrails-export-D3pKHiPp.d.cts → guardrails-export-ByaYNGvG.d.cts} +5 -5
- package/dist/guardrails.cjs +1 -1
- package/dist/guardrails.d.cts +2 -2
- package/dist/guardrails.d.ts +2 -2
- package/dist/guardrails.js +1 -1
- package/dist/{health-monitor-C6xoXrQz.d.cts → health-monitor-C9v10_tj.d.cts} +1 -1
- package/dist/{health-monitor-qL9RNMH3.d.ts → health-monitor-J2eKmP--.d.ts} +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.d.cts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js +1 -1
- package/dist/multi-agent-orchestrator-DUMT67N5.cjs +2 -0
- package/dist/{multi-agent-orchestrator-PHDHFCW3.cjs.map → multi-agent-orchestrator-DUMT67N5.cjs.map} +1 -1
- package/dist/{multi-agent-orchestrator-FIF4GLVR.js → multi-agent-orchestrator-ZZ63F75F.js} +2 -2
- package/dist/{multi-agent-orchestrator-FIF4GLVR.js.map → multi-agent-orchestrator-ZZ63F75F.js.map} +1 -1
- package/dist/multi-agent.cjs +1 -1
- package/dist/multi-agent.d.cts +6 -6
- package/dist/multi-agent.d.ts +6 -6
- package/dist/multi-agent.js +1 -1
- package/dist/ollama.d.cts +1 -1
- package/dist/ollama.d.ts +1 -1
- package/dist/openai.d.cts +1 -1
- package/dist/openai.d.ts +1 -1
- package/dist/{orchestrator-types-DxWn77qo.d.cts → orchestrator-types-BT-NIFOe.d.cts} +3 -3
- package/dist/{orchestrator-types-BxOJllSa.d.ts → orchestrator-types-DMuSD8Vq.d.ts} +3 -3
- package/dist/predicate.cjs +1 -1
- package/dist/predicate.d.cts +2 -2
- package/dist/predicate.d.ts +2 -2
- package/dist/predicate.js +1 -1
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.cts +4 -4
- package/dist/testing.d.ts +4 -4
- package/dist/testing.js +1 -1
- package/dist/{types-DJ09LjZX.d.cts → types-6NoeLyrD.d.cts} +1 -0
- package/dist/{types-DJ09LjZX.d.ts → types-6NoeLyrD.d.ts} +1 -0
- package/package.json +2 -2
- package/dist/chunk-7KCLEIAG.js.map +0 -1
- package/dist/chunk-GTB6HTZV.js.map +0 -1
- package/dist/chunk-GWWZXJOG.cjs.map +0 -1
- package/dist/chunk-MDXDPECP.cjs.map +0 -1
- package/dist/chunk-MPMBFW2P.cjs.map +0 -1
- package/dist/chunk-TEPEQE42.js.map +0 -1
- package/dist/multi-agent-orchestrator-PHDHFCW3.cjs +0 -2
package/dist/anthropic.d.cts
CHANGED
package/dist/anthropic.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkF73AKFDB_cjs=require('./chunk-F73AKFDB.cjs'),chunkK64WKZ22_cjs=require('./chunk-K64WKZ22.cjs'),chunkWOFIBIPW_cjs=require('./chunk-WOFIBIPW.cjs'),chunkWCQK3JOR_cjs=require('./chunk-WCQK3JOR.cjs'),core=require('@directive-run/core'),adapterUtils=require('@directive-run/core/adapter-utils');var Qe=500,Ze=200,et=false;function xt(ve){let{runner:ne,factsSchema:be={},init:we,constraints:tt={},resolvers:nt={},guardrails:q={},onApprovalRequest:le,autoApproveToolCalls:de=true,maxTokenBudget:I,budgetWarningThreshold:re=.8,onBudgetWarning:Te,budgetEstimateTokens:ae,retryInsideCircuit:Re=false,plugins:rt=[],debug:Ae=false,approvalTimeoutMs:pe=3e5,agentRetry:oe,hooks:Se={},memory:M,circuitBreaker:j,selfHealing:R,outputSchema:at,maxSchemaRetries:ot,checkpointStore:Ce,breakpoints:_,onBreakpoint:st,breakpointTimeoutMs:it}=ve,D=typeof Ae=="object"?true:!!Ae,ge=5e3;if(D&&R&&!j&&console.warn("[Directive] selfHealing config has no effect without a circuitBreaker \u2014 fallback behavior requires the circuit breaker to detect failures."),re<0||re>1)throw new Error(`[Directive Orchestrator] budgetWarningThreshold must be between 0 and 1, got ${re}`);if(!de&&!le)throw new Error(`[Directive] Invalid approval configuration: autoApproveToolCalls is false but no onApprovalRequest callback provided. Tool calls would wait for approval indefinitely. Either:
|
|
2
2
|
- Set autoApproveToolCalls: true to auto-approve all tool calls
|
|
3
|
-
- Provide an onApprovalRequest callback to handle approvals programmatically`);function W(e,t){try{Se[e]?.(t);}catch(a){D&&console.debug(`[Directive] hooks.${e} threw:`,a);}}let Oe=["agent","approval","conversation","toolCalls"];for(let e of Object.keys(be))if(Oe.includes(e))throw new Error(`[Directive] Facts schema key "${e}" conflicts with orchestrator state. Reserved keys: ${Oe.join(", ")}. Rename your fact to avoid the collision.`);let ut={facts:{...chunkK64WKZ22_cjs.i.facts,...be,__budgetWarningFired:core.t.boolean()},derivations:{},events:{},requirements:{}},Ee,n,_e=
|
|
3
|
+
- Provide an onApprovalRequest callback to handle approvals programmatically`);function W(e,t){try{Se[e]?.(t);}catch(a){D&&console.debug(`[Directive] hooks.${e} threw:`,a);}}let Oe=["agent","approval","conversation","toolCalls"];for(let e of Object.keys(be))if(Oe.includes(e))throw new Error(`[Directive] Facts schema key "${e}" conflicts with orchestrator state. Reserved keys: ${Oe.join(", ")}. Rename your fact to avoid the collision.`);let ut={facts:{...chunkK64WKZ22_cjs.i.facts,...be,__budgetWarningFired:core.t.boolean()},derivations:{},events:{},requirements:{}},Ee,n,_e=chunkF73AKFDB_cjs.q(tt);I&&(_e.__budgetLimit={priority:100,when:e=>chunkF73AKFDB_cjs.f(e).tokenUsage>I,require:{type:"__PAUSE_BUDGET_EXCEEDED"}});let De=chunkF73AKFDB_cjs.r(nt,(e,t,a,r)=>Ee(e,t,a,r),()=>n.facts);De.__pause={requirement:adapterUtils.requirementGuard("__PAUSE_BUDGET_EXCEEDED"),resolve:async(e,t)=>{let a=chunkF73AKFDB_cjs.f(t.facts);chunkF73AKFDB_cjs.g(t.facts,{...a,status:"paused"});}};let y=null;D&&(y=chunkWOFIBIPW_cjs.a({getSnapshotId:()=>{try{return n.history?.currentIndex??null}catch{return null}},goToSnapshot:e=>{try{n.history?.goTo?.(e);}catch{}}}));let ct=adapterUtils.createCallbackPlugin("directive-ai-callbacks",{}),lt=core.createModule("directive-ai-orchestrator",{schema:ut,init:e=>{if(chunkF73AKFDB_cjs.g(e,{status:"idle",currentAgent:null,input:null,output:null,error:null,tokenUsage:0,turnCount:0,startedAt:null,completedAt:null}),chunkF73AKFDB_cjs.i(e,{pending:[],approved:[],rejected:[]}),chunkF73AKFDB_cjs.k(e,[]),chunkF73AKFDB_cjs.m(e,[]),chunkF73AKFDB_cjs.o(e,{pending:[],resolved:[],cancelled:[]}),adapterUtils.setBridgeFact(e,"__budgetWarningFired",false),we){let t=chunkF73AKFDB_cjs.p(e),a={...e,...t};we(a);}},constraints:_e,resolvers:De}),xe=[...rt,ct];D&&y&&xe.push(chunkWOFIBIPW_cjs.b(y,()=>{try{return n.history?.currentIndex??null}catch{return null}})),n=core.createSystem({module:lt,plugins:xe,history:D?true:void 0}),n.start();let $={count:0};function Be(e,t){if(ae===void 0)return 0;if(typeof ae=="number")return Math.max(0,Math.floor(ae));try{let a=ae(t,e);return Number.isFinite(a)?Math.max(0,Math.floor(a)):0}catch{return 0}}async function Ie(e,t,a,r,s){let c=0;if(I){let g=chunkF73AKFDB_cjs.f(n.facts).tokenUsage;if(c=Be(e,t),g+$.count+c>I)throw new Error(`[Directive] Agent budget would be exceeded by this call: current=${g} + in-flight=${$.count} + estimate=${c} > maxTokenBudget=${I}. Raise \`maxTokenBudget\`, lower \`budgetEstimateTokens\`, or reset \`tokenUsage\`.`);$.count+=c;}try{return await dt(e,t,a,r,s)}finally{I&&c>0&&($.count=Math.max(0,$.count-c));}}async function Me(e,t,a){let r=Be(e,t);if(r<=0)return await a();$.count+=r;try{return await a()}finally{$.count=Math.max(0,$.count-r);}}async function $e(e,t,a,r){if(!R)throw e;if(R.fallbackRunners)for(let s of R.fallbackRunners)try{let c={originalAgent:t.name,reroutedTo:"fallback-runner",reason:e instanceof Error?e.message:String(e),timestamp:Date.now()};try{R.onReroute?.(c);}catch{}return y&&y.record({type:"reroute",timestamp:Date.now(),agentId:t.name,snapshotId:null,from:t.name,to:"fallback-runner",reason:e instanceof Error?e.message:String(e)}),await Me(t,a,()=>s(t,a,r))}catch{}if(R.fallbackAgent)try{let s={originalAgent:t.name,reroutedTo:R.fallbackAgent.name,reason:e instanceof Error?e.message:String(e),timestamp:Date.now()};try{R.onReroute?.(s);}catch{}y&&y.record({type:"reroute",timestamp:Date.now(),agentId:t.name,snapshotId:null,from:t.name,to:R.fallbackAgent.name,reason:e instanceof Error?e.message:String(e)});let c=R.fallbackAgent;return await Me(c,a,()=>ne(c,a,r))}catch{}if(R.degradation==="fallback-response"&&R.fallbackResponse!==void 0)return {output:R.fallbackResponse,messages:[],toolCalls:[],totalTokens:0};throw e}async function dt(e,t,a,r,s){if(j&&Re)try{return await j.execute(()=>Fe(e,t,a,r,s))}catch(c){return $e(c,e,t,r)}try{return await Fe(e,t,a,r,s)}catch(c){if(j||R)return $e(c,e,t,r);throw c}}async function Fe(e,t,a,r,s){let c=Date.now();if(M){let o=M.getContextMessages();if(o.length>0){let i=o.map(p=>`${p.role}: ${p.content}`).join(`
|
|
4
4
|
`);e={...e,instructions:`${e.instructions??""}
|
|
5
5
|
|
|
6
6
|
Conversation context:
|
|
7
|
-
${i}`};}}if(ve.metaContext){let o=
|
|
7
|
+
${i}`};}}if(ve.metaContext){let o=chunkF73AKFDB_cjs.a(n.inspect());o&&(e={...e,instructions:`${e.instructions??""}
|
|
8
8
|
|
|
9
|
-
${o}`});}if(_&&_.length>0){let o={agentId:e.name,agentName:e.name,input:t,state:n.facts.$store.toObject(),breakpointType:"pre_input_guardrails"},i=await se("pre_input_guardrails",o,s?.signal??r?.signal);if(i?.skip)return {output:void 0,messages:[],toolCalls:[],totalTokens:0};i?.input&&(t=i.input);}let g=s?.inputGuardrails!==void 0?s.inputGuardrails:q.input??[],b=s?.outputGuardrails!==void 0?s.outputGuardrails:q.output??[],F=g.map((o,i)=>
|
|
9
|
+
${o}`});}if(_&&_.length>0){let o={agentId:e.name,agentName:e.name,input:t,state:n.facts.$store.toObject(),breakpointType:"pre_input_guardrails"},i=await se("pre_input_guardrails",o,s?.signal??r?.signal);if(i?.skip)return {output:void 0,messages:[],toolCalls:[],totalTokens:0};i?.input&&(t=i.input);}let g=s?.inputGuardrails!==void 0?s.inputGuardrails:q.input??[],b=s?.outputGuardrails!==void 0?s.outputGuardrails:q.output??[],F=g.map((o,i)=>chunkF73AKFDB_cjs.c(o,i,"input"));for(let o of F){let{name:i}=o,p={agentName:e.name,input:t,facts:n.facts.$store.toObject()},O=Date.now(),m=await chunkF73AKFDB_cjs.d(o,{input:t,agentName:e.name},p);if(W("onGuardrailCheck",{agentId:e.name,guardrailName:i,guardrailType:"input",passed:m.passed,reason:m.reason,durationMs:Date.now()-O,timestamp:Date.now()}),!m.passed)throw new chunkK64WKZ22_cjs.a({code:"INPUT_GUARDRAIL_FAILED",message:`Input guardrail "${i}" failed: ${m.reason}`,guardrailName:i,guardrailType:"input",userMessage:m.reason??"Input validation failed",agentName:e.name,input:t});m.transformed!==void 0&&(t=m.transformed);}if(W("onAgentStart",{agentName:e.name,input:t,timestamp:c}),y&&y.record({type:"agent_start",timestamp:Date.now(),agentId:e.name,snapshotId:null,inputLength:t.length,modelId:e.model??void 0,...e.instructions?{instructions:e.instructions.slice(0,ge)}:{},input:t.slice(0,ge)}),n.batch(()=>{let o=chunkF73AKFDB_cjs.f(n.facts);chunkF73AKFDB_cjs.g(n.facts,{...o,status:"running",currentAgent:e.name,input:t,startedAt:Date.now()});}),_&&_.length>0){let o={agentId:e.name,agentName:e.name,input:t,state:n.facts.$store.toObject(),breakpointType:"pre_agent_run"},i=await se("pre_agent_run",o,s?.signal??r?.signal);if(i?.skip)return {output:void 0,messages:[],toolCalls:[],totalTokens:0};i?.input&&(t=i.input);}let C=s?.outputSchema!==void 0?s.outputSchema:at,A=ne;if(C&&(A=chunkWCQK3JOR_cjs.b(ne,{schema:C,maxRetries:s?.maxSchemaRetries??ot??2})),j&&!Re){let o=A;A=((i,p,O)=>j.execute(()=>o(i,p,O)));}let l=await chunkF73AKFDB_cjs.e(A,e,t,{...r,signal:r?.signal,onMessage:o=>{let p=[...chunkF73AKFDB_cjs.j(n.facts),o];chunkF73AKFDB_cjs.k(n.facts,p.length>Qe?p.slice(-Qe):p),r?.onMessage?.(o);},onToolCall:async o=>{let i=(q.toolCall??[]).map((m,x)=>chunkF73AKFDB_cjs.c(m,x,"toolCall"));for(let m of i){let{name:x}=m,L={agentName:e.name,input:t,facts:n.facts.$store.toObject()},d=Date.now(),w=await chunkF73AKFDB_cjs.d(m,{toolCall:o,agentName:e.name,input:t},L);if(W("onGuardrailCheck",{agentId:e.name,guardrailName:x,guardrailType:"toolCall",passed:w.passed,reason:w.reason,durationMs:Date.now()-d,timestamp:Date.now()}),!w.passed)throw new chunkK64WKZ22_cjs.a({code:"TOOL_CALL_GUARDRAIL_FAILED",message:`Tool call guardrail "${x}" failed: ${w.reason}`,guardrailName:x,guardrailType:"toolCall",userMessage:w.reason??"Tool call blocked",data:{toolCall:o},agentName:e.name,input:t})}if(!de){let m=`tool-${o.id}`,x={id:m,type:"tool_call",agentName:e.name,description:`Tool call: ${o.name}`,data:o,requestedAt:Date.now()};n.batch(()=>{let L=chunkF73AKFDB_cjs.h(n.facts);chunkF73AKFDB_cjs.i(n.facts,{...L,pending:[...L.pending,x]});}),le?.(x),await Le(m,s?.signal??r?.signal);}let O=[...chunkF73AKFDB_cjs.l(n.facts),o];chunkF73AKFDB_cjs.m(n.facts,O.length>Ze?O.slice(-Ze):O),r?.onToolCall?.(o);}},oe?{...oe,onRetry:(o,i,p)=>{oe.onRetry?.(o,i,p),W("onAgentRetry",{agentName:e.name,input:t,attempt:o,error:i,delayMs:p,timestamp:Date.now()});}}:void 0);if(_&&_.length>0){let o={agentId:e.name,agentName:e.name,input:t,state:n.facts.$store.toObject(),breakpointType:"pre_output_guardrails"},i=await se("pre_output_guardrails",o,s?.signal??r?.signal);if(i?.skip)return {output:void 0,messages:[],toolCalls:[],totalTokens:0};i?.input&&(t=i.input);}let K=b.map((o,i)=>chunkF73AKFDB_cjs.c(o,i,"output"));for(let o of K){let{name:i}=o,p={agentName:e.name,input:t,facts:n.facts.$store.toObject()},O=Date.now(),m=await chunkF73AKFDB_cjs.d(o,{output:l.output,agentName:e.name,input:t,messages:l.messages},p);if(W("onGuardrailCheck",{agentId:e.name,guardrailName:i,guardrailType:"output",passed:m.passed,reason:m.reason,durationMs:Date.now()-O,timestamp:Date.now()}),!m.passed)throw new chunkK64WKZ22_cjs.a({code:"OUTPUT_GUARDRAIL_FAILED",message:`Output guardrail "${i}" failed: ${m.reason}`,guardrailName:i,guardrailType:"output",userMessage:m.reason??"Output validation failed",agentName:e.name,input:t});m.transformed!==void 0&&(l.output=m.transformed);}let ie=false,h=0;if(n.batch(()=>{let o=chunkF73AKFDB_cjs.f(n.facts),i=o.tokenUsage+l.totalTokens;if(chunkF73AKFDB_cjs.g(n.facts,{...o,status:"completed",output:l.output,tokenUsage:i,turnCount:o.turnCount+l.messages.length,completedAt:Date.now()}),I&&Te){h=i/I;let p=adapterUtils.getBridgeFact(n.facts,"__budgetWarningFired");h>=re&&!p&&(adapterUtils.setBridgeFact(n.facts,"__budgetWarningFired",true),ie=true);}}),ie)try{Te({currentTokens:chunkF73AKFDB_cjs.f(n.facts).tokenUsage,maxBudget:I,percentage:h});}catch(o){D&&console.debug("[Directive Orchestrator] onBudgetWarning threw:",o);}if(M&&l.messages.length>0)try{M.addMessages(l.messages);}catch(o){D&&console.debug("[Directive] Memory addMessages failed:",o);}if(W("onAgentComplete",{agentName:e.name,input:t,output:l.output,tokenUsage:l.totalTokens,durationMs:Date.now()-c,timestamp:Date.now()}),y){let o=typeof l.output=="string"?l.output:JSON.stringify(l.output);y.record({type:"agent_complete",timestamp:Date.now(),agentId:e.name,snapshotId:null,outputLength:o?.length??0,totalTokens:l.totalTokens,inputTokens:l.tokenUsage?.inputTokens??0,outputTokens:l.tokenUsage?.outputTokens??0,durationMs:Date.now()-c,modelId:e.model??void 0,output:o.slice(0,ge)});}if(_&&_.length>0){let o={agentId:e.name,agentName:e.name,input:t,state:n.facts.$store.toObject(),breakpointType:"post_run"},i=await se("post_run",o,s?.signal??r?.signal);if(i?.skip)return {output:void 0,messages:[],toolCalls:[],totalTokens:0};i?.input&&(t=i.input);}return l}Ee=Ie;let H=new Map,Q=new Map;function pt(e,t){return t?.aborted?Promise.reject(t.reason??new Error("Aborted while waiting for breakpoint")):new Promise((a,r)=>{let s=false,c=null,g=()=>{s||(s=true,c&&(clearTimeout(c),c=null),t&&t.removeEventListener("abort",b),F());},b=()=>{g(),r(t.reason??new Error(`Breakpoint wait for ${e} aborted`));};t&&t.addEventListener("abort",b,{once:true});let F=n.facts.$store.subscribe([chunkK64WKZ22_cjs.g],()=>{if(s)return;let A=chunkF73AKFDB_cjs.n(n.facts);if(A.resolved.includes(e)){g();let l=H.get(e)??null;H.delete(e),a(l);}else if(A.cancelled.includes(e)){g(),H.delete(e);let l=Q.get(e);Q.delete(e),r(new Error(l?`Breakpoint ${e} was cancelled: ${l}`:`Breakpoint ${e} was cancelled`));}}),C=it??3e5;c=setTimeout(()=>{s||(g(),H.delete(e),Q.delete(e),r(new Error(`[Directive] Breakpoint timeout: ${e} not resolved within ${Math.round(C/1e3)}s`)));},C);})}async function se(e,t,a){if(!_||_.length===0)return null;let r=chunkF73AKFDB_cjs.u(_,e,t);if(!r)return null;let s=chunkF73AKFDB_cjs.t(),c={id:s,type:e,agentId:t.agentId,input:t.input,label:r.label,requestedAt:Date.now()};n.batch(()=>{let b=chunkF73AKFDB_cjs.n(n.facts);chunkF73AKFDB_cjs.o(n.facts,{...b,pending:[...b.pending,c]});});try{st?.(c);}catch{}try{Se.onBreakpoint?.(c);}catch{}y&&y.record({type:"breakpoint_hit",timestamp:Date.now(),snapshotId:null,agentId:t.agentId,breakpointId:s,breakpointType:e,label:r.label});let g=await pt(s,a);return y&&y.record({type:"breakpoint_resumed",timestamp:Date.now(),snapshotId:null,agentId:t.agentId,breakpointId:s,modified:!!g?.input,skipped:!!g?.skip}),g}function Le(e,t){return t?.aborted?Promise.reject(t.reason??new Error("Aborted while waiting for approval")):new Promise((a,r)=>{let s=false,c=null,g=()=>{s||(s=true,c&&(clearTimeout(c),c=null),t&&t.removeEventListener("abort",b),F());},b=()=>{g(),r(t.reason??new Error(`Approval wait for ${e} aborted`));};t&&t.addEventListener("abort",b,{once:true});let F=n.facts.$store.subscribe([chunkK64WKZ22_cjs.d],()=>{if(s)return;let C=chunkF73AKFDB_cjs.h(n.facts);if(C.approved.includes(e))g(),a();else {let A=C.rejected.find(l=>l.id===e);if(A){g();let l=A.reason?`Request ${e} rejected: ${A.reason}`:`Request ${e} rejected`;r(new Error(l));}}});c=setTimeout(()=>{if(s)return;g();let C=Math.round(pe/1e3);r(new Error(`[Directive] Approval timeout: Request ${e} not resolved within ${C}s.
|
|
10
10
|
Solutions:
|
|
11
11
|
1. Handle via onApprovalRequest callback and call orchestrator.approve()/reject()
|
|
12
12
|
2. Set autoApproveToolCalls: true to auto-approve
|
|
13
13
|
3. Increase approvalTimeoutMs (current: ${pe}ms)
|
|
14
|
-
See: https://directive.run/docs/ai/running-agents`));},pe);})}function Pe(){return {...
|
|
15
|
-
exports.a=xt;//# sourceMappingURL=chunk-
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
14
|
+
See: https://directive.run/docs/ai/running-agents`));},pe);})}function Pe(){return {...chunkF73AKFDB_cjs.p(n.facts)}}return {system:n,get facts(){return Pe()},get totalTokens(){return chunkF73AKFDB_cjs.f(n.facts).tokenUsage},get timeline(){return y},async run(e,t,a){return Ie(e,t,Pe(),void 0,a)},runStream(e,t,a={}){let r=new AbortController,s=1e4,c=[],g=[],b=false,F=Date.now(),C=0,A=1e5,l="",K;a.signal&&(K=()=>r.abort(),a.signal.addEventListener("abort",K,{once:true}));let ie=()=>{K&&a.signal&&a.signal.removeEventListener("abort",K);},h=d=>{if(b)return;let w=g.shift();w?w(d):(c.push(d),c.length>s&&c.shift());},o=()=>{b=true,ie();for(let d of g)d(null);g.length=0;},i=null,p=a.liveContext;if(p){if(p.mode!==void 0&&!et&&(et=true,console.warn("[Directive] liveContext.mode is deprecated and has no runtime behavior \u2014 the 1.x landing ships abort-and-emit only. Remove the field; automatic re-prompt semantics will return in a follow-up RFC.")),D&&p.system===n){let Y=["agent","conversation","approvalState"],u=p.keys.filter(k=>Y.some(T=>k.startsWith(T)));u.length>0&&console.warn(`[Directive] liveContext watches bridge-state keys (${u.join(", ")}) on the orchestrator's own system. The orchestrator's own setAgentState / setConversation / approvalState writes will trigger interruptWhen, self-looping the run. Use a separate system for liveContext, or scope \`keys\` to user-fact namespaces.`);}let d=p.notifyOn??"interrupt-only",w=p.interruptWhen??(()=>true),E=new Set(p.keys),X=p.system.facts.$store;if(typeof X?.subscribe=="function"){let Y=X.toObject?.()??{};i=X.subscribe(p.keys,()=>{if(b)return;let u=X.toObject?.()??{},k=[];for(let v of p.keys)u[v]!==Y[v]&&k.push(v);if(Y=u,k.length===0)return;let T=k.filter(v=>E.has(v));if(T.length===0)return;let f=false;try{f=w(u,T);}catch(v){console.error("[Directive] liveContext.interruptWhen threw \u2014 treating as non-interrupt",v),f=false;}try{p.onContextUpdate?.(T);}catch(v){console.error("[Directive] liveContext.onContextUpdate threw",v);}f?(h({type:"interrupted",reason:"liveContext.interruptWhen",partialOutput:l,changedKeys:T}),r.abort()):d==="all-changes"&&h({type:"context_updated",changedKeys:T});});}}let O=()=>{i&&(i(),i=null);},m=(async()=>{h({type:"progress",phase:"starting",message:"Running input guardrails"});try{let d=t,w=(q.input??[]).map((u,k)=>chunkF73AKFDB_cjs.c(u,k,"input"));for(let u of w){let{name:k}=u,T={agentName:e.name,input:d,facts:n.facts.$store.toObject()},f=await chunkF73AKFDB_cjs.d(u,{input:d,agentName:e.name},T);if(!f.passed)throw h({type:"guardrail_triggered",guardrailName:k,reason:f.reason??"Input validation failed",partialOutput:l,stopped:!0}),new chunkK64WKZ22_cjs.a({code:"INPUT_GUARDRAIL_FAILED",message:`Input guardrail "${k}" failed: ${f.reason}`,guardrailName:k,guardrailType:"input",userMessage:f.reason??"Input validation failed",agentName:e.name,input:d});f.transformed!==void 0&&(d=f.transformed);}h({type:"progress",phase:"generating",message:"Starting agent"}),n.batch(()=>{let u=chunkF73AKFDB_cjs.f(n.facts);chunkF73AKFDB_cjs.g(n.facts,{...u,status:"running",currentAgent:e.name,input:d,startedAt:Date.now()});});let E=await chunkF73AKFDB_cjs.e(ne,e,d,{signal:r.signal,onMessage:u=>{let k=chunkF73AKFDB_cjs.j(n.facts);if(chunkF73AKFDB_cjs.k(n.facts,[...k,u]),h({type:"message",message:u}),u.role==="assistant"&&u.content){let T=Math.ceil(u.content.length/4);C+=T,l+=u.content,l.length>A&&(l=l.slice(-A)),h({type:"token",data:u.content,tokenCount:C});}},onToolCall:async u=>{h({type:"tool_start",tool:u.name,toolCallId:u.id,arguments:u.arguments});let k=(q.toolCall??[]).map((f,v)=>chunkF73AKFDB_cjs.c(f,v,"toolCall"));for(let f of k){let{name:v}=f,ue={agentName:e.name,input:d,facts:n.facts.$store.toObject()},ce=await chunkF73AKFDB_cjs.d(f,{toolCall:u,agentName:e.name,input:d},ue);if(!ce.passed)throw h({type:"guardrail_triggered",guardrailName:v,reason:ce.reason??"Tool call blocked",partialOutput:l,stopped:!0}),new chunkK64WKZ22_cjs.a({code:"TOOL_CALL_GUARDRAIL_FAILED",message:`Tool call guardrail "${v}" failed: ${ce.reason}`,guardrailName:v,guardrailType:"toolCall",userMessage:ce.reason??"Tool call blocked",data:{toolCall:u},agentName:e.name,input:d})}if(!de){let f=`tool-${u.id}`;h({type:"approval_required",requestId:f,toolName:u.name});let v={id:f,type:"tool_call",agentName:e.name,description:`Tool call: ${u.name}`,data:u,requestedAt:Date.now()};n.batch(()=>{let ue=chunkF73AKFDB_cjs.h(n.facts);chunkF73AKFDB_cjs.i(n.facts,{...ue,pending:[...ue.pending,v]});}),le?.(v),await Le(f,r.signal),h({type:"approval_resolved",requestId:f,approved:!0});}let T=chunkF73AKFDB_cjs.l(n.facts);chunkF73AKFDB_cjs.m(n.facts,[...T,u]),u.result&&h({type:"tool_end",tool:u.name,toolCallId:u.id,result:u.result});}},oe);h({type:"progress",phase:"finishing",message:"Running output guardrails"});let X=(q.output??[]).map((u,k)=>chunkF73AKFDB_cjs.c(u,k,"output"));for(let u of X){let{name:k}=u,T={agentName:e.name,input:d,facts:n.facts.$store.toObject()},f=await chunkF73AKFDB_cjs.d(u,{output:E.output,agentName:e.name,input:d,messages:E.messages},T);if(!f.passed)throw h({type:"guardrail_triggered",guardrailName:k,reason:f.reason??"Output validation failed",partialOutput:typeof E.output=="string"?E.output:"",stopped:!0}),new chunkK64WKZ22_cjs.a({code:"OUTPUT_GUARDRAIL_FAILED",message:`Output guardrail "${k}" failed: ${f.reason}`,guardrailName:k,guardrailType:"output",userMessage:f.reason??"Output validation failed",agentName:e.name,input:d});f.transformed!==void 0&&(E.output=f.transformed);}n.batch(()=>{let u=chunkF73AKFDB_cjs.f(n.facts);chunkF73AKFDB_cjs.g(n.facts,{...u,status:"completed",output:E.output,tokenUsage:u.tokenUsage+E.totalTokens,turnCount:u.turnCount+E.messages.length,completedAt:Date.now()});});let Y=Date.now()-F;return h({type:"done",totalTokens:E.totalTokens,duration:Y,droppedTokens:0}),o(),E}catch(d){throw h({type:"error",error:d instanceof Error?d:new Error(String(d))}),o(),d}})();m.catch(()=>{});let x={[Symbol.asyncIterator](){return {async next(){return c.length>0?{done:false,value:c.shift()}:b?{done:true,value:void 0}:new Promise(d=>{g.push(w=>{d(w===null?{done:true,value:void 0}:{done:false,value:w});});})}}}},L=false;return m.finally(()=>{L||O();}).catch(()=>{}),{stream:x,result:m,abort:()=>{r.abort(),O(),o();},interrupt:d=>{L=true,h({type:"interrupted",reason:d??"caller.interrupt",partialOutput:l,changedKeys:[]}),r.abort();}}},async waitForIdle(e){let t=()=>chunkF73AKFDB_cjs.f(n.facts).status!=="running";if(t())return;let a=Date.now();for(;!t();){if(e!==void 0&&Date.now()-a>e)throw new Error("[Directive Orchestrator] waitForIdle timed out");await new Promise(r=>setTimeout(r,50));}},approve(e){n.batch(()=>{let t=chunkF73AKFDB_cjs.h(n.facts);if(!t.pending.some(s=>s.id===e)){D&&console.debug(`[Directive] approve() ignored: no pending request "${e}"`);return}let a=200,r=[...t.approved,e];chunkF73AKFDB_cjs.i(n.facts,{...t,pending:t.pending.filter(s=>s.id!==e),approved:r.length>a?r.slice(-a):r});});},reject(e,t){n.batch(()=>{let a=chunkF73AKFDB_cjs.h(n.facts);if(!a.pending.some(g=>g.id===e)){D&&console.debug(`[Directive] reject() ignored: no pending request "${e}"`);return}t&&D&&console.debug(`[Directive] Request ${e} rejected: ${t}`);let r={id:e,reason:t,rejectedAt:Date.now()},s=200,c=[...a.rejected,r];chunkF73AKFDB_cjs.i(n.facts,{...a,pending:a.pending.filter(g=>g.id!==e),rejected:c.length>s?c.slice(-s):c});});},pause(){let e=chunkF73AKFDB_cjs.f(n.facts);chunkF73AKFDB_cjs.g(n.facts,{...e,status:"paused"});},resume(){let e=chunkF73AKFDB_cjs.f(n.facts);e.status==="paused"&&chunkF73AKFDB_cjs.g(n.facts,{...e,status:e.currentAgent?"running":"idle"});},reset(){n.batch(()=>{chunkF73AKFDB_cjs.g(n.facts,{status:"idle",currentAgent:null,input:null,output:null,error:null,tokenUsage:0,turnCount:0,startedAt:null,completedAt:null}),chunkF73AKFDB_cjs.i(n.facts,{pending:[],approved:[],rejected:[]}),chunkF73AKFDB_cjs.k(n.facts,[]),chunkF73AKFDB_cjs.m(n.facts,[]),chunkF73AKFDB_cjs.o(n.facts,{pending:[],resolved:[],cancelled:[]}),adapterUtils.setBridgeFact(n.facts,"__budgetWarningFired",false);}),H.clear(),Q.clear();},async checkpoint(e){if(chunkF73AKFDB_cjs.f(n.facts).status==="running")throw new Error("[Directive] Cannot checkpoint while agent is running");if(!n.history?.export)throw new Error("[Directive] Checkpointing requires history. Set `debug: true` in orchestrator options.");let a={version:1,id:chunkF73AKFDB_cjs.w(),createdAt:new Date().toISOString(),label:e?.label,systemExport:n.history.export(),timelineExport:y?.export()??null,localState:{type:"single"},memoryExport:M?M.export?.()??null:null,orchestratorType:"single"};return Ce&&await Ce.save(a),a},restore(e,t){if(!chunkF73AKFDB_cjs.x(e))throw new Error("[Directive] Invalid checkpoint data");if(e.orchestratorType!=="single")throw new Error("[Directive] Cannot restore multi-agent checkpoint in single-agent orchestrator");if(!n.history?.import)throw new Error("[Directive] Restoring a checkpoint requires history. Set `debug: true` in orchestrator options.");n.history.import(e.systemExport),t?.restoreTimeline!==false&&e.timelineExport&&y&&y.import(e.timelineExport),e.memoryExport!==null&&M&&M.import&&M.import(e.memoryExport);},resumeBreakpoint(e,t){t&&H.set(e,t),n.batch(()=>{let a=chunkF73AKFDB_cjs.n(n.facts),r=[...a.resolved,e];chunkF73AKFDB_cjs.o(n.facts,{...a,pending:a.pending.filter(s=>s.id!==e),resolved:r.length>chunkF73AKFDB_cjs.s?r.slice(-chunkF73AKFDB_cjs.s):r});});},cancelBreakpoint(e,t){t&&Q.set(e,t),n.batch(()=>{let a=chunkF73AKFDB_cjs.n(n.facts),r=[...a.cancelled,e];chunkF73AKFDB_cjs.o(n.facts,{...a,pending:a.pending.filter(s=>s.id!==e),cancelled:r.length>chunkF73AKFDB_cjs.s?r.slice(-chunkF73AKFDB_cjs.s):r});});},getPendingBreakpoints(){return [...chunkF73AKFDB_cjs.n(n.facts).pending]},destroy(){n.destroy();}}}
|
|
15
|
+
exports.a=xt;//# sourceMappingURL=chunk-2FPL5W2H.cjs.map
|
|
16
|
+
//# sourceMappingURL=chunk-2FPL5W2H.cjs.map
|