@robota-sdk/agent-cli 3.0.0-beta.79 → 3.0.0-beta.81
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 +740 -55
- package/dist/node/bin.js +3 -406
- package/dist/node/bounded-output-DpjpS98g-DFgAppgl.js +2 -0
- package/dist/node/bounded-output-DpjpS98g-DFgAppgl.js.map +1 -0
- package/dist/node/bounded-output-DpjpS98g-DoRuRGhV.js +2 -0
- package/dist/node/bounded-output-DpjpS98g-yPybHprY.cjs +1 -0
- package/dist/node/cli-core-Bah38oug.js +2795 -0
- package/dist/node/command-executor-DV-H2oD6-BfKoGoFw.js +2 -0
- package/dist/node/command-executor-DV-H2oD6-OKy8pwYH.js +2 -0
- package/dist/node/command-executor-DV-H2oD6-OKy8pwYH.js.map +1 -0
- package/dist/node/command-executor-DV-H2oD6-iQAXtTLY.cjs +1 -0
- package/dist/node/headless.js +4 -0
- package/dist/node/http-executor-cWzI2svn-C7F17ZGz.cjs +1 -0
- package/dist/node/http-executor-cWzI2svn-TG_TMYKh.js +2 -0
- package/dist/node/http-executor-cWzI2svn-TG_TMYKh.js.map +1 -0
- package/dist/node/http-executor-cWzI2svn-Ype0naht.js +2 -0
- package/dist/node/index.cjs +2641 -251
- package/dist/node/index.d.cts +3421 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.ts +3412 -5
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +2641 -251
- package/dist/node/index.js.map +1 -1
- package/dist/node/node-2-nrieFn.js +2 -0
- package/dist/node/node-2-nrieFn.js.map +1 -0
- package/dist/node/node-C-hnFnOP.js +67 -0
- package/dist/node/node-CFTax5Wl.cjs +1 -0
- package/dist/node/node-CJnrbkAS.js +14 -0
- package/dist/node/node-CJnrbkAS.js.map +1 -0
- package/dist/node/node-ChG9Tg1I.js +2 -0
- package/dist/node/node-DDl02brx.cjs +66 -0
- package/dist/node/node-DIRGC_1P.js +67 -0
- package/dist/node/node-DIRGC_1P.js.map +1 -0
- package/dist/node/node-OBnZskvR.cjs +1 -0
- package/dist/node/node-bJ0lEuNF.js +2 -0
- package/dist/node/node-bJ0lEuNF.js.map +1 -0
- package/dist/node/node-tf433Aey.cjs +13 -0
- package/dist/node/node-uwhEt6sT.js +14 -0
- package/dist/node/rolldown-runtime-C9xYM0wc.js +1 -0
- package/dist/node/rolldown-runtime-DK3Fl9T5-BIInC43l.cjs +1 -0
- package/dist/node/rolldown-runtime-DK3Fl9T5-BeX3Bzvn.js +2 -0
- package/dist/node/rolldown-runtime-DK3Fl9T5-DK3Fl9T5.js +2 -0
- package/dist/node/rolldown-runtime-DK3Fl9T5-DK3Fl9T5.js.map +1 -0
- package/dist/node/rolldown-runtime-rs7quPpn.js +2 -0
- package/dist/node/verdict-decoder-Dk_w2NG9-BKWMtxp8.js +2 -0
- package/dist/node/verdict-decoder-Dk_w2NG9-Bka7Cldj.js +2 -0
- package/dist/node/verdict-decoder-Dk_w2NG9-Bka7Cldj.js.map +1 -0
- package/dist/node/verdict-decoder-Dk_w2NG9-DNTeVdQ8.cjs +1 -0
- package/dist/web/assets/index-8_Slbxe7.css +1 -0
- package/dist/web/assets/index-Cgu5C1kn.js +77 -0
- package/dist/web/index.html +3 -3
- package/package.json +106 -39
- package/dist/node/bin.d.ts +0 -2
- package/dist/node/bin.js.map +0 -1
- package/dist/web/assets/index-DiahfakU.css +0 -2
- package/dist/web/assets/index-LMW0IDmj.js +0 -37
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("zod"),t=require("zod-to-json-schema");function n(e,t,n,r,i,a,o){return{code:t,category:e,message:n,retryable:r,context:i,fix:a,agentHint:o}}function r(e,t,r,i,a){return n(`validation`,e,t,!1,r,i,a)}function i(e,t,r,i,a){return n(`dispatch`,e,t,!0,r,i,a)}function a(e,t,r,i,a,o){return n(`task_execution`,e,t,r,i,a,o)}function o(e){return a(`DAG_TASK_EXECUTION_CANCELLED`,`Task execution was cancelled`,!1,{taskRunId:e})}function s(e,t){let n=[],r=``,i=0,a=(e,a)=>{if(a>t-i)throw c;i+=a,r+=e,r.length>=8192&&(n.push(r),r=``)},o=e=>{a(`"`,1);for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n===34||n===92)a(`\\${e[t]}`,2);else if(n<32){let e=u[n]??`\\u${n.toString(16).padStart(4,`0`)}`;a(e,e.length)}else n<128?a(e[t],1):n<2048?a(e[t],2):n>=55296&&n<=56319&&t+1<e.length&&e.charCodeAt(t+1)>=56320&&e.charCodeAt(t+1)<=57343?(a(e.slice(t,t+2),4),t++):n>=55296&&n<=57343?a(`\\u${n.toString(16)}`,6):a(e[t],3)}a(`"`,1)},s=[],d=new Set,f=e=>{if(e===null)return a(`null`,4);if(typeof e==`string`)return o(e);if(typeof e==`boolean`)return a(e?`true`:`false`,e?4:5);if(typeof e==`number`){let t=JSON.stringify(e);return a(t,t.length)}if(typeof e!=`object`||d.has(e))throw l;if(Array.isArray(e))d.add(e),a(`[`,1),s.push({kind:`array`,value:e,index:0});else{let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw l;d.add(e),a(`{`,1),s.push({kind:`object`,value:e,keys:Object.keys(e),index:0,first:!0})}};try{for(f(e);s.length>0;){let e=s[s.length-1];if(e.kind===`array`){if(e.index===e.value.length){a(`]`,1),d.delete(e.value),s.pop();continue}e.index&&a(`,`,1);let t=Object.getOwnPropertyDescriptor(e.value,String(e.index++));if(t&&!(`value`in t))throw l;let n=t?.value;n===void 0||typeof n==`function`||typeof n==`symbol`?a(`null`,4):f(n)}else{if(e.index===e.keys.length){a(`}`,1),d.delete(e.value),s.pop();continue}let t=e.keys[e.index++],n=Object.getOwnPropertyDescriptor(e.value,t);if(!n||!(`value`in n))throw l;let r=n.value;if(r===void 0||typeof r==`function`||typeof r==`symbol`)continue;e.first||a(`,`,1),e.first=!1,o(t),a(`:`,1),f(r)}}return r&&n.push(r),n.join(``)}catch(e){if(e===c)return;throw e===l?TypeError(`Snapshot must contain plain JSON data without accessors or cycles`):e}}const c=Symbol(`snapshot limit`),l=Symbol(`invalid snapshot`),u={8:`\\b`,9:`\\t`,10:`\\n`,12:`\\f`,13:`\\r`},d=Object.freeze({inputBytes:16*1024*1024,outputBytes:16*1024*1024});function f(e=d){if(!e||!Number.isSafeInteger(e.inputBytes)||e.inputBytes<0||!Number.isSafeInteger(e.outputBytes)||e.outputBytes<0)throw RangeError(`Task snapshot limits must be nonnegative safe integers`);return Object.freeze({inputBytes:e.inputBytes,outputBytes:e.outputBytes})}function p(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:r>=55296&&r<=56319&&e.charCodeAt(n+1)>=56320&&e.charCodeAt(n+1)<=57343?(t+=4,n++):t+=3}return t}var m=class{limits;occupied={input:0,output:0};poisoned=!1;constructor(e){this.limits=f(e)}close(){this.poisoned=!0}error(e){return a(this.poisoned?`DAG_TASK_SNAPSHOT_BUDGET_CLOSED`:`DAG_TASK_SNAPSHOT_BUDGET_EXCEEDED`,this.poisoned?`Task snapshot budget is closed`:`Task ${e} snapshot budget exceeded`,!1)}encode(e,t){if(this.poisoned)return{ok:!1,error:this.error(e)};let n=this.limits[e===`input`?`inputBytes`:`outputBytes`]-this.occupied[e];try{let r=s(t,n);return r===void 0?{ok:!1,error:this.error(e)}:{ok:!0,value:{snapshot:r,bytes:p(r)}}}catch{return{ok:!1,error:a(`DAG_TASK_SNAPSHOT_INVALID`,`Task snapshot must contain plain JSON data`,!1)}}}async admitValue(e,t,n){let r=this.encode(e,t);return r.ok?this.admit(e,r.value.snapshot,()=>n(r.value.snapshot)):r}async admitRun(e,t,n){let r=this.encode(`input`,e);if(!r.ok)return r;this.occupied.input+=r.value.bytes;let i=this.encode(`input`,t);if(!i.ok)return this.occupied.input-=r.value.bytes,i;this.occupied.input+=i.value.bytes;try{return await n(r.value.snapshot,i.value.snapshot),{ok:!0,value:void 0}}catch(e){throw this.poisoned=!0,e}}async admit(e,t,n){let r=p(t),i=e===`input`?this.limits.inputBytes:this.limits.outputBytes;if(this.poisoned||r>i-this.occupied[e])return{ok:!1,error:this.error(e)};this.occupied[e]+=r;try{let t=await n();return t.applied||(this.occupied[e]-=r),{ok:!0,value:t}}catch(e){throw this.poisoned=!0,e}}},h=class{limit;committed=0;reserved=0;closed=!1;constructor(e){if(this.limit=e,e!==void 0&&(!Number.isFinite(e)||e<=0))throw RangeError(`Root credit limit must be positive and finite`)}close(){this.closed=!0}reserve(e){if(!Number.isFinite(e)||e<0)return{ok:!1,error:r(`DAG_VALIDATION_NEGATIVE_ESTIMATED_CREDITS`,`estimatedCredits must be finite and zero or positive`,{estimatedCredits:e})};if(this.closed||this.limit!==void 0&&e>this.limit-this.committed-this.reserved)return{ok:!1,error:r(`DAG_VALIDATION_CREDIT_LIMIT_EXCEEDED`,`Estimated run credits exceeds root runCreditLimit`,{estimatedCredits:e,...this.limit===void 0?{}:{runCreditLimit:this.limit}})};this.reserved+=e;let t=!1;return{ok:!0,value:{commit:()=>(t||(t=!0,this.reserved-=e,this.committed+=e),this.committed),release:()=>{t||(t=!0,this.reserved-=e)}}}}};function g(e){if(e==null)return;if(typeof e!=`object`||Array.isArray(e))throw Error(`Invalid persisted DAG execution lineage`);let t=e,n=t.parentRunId!==void 0,r=!n||typeof t.parentRunId==`string`&&t.parentRunId.length>0;if(typeof t.rootRunId!=`string`||t.rootRunId.length===0||!r||!Number.isSafeInteger(t.depth)||t.depth<0||t.maxDepth!==void 0&&(!Number.isSafeInteger(t.maxDepth)||t.maxDepth<1)||!Array.isArray(t.ancestorCompositeNodeTypes)||!t.ancestorCompositeNodeTypes.every(e=>typeof e==`string`&&e.length>0))throw Error(`Invalid persisted DAG execution lineage`);let i=t.depth,a=t.ancestorCompositeNodeTypes.length;if(!(i===0?!n&&a===0:n&&a===i))throw Error(`Invalid persisted DAG execution lineage`);return{rootRunId:t.rootRunId,...n?{parentRunId:t.parentRunId}:{},depth:i,...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},ancestorCompositeNodeTypes:[...t.ancestorCompositeNodeTypes]}}const _=Object.freeze({maxTextRepeatOutputBytes:4*1024*1024,maxTextReplaceOutputBytes:4*1024*1024,maxTextTemplateOutputBytes:4*1024*1024,maxTextJoinOutputBytes:4*1024*1024,maxTextSplitOutputBytes:4*1024*1024,maxTextTransformOutputBytes:4*1024*1024,maxTextUpperOutputBytes:4*1024*1024,maxTextLowerOutputBytes:4*1024*1024,maxHttpResponseBodyBytes:4*1024*1024});function ee(e){let t=e===void 0?_.maxTextRepeatOutputBytes:e.maxTextRepeatOutputBytes;if(!Number.isSafeInteger(t)||t<0||t>_.maxTextRepeatOutputBytes)throw RangeError(`maxTextRepeatOutputBytes must be a safe integer between 0 and 4194304`);let n=e&&`maxTextReplaceOutputBytes`in e?e.maxTextReplaceOutputBytes:4*1024*1024;if(typeof n!=`number`||!Number.isSafeInteger(n)||n<0||n>4*1024*1024)throw RangeError(`maxTextReplaceOutputBytes must be a safe integer between 0 and 4194304`);let r=e&&`maxTextTemplateOutputBytes`in e?e.maxTextTemplateOutputBytes:4*1024*1024;if(typeof r!=`number`||!Number.isSafeInteger(r)||r<0||r>4*1024*1024)throw RangeError(`maxTextTemplateOutputBytes must be a safe integer between 0 and 4194304`);let i=e&&`maxTextJoinOutputBytes`in e?e.maxTextJoinOutputBytes:4*1024*1024;if(typeof i!=`number`||!Number.isSafeInteger(i)||i<0||i>4*1024*1024)throw RangeError(`maxTextJoinOutputBytes must be a safe integer between 0 and 4194304`);let a=e&&`maxTextSplitOutputBytes`in e?e.maxTextSplitOutputBytes:4*1024*1024;if(typeof a!=`number`||!Number.isSafeInteger(a)||a<0||a>4*1024*1024)throw RangeError(`maxTextSplitOutputBytes must be a safe integer between 0 and 4194304`);let o=e&&`maxTextTransformOutputBytes`in e?e.maxTextTransformOutputBytes:4*1024*1024;if(typeof o!=`number`||!Number.isSafeInteger(o)||o<0||o>4*1024*1024)throw RangeError(`maxTextTransformOutputBytes must be a safe integer between 0 and 4194304`);let s=e&&`maxTextUpperOutputBytes`in e?e.maxTextUpperOutputBytes:4*1024*1024;if(typeof s!=`number`||!Number.isSafeInteger(s)||s<0||s>4*1024*1024)throw RangeError(`maxTextUpperOutputBytes must be a safe integer between 0 and 4194304`);let c=e&&`maxTextLowerOutputBytes`in e?e.maxTextLowerOutputBytes:4*1024*1024;if(typeof c!=`number`||!Number.isSafeInteger(c)||c<0||c>4*1024*1024)throw RangeError(`maxTextLowerOutputBytes must be a safe integer between 0 and 4194304`);let l=e&&`maxHttpResponseBodyBytes`in e?e.maxHttpResponseBodyBytes:4*1024*1024;if(typeof l!=`number`||!Number.isSafeInteger(l)||l<0||l>4*1024*1024)throw RangeError(`maxHttpResponseBodyBytes must be a safe integer between 0 and 4194304`);return Object.freeze({maxTextRepeatOutputBytes:t,maxTextReplaceOutputBytes:n,maxTextTemplateOutputBytes:r,maxTextJoinOutputBytes:i,maxTextSplitOutputBytes:a,maxTextTransformOutputBytes:o,maxTextUpperOutputBytes:s,maxTextLowerOutputBytes:c,maxHttpResponseBodyBytes:l})}function v(e){let t=e.lastIndexOf(`[`);if(t<=0||!e.endsWith(`]`))return;let n=e.slice(0,t),r=e.slice(t+1,e.length-1);if(/^\d+$/.test(r))return{portKey:n,index:Number.parseInt(r,10)}}const y={CREATED:`created`,QUEUED:`queued`,RUNNING:`running`,SUCCESS:`success`,FAILED:`failed`,CANCELLED:`cancelled`},b={CREATED:`created`,QUEUED:`queued`,RUNNING:`running`,SUCCESS:`success`,FAILED:`failed`,UPSTREAM_FAILED:`upstream_failed`,SKIPPED:`skipped`,CANCELLED:`cancelled`},te={STARTED:`execution.started`,COMPLETED:`execution.completed`,FAILED:`execution.failed`},ne={STARTED:`task.started`,COMPLETED:`task.completed`,FAILED:`task.failed`},re={[`${y.CREATED}:QUEUE`]:y.QUEUED,[`${y.CREATED}:CANCEL`]:y.CANCELLED,[`${y.QUEUED}:START`]:y.RUNNING,[`${y.QUEUED}:CANCEL`]:y.CANCELLED,[`${y.RUNNING}:COMPLETE_SUCCESS`]:y.SUCCESS,[`${y.RUNNING}:COMPLETE_FAILURE`]:y.FAILED,[`${y.RUNNING}:CANCEL`]:y.CANCELLED};function x(e,t){return{code:`DAG_STATE_TRANSITION_INVALID`,category:`state_transition`,message:`DagRun transition is not allowed: ${e} -> ${t}`,retryable:!1,context:{currentStatus:e,event:t}}}function ie(e){return`run.${e}`}var S=class{static transition(e,t){let n=`${e}:${t}`,r=re[n];return r?{ok:!0,value:{nextStatus:r,domainEvents:[ie(r)]}}:{ok:!1,error:x(e,t)}}};const ae={[`${b.CREATED}:QUEUE`]:b.QUEUED,[`${b.CREATED}:CANCEL`]:b.CANCELLED,[`${b.QUEUED}:START`]:b.RUNNING,[`${b.QUEUED}:UPSTREAM_FAIL`]:b.UPSTREAM_FAILED,[`${b.QUEUED}:SKIP`]:b.SKIPPED,[`${b.QUEUED}:CANCEL`]:b.CANCELLED,[`${b.RUNNING}:COMPLETE_SUCCESS`]:b.SUCCESS,[`${b.RUNNING}:COMPLETE_FAILURE`]:b.FAILED,[`${b.RUNNING}:CANCEL`]:b.CANCELLED,[`${b.FAILED}:RETRY`]:b.QUEUED,[`${b.RUNNING}:RECLAIM`]:b.QUEUED};function oe(e,t){return{code:`DAG_STATE_TRANSITION_INVALID`,category:`state_transition`,message:`TaskRun transition is not allowed: ${e} -> ${t}`,retryable:!1,context:{currentStatus:e,event:t}}}function se(e){return`task.${e}`}var C=class{static transition(e,t){let n=`${e}:${t}`,r=ae[n];return r?{ok:!0,value:{nextStatus:r,domainEvents:[se(r)]}}:{ok:!1,error:oe(e,t)}}};function w(e,t,n){e.push({path:t,message:n})}function T(e,t){return typeof t==`number`?`${e}[${t}]`:e===``?t:`${e}.${t}`}function E(e,t,n){return typeof e!=`object`||!e||Array.isArray(e)?w(n,t,`expected an object, got ${P(e)}`):e}function D(e,t,n){return typeof e==`string`?e:w(n,t,`expected a string, got ${P(e)}`)}function O(e,t,n){return typeof e==`number`&&Number.isFinite(e)?e:w(n,t,`expected a finite number, got ${P(e)}`)}function k(e,t,n){return typeof e==`boolean`?e:w(n,t,`expected a boolean, got ${P(e)}`)}function A(e,t,n,r){return typeof e==`string`&&t.includes(e)?e:w(r,n,`expected one of ${t.map(e=>`'${e}'`).join(`, `)}, got ${P(e)}`)}function j(e,t,n,r){return e===void 0?void 0:r(e,t,n)}function M(e,t,n,r){if(!Array.isArray(e))return w(n,t,`expected an array, got ${P(e)}`);let i=n.length,a=e.map((e,i)=>r(e,T(t,i),n));return n.length===i?a:void 0}function N(e,t,n){return M(e,t,n,D)}function P(e){return e===null?`null`:Array.isArray(e)?`an array`:typeof e==`string`?`string '${e.length>40?`${e.slice(0,40)}…`:e}'`:typeof e}function F(e){return e.map(e=>`${e.path===``?`$`:e.path}: ${e.message}`).join(`; `)}function ce(e,t,n,i={}){return r(e,`${t}: ${F(n)}`,{...i,issueCount:n.length,firstIssuePath:n[0]?.path??``})}const le=[`draft`,`published`,`deprecated`],ue=[`string`,`number`,`boolean`,`object`,`array`,`binary`],de=[`image`,`video`,`audio`,`file`];function I(e,t={}){let n=[],r=fe(e,``,n,t);return r!==void 0&&n.length===0?{ok:!0,value:r}:{ok:!1,error:n}}function L(e,t,n,r={},i={}){let a=I(e,i);return a.ok?a:{ok:!1,error:ce(t,n,a.error,r)}}function fe(e,t,n,r){let i=E(e,t,n);if(i===void 0)return;let a=D(i.dagId,T(t,`dagId`),n),o=O(i.version,T(t,`version`),n),s=i.status===void 0&&r.absentStatus!==void 0?r.absentStatus:A(i.status,le,T(t,`status`),n),c=M(i.nodes,T(t,`nodes`),n,me),l=i.edges===void 0&&r.absentEdgesAsEmpty?[]:M(i.edges,T(t,`edges`),n,ge),u=j(i.costPolicy,T(t,`costPolicy`),n,R),d=j(i.inputSchema,T(t,`inputSchema`),n,D),f=j(i.outputSchema,T(t,`outputSchema`),n,D);if(a===void 0||o===void 0||s===void 0||c===void 0||l===void 0)return;let p={dagId:a,version:o,status:s,nodes:c,edges:l};return u!==void 0&&(p.costPolicy=u),d!==void 0&&(p.inputSchema=d),f!==void 0&&(p.outputSchema=f),p}function R(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=O(r.runCreditLimit,T(t,`runCreditLimit`),n),a=O(r.costPolicyVersion,T(t,`costPolicyVersion`),n);return i===void 0||a===void 0?void 0:{runCreditLimit:i,costPolicyVersion:a}}function pe(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=O(r.x,T(t,`x`),n),a=O(r.y,T(t,`y`),n);return i===void 0||a===void 0?void 0:{x:i,y:a}}function z(e,t,n){return e===null||[`string`,`number`,`boolean`].includes(typeof e)?e:Array.isArray(e)?M(e,t,n,z):typeof e==`object`?B(e,t,n):w(n,t,`expected a JSON value, got ${typeof e}`)}function B(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i={},a=n.length;for(let[e,a]of Object.entries(r)){let r=z(a,T(t,e),n);r!==void 0&&(i[e]=r)}return n.length===a?i:void 0}function V(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=e=>T(t,e),a=D(r.key,i(`key`),n),o=A(r.type,ue,i(`type`),n),s=k(r.required,i(`required`),n),c=j(r.label,i(`label`),n,D),l=j(r.order,i(`order`),n,O),u=j(r.description,i(`description`),n,D),d=j(r.binaryKind,i(`binaryKind`),n,(e,t,n)=>A(e,de,t,n)),f=j(r.mimeTypes,i(`mimeTypes`),n,N),p=j(r.isList,i(`isList`),n,k),m=j(r.minItems,i(`minItems`),n,O),h=j(r.maxItems,i(`maxItems`),n,O);if(a===void 0||o===void 0||s===void 0)return;let g={key:a,type:o,required:s};return c!==void 0&&(g.label=c),l!==void 0&&(g.order=l),u!==void 0&&(g.description=u),d!==void 0&&(g.binaryKind=d),f!==void 0&&(g.mimeTypes=f),p!==void 0&&(g.isList=p),m!==void 0&&(g.minItems=m),h!==void 0&&(g.maxItems=h),g}function me(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=e=>T(t,e),a=D(r.nodeId,i(`nodeId`),n),o=D(r.nodeType,i(`nodeType`),n),s=N(r.dependsOn,i(`dependsOn`),n),c=B(r.config,i(`config`),n),l=j(r.position,i(`position`),n,pe),u=j(r.triggerPolicy,i(`triggerPolicy`),n,D),d=j(r.retryPolicy,i(`retryPolicy`),n,D),f=j(r.timeoutMs,i(`timeoutMs`),n,O),p=j(r.inputs,i(`inputs`),n,(e,t,n)=>M(e,t,n,V)),m=j(r.outputs,i(`outputs`),n,(e,t,n)=>M(e,t,n,V)),h=j(r.costPolicy,i(`costPolicy`),n,R);if(a===void 0||o===void 0||s===void 0||c===void 0)return;let g={nodeId:a,nodeType:o,dependsOn:s,config:c};return l!==void 0&&(g.position=l),u!==void 0&&(g.triggerPolicy=u),d!==void 0&&(g.retryPolicy=d),f!==void 0&&(g.timeoutMs=f),p!==void 0&&(g.inputs=p),m!==void 0&&(g.outputs=m),h!==void 0&&(g.costPolicy=h),g}function he(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=D(r.outputKey,T(t,`outputKey`),n),a=D(r.inputKey,T(t,`inputKey`),n);return i===void 0||a===void 0?void 0:{outputKey:i,inputKey:a}}function ge(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=D(r.from,T(t,`from`),n),a=D(r.to,T(t,`to`),n),o=j(r.bindings,T(t,`bindings`),n,(e,t,n)=>M(e,t,n,he));if(i===void 0||a===void 0)return;let s={from:i,to:a};return o!==void 0&&(s.bindings=o),s}function _e(e){let t=[],n=Se(e,``,t);return n!==void 0&&t.length===0?{ok:!0,value:n}:{ok:!1,error:t}}function H(e,t,n){if(!Array.isArray(e)||e.length!==2)return w(n,t,`expected a [number, number] pair`);let r=O(e[0],T(t,0),n),i=O(e[1],T(t,1),n);return r===void 0||i===void 0?void 0:[r,i]}function ve(e,t,n){if(!Array.isArray(e)||e.length!==6)return w(n,t,`expected a 6-tuple [linkId, srcId, srcSlot, tgtId, tgtSlot, type]`);let r=[0,1,2,3,4].map(r=>O(e[r],T(t,r),n)),i=D(e[5],T(t,5),n);if(r.some(e=>e===void 0)||i===void 0)return;let[a,o,s,c,l]=r;return[a,o,s,c,l,i]}function ye(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=D(r.name,T(t,`name`),n),a=D(r.type,T(t,`type`),n),o=r.link,s=o===null?null:O(o,T(t,`link`),n);return i===void 0||a===void 0||s===void 0?void 0:{name:i,type:a,link:s}}function be(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=D(r.name,T(t,`name`),n),a=D(r.type,T(t,`type`),n),o=M(r.links,T(t,`links`),n,O),s=j(r.slot_index,T(t,`slot_index`),n,O);if(i===void 0||a===void 0||o===void 0)return;let c={name:i,type:a,links:o};return s!==void 0&&(c.slot_index=s),c}function xe(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=e=>T(t,e),a=O(r.id,i(`id`),n),o=D(r.type,i(`type`),n),s=H(r.pos,i(`pos`),n),c=j(r.size,i(`size`),n,H),l=j(r.flags,i(`flags`),n,E),u=j(r.order,i(`order`),n,O),d=j(r.mode,i(`mode`),n,O),f=j(r.inputs,i(`inputs`),n,(e,t,n)=>M(e,t,n,ye)),p=j(r.outputs,i(`outputs`),n,(e,t,n)=>M(e,t,n,be)),m=j(r.properties,i(`properties`),n,E),h=j(r.widgets_values,i(`widgets_values`),n,(e,t,n)=>Array.isArray(e)?e:w(n,t,`expected an array`));if(a===void 0||o===void 0||s===void 0)return;let g={id:a,type:o,pos:s};return c!==void 0&&(g.size=c),l!==void 0&&(g.flags=l),u!==void 0&&(g.order=u),d!==void 0&&(g.mode=d),f!==void 0&&(g.inputs=f),p!==void 0&&(g.outputs=p),m!==void 0&&(g.properties=m),h!==void 0&&(g.widgets_values=h),g}function Se(e,t,n){let r=E(e,t,n);if(r===void 0)return;let i=e=>T(t,e);if(`dagId`in r)return w(n,i(`dagId`),`a workflow file carries no dagId — that is a definition file`);let a=O(r.last_node_id,i(`last_node_id`),n),o=O(r.last_link_id,i(`last_link_id`),n),s=M(r.nodes,i(`nodes`),n,xe),c=M(r.links,i(`links`),n,ve),l=O(r.version,i(`version`),n),u=j(r.groups,i(`groups`),n,(e,t,n)=>Array.isArray(e)?e:w(n,t,`expected an array`)),d=j(r.config,i(`config`),n,E),f=j(r.extra,i(`extra`),n,E);if(a===void 0||o===void 0||s===void 0||c===void 0||l===void 0)return;let p={last_node_id:a,last_link_id:o,nodes:s,links:c,version:l};return u!==void 0&&(p.groups=u),d!==void 0&&(p.config=d),f!==void 0&&(p.extra=f),p}function U(e){let t=Date.parse(e);return Number.isNaN(t)?{ok:!1,error:r(`DAG_VALIDATION_INVALID_LOGICAL_DATE`,`logicalDate must be a valid ISO-8601 datetime string`,{logicalDate:e})}:{ok:!0,value:new Date(t).toISOString()}}var Ce=class{clock;constructor(e){this.clock=e}resolve(e,t){let n=this.clock.nowIso();if(e===`scheduled`){if(!t)return{ok:!1,error:r(`DAG_VALIDATION_MISSING_LOGICAL_DATE`,`scheduled trigger requires logicalDate`,{trigger:e})};let i=U(t);return i.ok?{ok:!0,value:{trigger:e,logicalDate:i.value,requestedAt:n}}:i}if(!t)return{ok:!0,value:{trigger:e,logicalDate:n,requestedAt:n}};let i=U(t);return i.ok?{ok:!0,value:{trigger:e,logicalDate:i.value,requestedAt:n}}:i}},we=class{assertWithinBudget(e,t,n){if(t<0)return{ok:!1,error:r(`DAG_VALIDATION_NEGATIVE_ESTIMATED_CREDITS`,`estimatedCredits must be zero or positive`,{nextEstimatedCredits:t})};let i=e+t;return typeof n==`number`&&i>n?{ok:!1,error:r(`DAG_VALIDATION_CREDIT_LIMIT_EXCEEDED`,`Estimated run credits exceeds runCreditLimit`,{nextTotalCredits:i,runCreditLimit:n})}:{ok:!0,value:i}}},Te=class{lifecycleFactory;costPolicyEvaluator;constructor(e,t){this.lifecycleFactory=e,this.costPolicyEvaluator=t}async runNode(e){let t=()=>({ok:!1,error:o(e.context.taskRunId)});if(e.context.signal?.aborted)return t();let n=this.lifecycleFactory.create(e.context.nodeDefinition.nodeType);if(!n.ok)return n;let r=await n.value.initialize(e.context);if(e.context.signal?.aborted)return await n.value.dispose(e.context),t();if(!r.ok)return r;let i=await n.value.validateInput(e.input,e.context);if(e.context.signal?.aborted)return await n.value.dispose(e.context),t();if(!i.ok)return await n.value.dispose(e.context),i;let s=await n.value.estimateCost(e.input,e.context);if(e.context.signal?.aborted)return await n.value.dispose(e.context),t();if(!s.ok)return await n.value.dispose(e.context),s;let c=this.costPolicyEvaluator.assertWithinBudget(e.context.currentTotalCredits,s.value.estimatedCredits,e.context.runCreditLimit);if(!c.ok)return await n.value.dispose(e.context),c;if(e.context.reserveCredits){let r=await e.context.reserveCredits(s.value.estimatedCredits);if(!r.ok)return await n.value.dispose(e.context),r;if(e.context.signal?.aborted)return await n.value.dispose(e.context),t()}let l=e.context.rootCreditBudget?.reserve(s.value.estimatedCredits);if(l&&!l.ok)return await n.value.dispose(e.context),l;try{let r=await n.value.execute(e.input,e.context);if(e.context.signal?.aborted)return await n.value.dispose(e.context),t();if(!r.ok)return await n.value.dispose(e.context),r;let i=await n.value.validateOutput(r.value,e.context);if(e.context.signal?.aborted)return await n.value.dispose(e.context),t();if(!i.ok)return await n.value.dispose(e.context),i;let o=await n.value.dispose(e.context);return e.context.signal?.aborted?t():o.ok?(l?.value.commit(),{ok:!0,value:{output:r.value,estimatedCredits:s.value.estimatedCredits,totalCredits:c.value}}):{ok:!1,error:a(`DAG_TASK_EXECUTION_DISPOSE_FAILED`,`Node dispose step failed after execution`,!1,{nodeType:e.context.nodeDefinition.nodeType,taskRunId:e.context.taskRunId})}}finally{l?.ok&&l.value.release()}}},Ee=class{create(e){return{ok:!1,error:r(`DAG_VALIDATION_NODE_LIFECYCLE_NOT_REGISTERED`,`Node lifecycle is not registered for nodeType`,{nodeType:e})}}},De=class{nodeManifestRegistry;lineage;lifecycleFactory;runner;constructor(e,t,n){this.nodeManifestRegistry=e,this.lineage=n,this.lifecycleFactory=t??new Ee,this.runner=new Te(this.lifecycleFactory,new we)}async execute(e){if(!e.nodeDefinition)return{ok:!1,error:r(`DAG_VALIDATION_NODE_DEFINITION_MISSING`,`Task execution requires nodeDefinition in execution input`,{nodeId:e.nodeId})};let t=this.nodeManifestRegistry.getManifest(e.nodeDefinition.nodeType);if(!t)return{ok:!1,error:r(`DAG_VALIDATION_NODE_MANIFEST_NOT_FOUND`,`Node manifest is not registered for nodeType`,{nodeType:e.nodeDefinition.nodeType})};let n=await this.runner.runNode({input:e.input,context:{executionRoot:e.executionRoot,regexReplaceOperation:e.regexReplaceOperation,snapshotBudget:e.snapshotBudget,rootCreditBudget:e.rootCreditBudget,reserveCredits:e.reserveCredits,...e.byteLimits===void 0?{}:{byteLimits:e.byteLimits},...e.signal===void 0?{}:{signal:e.signal},dagId:e.dagId,dagRunId:e.dagRunId,taskRunId:e.taskRunId,nodeDefinition:e.nodeDefinition,nodeManifest:t,attempt:e.attempt,executionPath:e.executionPath,lineage:e.lineage??this.lineage??{rootRunId:e.dagRunId,depth:0,ancestorCompositeNodeTypes:[]},runCreditLimit:e.costPolicy?.runCreditLimit,currentTotalCredits:e.currentTotalCredits??0,...e.runtimeBaseUrl===void 0?{}:{runtimeBaseUrl:e.runtimeBaseUrl}}});return n.ok?{ok:!0,output:n.value.output,estimatedCredits:n.value.estimatedCredits,totalCredits:n.value.totalCredits}:n}};const Oe={root:`.workflows`,workflowExt:`.json`};function W(e,t,n){let i={result:{applied:!1,runStatus:e?.status}};if(!e)return i;if(n.kind===`transition-run`){if(e.status!==n.expectedStatus)return i;let t=S.transition(e.status,n.event);if(!t.ok)return i;let r={...e,status:t.value.nextStatus,endedAt:n.endedAt};return{dagRun:r,result:{applied:!0,runStatus:r.status}}}if(n.kind===`finalize`){if(e.status!==`running`||t.some(e=>[`created`,`queued`,`running`].includes(e.status)))return i;let r=ke(e,t);if(!r.ok)return{result:{...i.result,error:r.error}};if(r.value)return i;let a=S.transition(e.status,t.some(e=>e.status===`failed`)?`COMPLETE_FAILURE`:`COMPLETE_SUCCESS`);if(!a.ok)return i;let o=a.value.nextStatus;return{dagRun:{...e,status:o,endedAt:n.endedAt},result:{applied:!0,runStatus:o}}}if(n.kind===`admit`)return e.status!==`running`||n.taskRun.dagRunId!==e.dagRunId||t.some(e=>e.nodeId===n.taskRun.nodeId||e.taskRunId===n.taskRun.taskRunId)||!n.dependsOn.every(e=>t.some(t=>t.nodeId===e&&t.status===`success`))?i:{taskRun:n.taskRun,result:{applied:!0,runStatus:e.status,taskRun:n.taskRun}};let a=t.find(e=>e.taskRunId===n.taskRunId);if(n.kind===`cancel-task`){if(!a||![`failed`,`cancelled`].includes(e.status))return i;let t=C.transition(a.status,`CANCEL`);if(!t.ok)return i;let r={...a,status:t.value.nextStatus,leaseOwner:void 0,leaseUntil:void 0,reservedCredits:void 0,reservationAttempt:void 0,reservationOwner:void 0,errorCode:n.error?.code,errorMessage:n.error?.message};return{taskRun:r,result:{applied:!0,runStatus:e.status,taskRun:r}}}if(!a||a.status!==`running`||a.attempt!==n.attempt||a.leaseOwner!==n.leaseOwner)return i;if(e.status!==`running`){if(e.status!==`cancelled`||a.status!==`running`)return i;let t={...a,status:`cancelled`,leaseOwner:void 0,leaseUntil:void 0,reservedCredits:void 0,reservationAttempt:void 0,reservationOwner:void 0};return{taskRun:t,result:{applied:!1,runStatus:e.status,taskRun:t}}}if(n.kind===`snapshot-input`){let t={...a,inputSnapshot:n.inputSnapshot};return{taskRun:t,result:{applied:!0,runStatus:e.status,taskRun:t}}}if(n.kind===`reserve-credits`){let o=n.estimatedCredits;if(!Number.isFinite(o)||o<0||e.definitionSnapshot===void 0)return i;let s;try{s=JSON.parse(e.definitionSnapshot)}catch{return i}let c=L(s,`DAG_VALIDATION_DEFINITION_SNAPSHOT_INVALID`,`DagRun definition snapshot has invalid shape`,{dagRunId:e.dagRunId});if(!c.ok||c.value.costPolicy===void 0)return i;let l=c.value.costPolicy.runCreditLimit;if(a.reservedCredits!==void 0)return{result:{...i.result,applied:a.reservationAttempt===n.attempt&&a.reservationOwner===n.leaseOwner&&a.reservedCredits===o}};let u=G(t);if(!u.ok)return{result:{...i.result,error:u.error}};let d=u.value+t.reduce((e,t)=>e+(t.reservedCredits??0),0);if(d+o>l)return{result:{...i.result,error:r(`DAG_VALIDATION_CREDIT_LIMIT_EXCEEDED`,`Estimated run credits exceeds runCreditLimit`,{nextTotalCredits:d+o,runCreditLimit:l})}};let f={...a,reservedCredits:o,reservationAttempt:n.attempt,reservationOwner:n.leaseOwner};return{taskRun:f,result:{applied:!0,runStatus:e.status,taskRun:f}}}let o=C.transition(a.status,n.status===`success`?`COMPLETE_SUCCESS`:`COMPLETE_FAILURE`);if(!o.ok)return i;if(n.status===`success`&&e.definitionSnapshot!==void 0){let t;try{t=JSON.parse(e.definitionSnapshot)}catch{return i}let n=L(t,`DAG_VALIDATION_DEFINITION_SNAPSHOT_INVALID`,`DagRun definition snapshot has invalid shape`,{dagRunId:e.dagRunId});if(!n.ok||n.value.costPolicy!==void 0&&a.reservedCredits===void 0)return i}if(n.status===`success`&&a.reservedCredits!==void 0&&(a.reservationAttempt!==n.attempt||a.reservationOwner!==n.leaseOwner||n.estimatedCredits!==a.reservedCredits))return i;let s=n.status===`success`&&a.reservedCredits!==void 0?G(t):void 0;if(s&&!s.ok)return{result:{...i.result,error:s.error}};let c=n.status===`failed`&&n.reserveRetry===!0,l=c?C.transition(o.value.nextStatus,`RETRY`):void 0;if(l&&!l.ok)return i;let u={...a,status:l?.ok?l.value.nextStatus:o.value.nextStatus,attempt:c?a.attempt+1:a.attempt,reservedCredits:void 0,reservationAttempt:void 0,reservationOwner:void 0,errorCode:c?void 0:n.error?.code,errorMessage:c?void 0:n.error?.message,...n.outputSnapshot===void 0?{}:{outputSnapshot:n.outputSnapshot},...n.estimatedCredits===void 0?{}:{estimatedCredits:n.estimatedCredits},...n.status!==`success`||a.reservedCredits===void 0?n.totalCredits===void 0?{}:{totalCredits:n.totalCredits}:{totalCredits:s.value+a.reservedCredits}};return{taskRun:u,result:{applied:!0,runStatus:e.status,taskRun:u}}}function G(e){let t=0,n=0;for(let r of e)if(r.status===`success`){if(r.totalCredits!==void 0){if(!Number.isFinite(r.totalCredits)||r.totalCredits<0)return K(r);n=Math.max(n,r.totalCredits)}if(r.estimatedCredits===void 0&&r.totalCredits===void 0)return K(r);if(r.estimatedCredits!==void 0){if(!Number.isFinite(r.estimatedCredits)||r.estimatedCredits<0)return K(r);t+=r.estimatedCredits}}return{ok:!0,value:Math.max(t,n)}}function K(e){return{ok:!1,error:r(`DAG_VALIDATION_CREDIT_HISTORY_AMBIGUOUS`,`Prior task credits cannot be accounted for safely`,{taskRunId:e.taskRunId})}}function ke(e,t){if(e.definitionSnapshot===void 0)return{ok:!0,value:!1};let n;try{n=JSON.parse(e.definitionSnapshot)}catch{return{ok:!1,error:r(`DAG_VALIDATION_DEFINITION_SNAPSHOT_PARSE_FAILED`,`Failed to parse DagRun definition snapshot`,{dagRunId:e.dagRunId})}}let i=L(n,`DAG_VALIDATION_DEFINITION_SNAPSHOT_INVALID`,`DagRun definition snapshot has invalid shape`,{dagRunId:e.dagRunId});return i.ok?{ok:!0,value:i.value.nodes.some(e=>!t.some(t=>t.nodeId===e.nodeId)&&e.dependsOn.every(e=>t.some(t=>t.nodeId===e&&t.status===`success`)))}:i}function Ae(e,t,n){let i=n.issues[0];return r(`DAG_VALIDATION_NODE_CONFIG_SCHEMA_INVALID`,`Node config does not satisfy schema: ${i?.path.join(`.`)??`config`} ${i?.message??`Invalid config`}`,{nodeId:t.nodeDefinition.nodeId,nodeType:e,issueCount:n.issues.length})}var je=class{defaultInputPort;defaultOutputPort;taskHandler;constructor(){this.taskHandler={initialize:async e=>{let t=this.parseNodeConfig(e);return t.ok?this.initializeWithConfig(e,t.value):t},validateInput:async(e,t)=>{let n=this.parseNodeConfig(t);return n.ok?this.validateInputWithConfig(e,t,n.value):n},estimateCost:async(e,t)=>{let n=this.parseNodeConfig(t);return n.ok?this.estimateCostWithConfig(e,t,n.value):n},execute:async(e,t)=>{let n=this.parseNodeConfig(t);return n.ok?this.executeWithConfig(e,t,n.value):n},validateOutput:async(e,t)=>{let n=this.parseNodeConfig(t);return n.ok?this.validateOutputWithConfig(e,t,n.value):n},dispose:async e=>{let t=this.parseNodeConfig(e);return t.ok?this.disposeWithConfig(e,t.value):t}}}parseNodeConfig(e){let t=this.configSchemaDefinition.safeParse(e.nodeDefinition.config);return t.success?{ok:!0,value:t.data}:{ok:!1,error:Ae(this.nodeType,e,t.error)}}async initializeWithConfig(e,t){return{ok:!0,value:void 0}}async validateInputWithConfig(e,t,n){return{ok:!0,value:void 0}}async validateOutputWithConfig(e,t,n){return{ok:!0,value:void 0}}async disposeWithConfig(e,t){return{ok:!0,value:void 0}}};const q=`asset://`;var J=class e{value;constructor(e){this.value=e}static fromAssetReference(t){return t.referenceType===`asset`?new e({referenceType:`asset`,assetId:t.assetId,mediaType:t.mediaType,name:t.name,sizeBytes:t.sizeBytes}):new e({referenceType:`uri`,uri:t.uri,mediaType:t.mediaType,name:t.name,sizeBytes:t.sizeBytes})}static fromBinary(t){if(typeof t.assetId==`string`&&t.assetId.trim().length>0)return{ok:!0,value:new e({referenceType:`asset`,assetId:t.assetId.trim(),mediaType:t.mimeType,sizeBytes:t.sizeBytes})};if(t.uri.startsWith(q)){let n=t.uri.slice(8).trim();return n.length===0?{ok:!1,error:r(`DAG_VALIDATION_MEDIA_REFERENCE_INVALID`,`Binary asset URI must include non-empty assetId`)}:{ok:!0,value:new e({referenceType:`asset`,assetId:n,mediaType:t.mimeType,sizeBytes:t.sizeBytes})}}return{ok:!0,value:new e({referenceType:`uri`,uri:t.uri,mediaType:t.mimeType,sizeBytes:t.sizeBytes})}}static fromCandidate(e,t){let n=typeof e.assetId==`string`&&(t?.allowEmptyAssetId===!0||e.assetId.trim().length>0),i=typeof e.uri==`string`&&(t?.allowEmptyUri===!0||e.uri.trim().length>0);return n===i?{ok:!1,error:r(`DAG_VALIDATION_MEDIA_REFERENCE_XOR_REQUIRED`,`Exactly one of assetId or uri must be provided`)}:e.referenceType===`asset`&&!n?{ok:!1,error:r(`DAG_VALIDATION_MEDIA_REFERENCE_TYPE_MISMATCH`,`referenceType asset requires assetId`)}:e.referenceType===`uri`&&!i?{ok:!1,error:r(`DAG_VALIDATION_MEDIA_REFERENCE_TYPE_MISMATCH`,`referenceType uri requires uri`)}:this.buildFromValidatedCandidate(e,n)}static buildFromValidatedCandidate(t,n){return n&&typeof t.assetId==`string`?{ok:!0,value:new e({referenceType:`asset`,assetId:t.assetId.trim(),mediaType:t.mediaType,name:t.name,sizeBytes:t.sizeBytes})}:typeof t.uri==`string`?{ok:!0,value:new e({referenceType:`uri`,uri:t.uri,mediaType:t.mediaType,name:t.name,sizeBytes:t.sizeBytes})}:{ok:!1,error:r(`DAG_VALIDATION_MEDIA_REFERENCE_INVALID`,`uri must be a string when referenceType is uri`)}}isAsset(){return this.value.referenceType===`asset`}isUri(){return this.value.referenceType===`uri`}assetId(){return this.value.assetId}uri(){return this.value.uri}mediaType(){return this.value.mediaType}toAssetIdOrUri(){return this.value.referenceType===`asset`&&typeof this.value.assetId==`string`?{referenceType:`asset`,assetId:this.value.assetId}:{referenceType:`uri`,uri:this.value.uri??``}}toAssetContentUrl(e){if(!(!this.isAsset()||typeof this.value.assetId!=`string`))return`${e.replace(/\/$/,``)}/view?filename=${encodeURIComponent(this.value.assetId)}`}toBinary(e,t){let n=typeof this.value.mediaType==`string`&&this.value.mediaType.trim().length>0?this.value.mediaType:t;return this.value.referenceType===`asset`&&typeof this.value.assetId==`string`?{kind:e,mimeType:n,uri:`${q}${this.value.assetId}`,referenceType:`asset`,assetId:this.value.assetId,sizeBytes:this.value.sizeBytes}:{kind:e,mimeType:n,uri:this.value.uri??``,referenceType:`uri`,sizeBytes:this.value.sizeBytes}}};function Y(e,t,n,i){if(typeof e!=`object`||!e||Array.isArray(e))return{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`,`Node input key must be binary payload object`,{nodeId:t,key:n,expectedType:`binary`})};let a=e;if(a.kind!==`image`&&a.kind!==`video`&&a.kind!==`audio`&&a.kind!==`file`||typeof a.mimeType!=`string`||typeof a.uri!=`string`)return{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`,`Node input key must be valid binary payload`,{nodeId:t,key:n,expectedType:`binary`})};let o=a.kind;return i&&o!==i?{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`,`Node input binary kind does not match expected kind`,{nodeId:t,key:n,expectedKind:i,actualKind:o})}:{ok:!0,value:{kind:o,mimeType:a.mimeType,uri:a.uri,referenceType:a.referenceType===`asset`||a.referenceType===`uri`?a.referenceType:void 0,assetId:typeof a.assetId==`string`?a.assetId:void 0,sizeBytes:typeof a.sizeBytes==`number`?a.sizeBytes:void 0}}}var Me=class{input;nodeId;output={};constructor(e,t){this.input=e,this.nodeId=t}getInput(e){return this.input[e]}requireInput(e){let t=this.getInput(e);return t===void 0?{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_MISSING`,`Node input key is missing`,{nodeId:this.nodeId,key:e})}:{ok:!0,value:t}}requireInputString(e){let t=this.requireInput(e);return t.ok?typeof t.value==`string`?{ok:!0,value:t.value}:{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`,`Node input key must be string`,{nodeId:this.nodeId,key:e,expectedType:`string`})}:t}requireInputArray(e){let t=this.getInput(e);if(Array.isArray(t))return{ok:!0,value:t};let n=this.collectListHandleValues(e);return n?{ok:!0,value:n}:t===void 0?{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_MISSING`,`Node input key is missing`,{nodeId:this.nodeId,key:e})}:{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`,`Node input key must be array`,{nodeId:this.nodeId,key:e,expectedType:`array`})}}requireInputBinary(e,t){let n=this.requireInput(e);return n.ok?Y(n.value,this.nodeId,e,t):n}requireInputBinaryList(e,t,n){let i=this.requireInputArray(e);if(!i.ok)return i;let a=i.value;if(typeof n?.minItems==`number`&&a.length<n.minItems)return{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_MIN_ITEMS_NOT_SATISFIED`,`Node input list does not satisfy minItems`,{nodeId:this.nodeId,key:e,minItems:n.minItems,actualItems:a.length})};if(typeof n?.maxItems==`number`&&a.length>n.maxItems)return{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_MAX_ITEMS_EXCEEDED`,`Node input list exceeds maxItems`,{nodeId:this.nodeId,key:e,maxItems:n.maxItems,actualItems:a.length})};let o=[];for(let[n,r]of a.entries()){let i=Y(r,this.nodeId,`${e}[${n}]`,t);if(!i.ok)return i;o.push(i.value)}return{ok:!0,value:o}}requireInputMediaReference(e,t){let n=this.requireInput(e);return n.ok?this.parseMediaReferenceValue(n.value,e,t):n}requireInputBinaryReference(e,t){let n=this.requireInputBinary(e,t);if(!n.ok)return n;let i=J.fromBinary(n.value);return i.ok?i:{ok:!1,error:r(i.error.code,i.error.message,{nodeId:this.nodeId,key:e,...i.error.context??{}})}}setOutput(e,t){this.output[e]=t}toOutput(){return{...this.output}}collectListHandleValues(e){let t=new Map;for(let[n,r]of Object.entries(this.input)){let i=v(n);!i||i.portKey!==e||t.set(i.index,r)}if(t.size===0)return;let n=[...t.keys()].sort((e,t)=>e-t),r=n[n.length-1]+1;if(n.length!==r)return;let i=[];for(let e=0;e<r;e+=1){let n=t.get(e);if(n===void 0)return;i.push(n)}return i}parseMediaReferenceValue(e,t,n){if(typeof e==`string`){if(n?.allowStringAssetUri===!0&&e.startsWith(`asset://`))return this.wrapMediaReferenceError(J.fromCandidate({referenceType:`asset`,assetId:e.slice(8)}),t);if(n?.allowStringUri===!0)return this.wrapMediaReferenceError(J.fromCandidate({referenceType:`uri`,uri:e}),t)}return typeof e!=`object`||!e||Array.isArray(e)?{ok:!1,error:r(`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`,`Node input key must be media reference object`,{nodeId:this.nodeId,key:t,expectedType:`media-reference`})}:this.wrapMediaReferenceError(J.fromCandidate(e),t)}wrapMediaReferenceError(e,t){return e.ok?e:{ok:!1,error:r(e.error.code,e.error.message,{nodeId:this.nodeId,key:t,...e.error.context??{}})}}};function X(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return typeof t.kind==`string`&&typeof t.mimeType==`string`&&typeof t.uri==`string`}function Z(e,t){if(e.isList)return Array.isArray(t)?t.every(t=>Z({...e,isList:!1},t)):!1;switch(e.type){case`string`:return typeof t==`string`;case`number`:return typeof t==`number`;case`boolean`:return typeof t==`boolean`;case`object`:return typeof t==`object`&&!!t&&!Array.isArray(t)&&!X(t);case`array`:return Array.isArray(t);case`binary`:return!(!X(t)||e.binaryKind&&t.kind!==e.binaryKind||e.mimeTypes&&e.mimeTypes.length>0&&!e.mimeTypes.includes(t.mimeType));default:return!1}}function Q(e,t,n,i){for(let a of t){let t=e[a.key];if(t===void 0){if(a.required)return{ok:!1,error:r(n===`input`?`DAG_VALIDATION_NODE_REQUIRED_INPUT_MISSING`:`DAG_VALIDATION_NODE_REQUIRED_OUTPUT_MISSING`,n===`input`?`Required input port "${a.key}" (${a.type}) is missing on node "${i}"`:`Required output port "${a.key}" (${a.type}) was not set by node "${i}"`,{nodeId:i,key:a.key,type:a.type},n===`input`?{action:`connect_port`,suggestion:`Connect a "${a.type}" output to the "${a.key}" input of node "${i}"`}:void 0)};continue}if(a.isList){if(!Array.isArray(t))return{ok:!1,error:r(n===`input`?`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`:`DAG_VALIDATION_NODE_OUTPUT_TYPE_MISMATCH`,n===`input`?`List input port must receive array payload`:`List output port must emit array payload`,{nodeId:i,key:a.key,type:a.type})};if(typeof a.minItems==`number`&&t.length<a.minItems)return{ok:!1,error:r(n===`input`?`DAG_VALIDATION_NODE_INPUT_MIN_ITEMS_NOT_SATISFIED`:`DAG_VALIDATION_NODE_OUTPUT_MIN_ITEMS_NOT_SATISFIED`,n===`input`?`List input port does not satisfy minItems`:`List output port does not satisfy minItems`,{nodeId:i,key:a.key,minItems:a.minItems,actualItems:t.length})};if(typeof a.maxItems==`number`&&t.length>a.maxItems)return{ok:!1,error:r(n===`input`?`DAG_VALIDATION_NODE_INPUT_MAX_ITEMS_EXCEEDED`:`DAG_VALIDATION_NODE_OUTPUT_MAX_ITEMS_EXCEEDED`,n===`input`?`List input port exceeds maxItems`:`List output port exceeds maxItems`,{nodeId:i,key:a.key,maxItems:a.maxItems,actualItems:t.length})}}if(!Z(a,t))return{ok:!1,error:r(n===`input`?`DAG_VALIDATION_NODE_INPUT_TYPE_MISMATCH`:`DAG_VALIDATION_NODE_OUTPUT_TYPE_MISMATCH`,n===`input`?`Input port "${a.key}" on node "${i}" expects type "${a.type}" but received incompatible value`:`Output port "${a.key}" on node "${i}" emitted value incompatible with type "${a.type}"`,{nodeId:i,key:a.key,type:a.type},n===`input`?{action:`check_port_type`,suggestion:`Ensure the upstream output connected to "${a.key}" produces a "${a.type}" value`}:void 0)}}return{ok:!0,value:void 0}}var Ne=class{handler;constructor(e){this.handler=e}async initialize(e){return this.handler.initialize?this.handler.initialize(e):{ok:!0,value:void 0}}async validateInput(e,t){let n=Q(e,t.nodeManifest.inputs,`input`,t.nodeDefinition.nodeId);return n.ok?this.handler.validateInput?this.handler.validateInput(e,t):{ok:!0,value:void 0}:n}async estimateCost(e,t){return this.handler.estimateCost?this.handler.estimateCost(e,t):{ok:!0,value:{estimatedCredits:0}}}async execute(e,t){return this.handler.execute(e,t)}async validateOutput(e,t){let n=Q(e,t.nodeManifest.outputs,`output`,t.nodeDefinition.nodeId);return n.ok?this.handler.validateOutput?this.handler.validateOutput(e,t):{ok:!0,value:void 0}:n}async dispose(e){return this.handler.dispose?this.handler.dispose(e):{ok:!0,value:void 0}}},Pe=class{handlersByType;constructor(e){this.handlersByType=e}getHandler(e){return this.handlersByType[e]}listNodeTypes(){return Object.keys(this.handlersByType)}},Fe=class{taskHandlerRegistry;constructor(e){this.taskHandlerRegistry=e}create(e){let t=this.taskHandlerRegistry.getHandler(e);return t?{ok:!0,value:new Ne(t)}:{ok:!1,error:r(`DAG_VALIDATION_NODE_LIFECYCLE_NOT_REGISTERED`,`Node lifecycle is not registered for nodeType`,{nodeType:e})}}},Ie=class{manifestByType=new Map;constructor(e){for(let t of e)this.manifestByType.set(t.nodeType,t)}getManifest(e){return this.manifestByType.get(e)}listManifests(){return[...this.manifestByType.values()]}};const $=e.z.string().trim().min(1),Le=e.z.object({referenceType:e.z.literal(`asset`),assetId:$,mediaType:e.z.string().optional(),name:e.z.string().optional(),sizeBytes:e.z.number().int().nonnegative().optional()}),Re=e.z.object({referenceType:e.z.literal(`uri`),uri:$,mediaType:e.z.string().optional(),name:e.z.string().optional(),sizeBytes:e.z.number().int().nonnegative().optional()}),ze=e.z.union([Le,Re]);function Be(){return e.z.object({asset:ze})}function Ve(t){return typeof t!=`object`||!t?!1:t instanceof e.z.ZodType}function He(e){return e==null?{ok:!0,value:{}}:Ve(e)?{ok:!0,value:(0,t.zodToJsonSchema)(e,{target:`jsonSchema7`})}:{ok:!1,error:r(`DAG_VALIDATION_CONFIG_SCHEMA_INVALID`,`configSchemaDefinition must be a Zod schema instance.`)}}function Ue(e){let t=[],n={};for(let r of e){let e=He(r.configSchemaDefinition);if(!e.ok)return e;let i={nodeType:r.nodeType,displayName:r.displayName,category:r.category,inputs:r.inputs,outputs:r.outputs,configSchema:e.value,...r.defaultInputPort===void 0?{}:{defaultInputPort:r.defaultInputPort},...r.defaultOutputPort===void 0?{}:{defaultOutputPort:r.defaultOutputPort}};t.push(i),n[i.nodeType]=r.taskHandler}return{ok:!0,value:{manifests:t,handlersByType:n}}}const We={IMAGE_PNG:{binaryKind:`image`,mimeTypes:[`image/png`]},IMAGE_COMMON:{binaryKind:`image`,mimeTypes:[`image/png`,`image/jpeg`,`image/webp`]},VIDEO_MP4:{binaryKind:`video`,mimeTypes:[`video/mp4`]},AUDIO_MPEG:{binaryKind:`audio`,mimeTypes:[`audio/mpeg`]},FILE_GENERIC:{binaryKind:`file`,mimeTypes:[]}};function Ge(e){return{key:e.key,label:e.label,order:e.order,type:`binary`,required:e.required,description:e.description,binaryKind:e.preset.binaryKind,mimeTypes:[...e.preset.mimeTypes],isList:e.isList,minItems:e.minItems,maxItems:e.maxItems}}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return Ce}});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{C as e,S as t,i as n,t as r}from"./node-2-nrieFn.js";import{z as i}from"zod";var a=class{port;constructor(e){this.port=e.skillPort}async resolvePrompt(n){let r;try{r=this.port.loadCommands()}catch(e){return{ok:!1,error:t(`DAG_TASK_EXECUTION_SKILL_RESOLVE_FAILED`,`Failed to load skills: ${e instanceof Error?e.message:String(e)}`,!0)}}let i=r.find(e=>e.name===n.skillName);return i?i.context===`fork`?{ok:!1,error:e(`DAG_VALIDATION_SKILL_FORK_UNSUPPORTED`,`Skill "${n.skillName}" uses fork context, which the resolver node does not support (no subagent runtime). Use an inject-context skill.`,{skillName:n.skillName})}:this.resolveInject(i,n):{ok:!1,error:e(`DAG_VALIDATION_SKILL_NOT_FOUND`,`Skill "${n.skillName}" was not found in the injected contribution sources`,{skillName:n.skillName},{action:`set_config`,suggestion:`Set skillName to an available skill`,options:r.map(e=>e.name)})}}async resolveInject(e,n){try{let r=await this.port.resolveSkill(e,n.args,n.sessionId===void 0?void 0:{sessionId:n.sessionId});return typeof r.prompt==`string`?{ok:!0,value:{prompt:r.prompt,mode:r.mode}}:{ok:!1,error:t(`DAG_TASK_EXECUTION_SKILL_RESOLVE_FAILED`,`Skill "${n.skillName}" did not resolve to an inject prompt`,!1,{skillName:n.skillName,mode:r.mode})}}catch(e){let r=e instanceof Error?e.message:String(e);return{ok:!1,error:t(`DAG_TASK_EXECUTION_SKILL_RESOLVE_FAILED`,`Failed to resolve skill "${n.skillName}": ${r}`,!1,{skillName:n.skillName})}}}};const o=i.object({skillName:i.string().min(1),args:i.string().default(``),sessionId:i.string().optional(),baseCredits:i.number().nonnegative().default(0)}),s=[{key:`args`,label:`Args`,order:0,type:`string`,required:!1}],c=[{key:`prompt`,label:`Prompt`,order:0,type:`string`,required:!0},{key:`mode`,label:`Mode`,order:1,type:`string`,required:!0}];var l=class extends r{nodeType=`skill`;displayName=`Skill`;category=`Integration`;inputs=s;outputs=c;configSchemaDefinition=o;defaultInputPort=`args`;defaultOutputPort=`prompt`;runtime;constructor(e){super(),this.runtime=new a(e)}async estimateCostWithConfig(e,t,n){return{ok:!0,value:{estimatedCredits:n.baseCredits}}}async executeWithConfig(t,r,i){let a=new n(t,r.nodeDefinition.nodeId),o=a.getInput(`args`),s=typeof o==`string`&&o.trim().length>0?o:i.args,c=await this.runtime.resolvePrompt({skillName:i.skillName,args:s,...i.sessionId===void 0?{}:{sessionId:i.sessionId}});return c.ok?c.value.prompt.trim().length===0?{ok:!1,error:e(`DAG_VALIDATION_SKILL_EMPTY_PROMPT`,`Skill "${i.skillName}" resolved to an empty prompt`,{skillName:i.skillName})}:(a.setOutput(`prompt`,c.value.prompt),a.setOutput(`mode`,c.value.mode),a.setOutput(`_agentSummary`,`Skill "${i.skillName}" resolved (${c.value.mode}): ${c.value.prompt.length} chars.`),{ok:!0,value:a.toOutput()}):c}};export{l as SkillNodeDefinition};
|
|
2
|
+
//# sourceMappingURL=node-bJ0lEuNF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-bJ0lEuNF.js","names":[],"sources":["../../../dag-nodes/skill/dist/node/index.js"],"sourcesContent":["import { AbstractNodeDefinition, NodeIoAccessor } from \"@robota-sdk/dag-node\";\nimport { buildTaskExecutionError, buildValidationError } from \"@robota-sdk/dag-core\";\nimport { z } from \"zod\";\n//#region src/runtime-core.ts\n/**\n* Resolves a Robota skill (by name) to its inject-mode prompt string through the injected\n* {@link ISkillExecutionPort}. No LLM, no provider, no shell: the port resolves with empty callbacks so shell\n* interpolations are stripped rather than executed, and fork skills are rejected here before resolution.\n*/\nvar SkillResolverRuntime = class {\n\tport;\n\tconstructor(options) {\n\t\tthis.port = options.skillPort;\n\t}\n\tasync resolvePrompt(request) {\n\t\tlet commands;\n\t\ttry {\n\t\t\tcommands = this.port.loadCommands();\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SKILL_RESOLVE_FAILED\", `Failed to load skills: ${err instanceof Error ? err.message : String(err)}`, true)\n\t\t\t};\n\t\t}\n\t\tconst skill = commands.find((command) => command.name === request.skillName);\n\t\tif (!skill) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SKILL_NOT_FOUND\", `Skill \"${request.skillName}\" was not found in the injected contribution sources`, { skillName: request.skillName }, {\n\t\t\t\taction: \"set_config\",\n\t\t\t\tsuggestion: \"Set skillName to an available skill\",\n\t\t\t\toptions: commands.map((command) => command.name)\n\t\t\t})\n\t\t};\n\t\tif (skill.context === \"fork\") return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SKILL_FORK_UNSUPPORTED\", `Skill \"${request.skillName}\" uses fork context, which the resolver node does not support (no subagent runtime). Use an inject-context skill.`, { skillName: request.skillName })\n\t\t};\n\t\treturn this.resolveInject(skill, request);\n\t}\n\tasync resolveInject(skill, request) {\n\t\ttry {\n\t\t\tconst result = await this.port.resolveSkill(skill, request.args, request.sessionId !== void 0 ? { sessionId: request.sessionId } : void 0);\n\t\t\tif (typeof result.prompt !== \"string\") return {\n\t\t\t\tok: false,\n\t\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SKILL_RESOLVE_FAILED\", `Skill \"${request.skillName}\" did not resolve to an inject prompt`, false, {\n\t\t\t\t\tskillName: request.skillName,\n\t\t\t\t\tmode: result.mode\n\t\t\t\t})\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tvalue: {\n\t\t\t\t\tprompt: result.prompt,\n\t\t\t\t\tmode: result.mode\n\t\t\t\t}\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SKILL_RESOLVE_FAILED\", `Failed to resolve skill \"${request.skillName}\": ${message}`, false, { skillName: request.skillName })\n\t\t\t};\n\t\t}\n\t}\n};\n//#endregion\n//#region src/index.ts\nconst SkillNodeConfigSchema = z.object({\n\t/** Name of the skill to resolve (as discovered by SkillCommandSource). */\n\tskillName: z.string().min(1),\n\t/** Static skill arguments; the `args` input port overrides this when non-empty. */\n\targs: z.string().default(\"\"),\n\t/** Session id substituted for `${CLAUDE_SESSION_ID}` in the skill body. */\n\tsessionId: z.string().optional(),\n\t/** Base credit cost (resolution runs no model — default 0). */\n\tbaseCredits: z.number().nonnegative().default(0)\n});\nconst SKILL_INPUTS = [{\n\tkey: \"args\",\n\tlabel: \"Args\",\n\torder: 0,\n\ttype: \"string\",\n\trequired: false\n}];\nconst SKILL_OUTPUTS = [{\n\tkey: \"prompt\",\n\tlabel: \"Prompt\",\n\torder: 0,\n\ttype: \"string\",\n\trequired: true\n}, {\n\tkey: \"mode\",\n\tlabel: \"Mode\",\n\torder: 1,\n\ttype: \"string\",\n\trequired: true\n}];\n/**\n* DAG node that resolves a Robota skill to its inject-mode prompt string.\n*\n* Emits the expanded `<skill>` prompt for a downstream LLM node to execute;\n* it does not run the skill itself.\n*\n* @extends AbstractNodeDefinition\n*/\nvar SkillNodeDefinition = class extends AbstractNodeDefinition {\n\tnodeType = \"skill\";\n\tdisplayName = \"Skill\";\n\tcategory = \"Integration\";\n\tinputs = SKILL_INPUTS;\n\toutputs = SKILL_OUTPUTS;\n\tconfigSchemaDefinition = SkillNodeConfigSchema;\n\tdefaultInputPort = \"args\";\n\tdefaultOutputPort = \"prompt\";\n\truntime;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.runtime = new SkillResolverRuntime(options);\n\t}\n\tasync estimateCostWithConfig(_input, _context, config) {\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: { estimatedCredits: config.baseCredits }\n\t\t};\n\t}\n\tasync executeWithConfig(input, context, config) {\n\t\tconst io = new NodeIoAccessor(input, context.nodeDefinition.nodeId);\n\t\tconst argsInput = io.getInput(\"args\");\n\t\tconst args = typeof argsInput === \"string\" && argsInput.trim().length > 0 ? argsInput : config.args;\n\t\tconst resolved = await this.runtime.resolvePrompt({\n\t\t\tskillName: config.skillName,\n\t\t\targs,\n\t\t\t...config.sessionId !== void 0 ? { sessionId: config.sessionId } : {}\n\t\t});\n\t\tif (!resolved.ok) return resolved;\n\t\tif (resolved.value.prompt.trim().length === 0) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SKILL_EMPTY_PROMPT\", `Skill \"${config.skillName}\" resolved to an empty prompt`, { skillName: config.skillName })\n\t\t};\n\t\tio.setOutput(\"prompt\", resolved.value.prompt);\n\t\tio.setOutput(\"mode\", resolved.value.mode);\n\t\tio.setOutput(\"_agentSummary\", `Skill \"${config.skillName}\" resolved (${resolved.value.mode}): ${resolved.value.prompt.length} chars.`);\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: io.toOutput()\n\t\t};\n\t}\n};\n//#endregion\nexport { SkillNodeConfigSchema, SkillNodeDefinition, SkillResolverRuntime };\n\n//# sourceMappingURL=index.js.map"],"mappings":"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"}
|