@makaio/framework 1.0.0-dev-1790175294701 → 1.0.0-dev-1790248497521

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.
Files changed (80) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/artifact-DF2UJsjP.mjs +1 -0
  3. package/dist/bus/index.mjs +1 -1
  4. package/dist/bus-DgpPEPoM.mjs +9 -0
  5. package/dist/contracts/adapter/index.d.mts +1 -1
  6. package/dist/contracts/artifact/index.d.mts +2 -2
  7. package/dist/contracts/artifact/index.mjs +1 -1
  8. package/dist/contracts/capabilities/index.d.mts +1 -1
  9. package/dist/contracts/client/index.d.mts +1 -1
  10. package/dist/contracts/extension/index.d.mts +2 -2
  11. package/dist/contracts/facet/index.d.mts +1 -1
  12. package/dist/contracts/index.d.mts +69 -69
  13. package/dist/contracts/index.mjs +1 -1
  14. package/dist/contracts/materialization/index.d.mts +3 -3
  15. package/dist/contracts/materialization/index.mjs +1 -1
  16. package/dist/contracts/session/index.d.mts +2 -2
  17. package/dist/contracts/variant/index.d.mts +1 -1
  18. package/dist/contracts/worker/index.d.mts +1 -1
  19. package/dist/contracts/worker/index.mjs +1 -1
  20. package/dist/contracts/workflow/index.d.mts +1 -1
  21. package/dist/contracts/workflow/index.mjs +1 -1
  22. package/dist/{index-9O8N514B2.d.mts → index-6UlianLY2.d.mts} +4 -4
  23. package/dist/{index-CVRQS5jk.d.mts → index-BM53WQaQ.d.mts} +1 -1
  24. package/dist/{index-oE2q0pTG.d.mts → index-BZQ3OviE.d.mts} +1 -1
  25. package/dist/{index-Csua5M_M2.d.mts → index-Bmb7jPIe2.d.mts} +8 -8
  26. package/dist/{index-BusmMFMN.d.mts → index-Bon00c4i.d.mts} +48 -11
  27. package/dist/{index-7pt_bh4z.d.mts → index-BrMihjbI.d.mts} +68 -68
  28. package/dist/{index-DWKSiTxX.d.mts → index-C4VB63lu.d.mts} +18 -18
  29. package/dist/{index-Bgz81LHZ.d.mts → index-CEX9qfLa.d.mts} +1 -1
  30. package/dist/{index-DxtUM-qd.d.mts → index-CLwnkYRD.d.mts} +1 -1
  31. package/dist/{index-BMr77str2.d.mts → index-CydQ1dLS2.d.mts} +12 -12
  32. package/dist/{index-BgkQiruC.d.mts → index-D5BLD2Pw.d.mts} +7 -7
  33. package/dist/{index-B1iXL1pW.d.mts → index-D5Lw1UsO.d.mts} +8 -8
  34. package/dist/{index-Cu8k2ZGe.d.mts → index-DJLRXASA.d.mts} +24 -24
  35. package/dist/{index-D8V1DhrY.d.mts → index-Dcwee5Cl.d.mts} +90 -14
  36. package/dist/{index-DIEnLLhi2.d.mts → index-LCumcYK12.d.mts} +37 -37
  37. package/dist/{index-Mk478DlF.d.mts → index-QgSmUedN.d.mts} +4 -4
  38. package/dist/{index-BVN64wQx.d.mts → index-rkN_9bde.d.mts} +24 -24
  39. package/dist/kernel/extension/index.d.mts +2 -2
  40. package/dist/kernel/index.d.mts +2 -2
  41. package/dist/kernel/observability/index.d.mts +1 -1
  42. package/dist/{materialization-iFhpbs1s.mjs → materialization-CIrHHspa.mjs} +4 -1
  43. package/dist/{namespace-Bz0ZDWhE.d.mts → namespace-BEi98VfQ.d.mts} +18 -18
  44. package/dist/{namespace-B9iQN3FQ.d.mts → namespace-C5tKjqgb.d.mts} +4 -4
  45. package/dist/{namespace-h7gq_v5U.d.mts → namespace-CHSwZhH7.d.mts} +2 -2
  46. package/dist/{namespace-DAzOxaux.d.mts → namespace-D6W4Erwp.d.mts} +2 -2
  47. package/dist/{namespace-C1-ZAKEG.d.mts → namespace-D8oTiLLo.d.mts} +6 -6
  48. package/dist/package.json +1 -1
  49. package/dist/{schemas-BTJvvq9Y.d.mts → schemas-BXkSHQaF.d.mts} +2 -2
  50. package/dist/{schemas-CBDNnyz4.d.mts → schemas-Cb9OJ9va.d.mts} +1 -1
  51. package/dist/{schemas-Dec5VtBU.d.mts → schemas-CrOeGZHg.d.mts} +10 -10
  52. package/dist/{schemas-Dyp3rHZ7.d.mts → schemas-__oTCzF6.d.mts} +4 -4
  53. package/dist/services/adapter-runtime/index.d.mts +3 -3
  54. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  55. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  56. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  57. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  58. package/dist/services/execution-target/index.d.mts +2 -2
  59. package/dist/services/execution-target/namespace.d.mts +1 -1
  60. package/dist/services/execution-target/schemas.d.mts +1 -1
  61. package/dist/services/filesystem/namespace.d.mts +6 -6
  62. package/dist/services/filesystem/schemas.d.mts +3 -3
  63. package/dist/services/index.d.mts +32 -28
  64. package/dist/services/index.mjs +1 -1
  65. package/dist/services/provider-context/index.d.mts +1 -1
  66. package/dist/services/session/handlers/index.d.mts +1 -1
  67. package/dist/services/session/index.d.mts +5 -5
  68. package/dist/services/session/messages/namespace.d.mts +1 -1
  69. package/dist/services/session/session-events/namespace.d.mts +1 -1
  70. package/dist/services/settings/namespace.d.mts +10 -10
  71. package/dist/services/subagent-template/index.d.mts +1 -1
  72. package/dist/services/subagent-template/schemas.d.mts +1 -1
  73. package/dist/{types-DTpwvvY9.d.mts → types-BP_P1izV.d.mts} +15 -15
  74. package/dist/{view-builder-cjQZJmTY.d.mts → view-builder-2cR7vI7R.d.mts} +10 -10
  75. package/dist/{worker-B72n8bse.mjs → worker-YKEWHrx5.mjs} +1 -1
  76. package/dist/{workflow-D-X3rPsl.mjs → workflow-01evBylF.mjs} +1 -1
  77. package/dist/workflow-engine/index.d.mts +9 -9
  78. package/package.json +1 -1
  79. package/dist/artifact-CKz9YQPu.mjs +0 -1
  80. package/dist/bus-30AlabEz.mjs +0 -9
@@ -1 +1 @@
1
- import{a as e,i as t,n,o as r}from"./json-value-DM-EjTC1.mjs";import{a as i,d as a,f as o}from"./schemas-CHM0wMq4.mjs";import{u as s}from"./kind-registration-Dzfo6kyb.mjs";import"./artifact-CKz9YQPu.mjs";import{t as c}from"./zod-json-schema-ZUmGtQhT.mjs";import{a as l}from"./visibility-DCcfB817.mjs";import"./model-BPKGygMv.mjs";import{t as u}from"./provider-context-DFTB8rsU.mjs";import{a as d,o as f}from"./schemas-D-i0IAtA.mjs";import{A as ee,M as te,O as ne,k as p}from"./worker-Cgql5Xsm.mjs";import{r as re}from"./schemas-hTUdjOh7.mjs";import{z as m}from"zod";import{createBusNamespace as h,getFullSubjectForSubjectDefinition as ie,observability as g,splitSubjectKey as ae}from"@makaio/framework/core";const _=m.object({kind:m.string().min(1),id:m.string().min(1)});function oe(e){return`${ce(e.kind)}:${ce(e.id)}`}function se(e){let t=le(e);if(t<1)throw Error(`Invalid artifact ref key: ${e}`);let n=ue(e.slice(t+1));if(n.length===0)throw Error(`Invalid artifact ref key (empty id): ${e}`);return{kind:ue(e.slice(0,t)),id:n}}function ce(e){return e.replace(/\\/g,`\\\\`).replace(/:/g,`\\:`)}function le(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(t){t=!1;continue}if(r===`\\`){t=!0;continue}if(r===`:`)return n}return-1}function ue(e){let t=``,n=!1;for(let r of e){if(n){if(r!==`\\`&&r!==`:`)throw Error(`Invalid artifact ref key component: ${e}`);t+=r,n=!1;continue}if(r===`\\`){n=!0;continue}t+=r}if(n)throw Error(`Invalid artifact ref key component: ${e}`);return t}const de=m.enum([`completed`,`failed`,`cancelled`]),fe=m.object({status:de,completedAt:m.number().int().nonnegative(),error:m.string().min(1).optional(),reason:m.string().min(1).optional()}).strict(),pe=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),finalizerId:m.string().min(1),transitionKey:m.string().min(1),claimToken:m.string().min(1),intent:fe,claimedAt:m.number().int().nonnegative()}).strict(),me=m.object({accepted:m.boolean()}).strict(),he=/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/,v=m.string().regex(he,`Workflow finalizer IDs must be lowercase dot, dash, or underscore separated names.`),y=m.string().regex(he,`Workflow delegate result finalizer IDs must be lowercase dot, dash, or underscore separated names.`),ge=m.object({toolName:m.string().min(1),outcome:m.enum([`success`,`failure`]).optional(),artifact:m.object({kind:m.string().min(1),id:m.string().min(1),revision:m.string().min(1)}).strict().optional()}).strict().superRefine((e,t)=>{e.artifact!==void 0&&e.outcome!==`success`&&t.addIssue({code:`custom`,path:[`artifact`],message:`requires an explicit successful outcome`})}),_e=m.object({durationMs:m.number().int().nonnegative(),inputTokens:m.number().int().nonnegative().optional(),outputTokens:m.number().int().nonnegative().optional(),cachedInputTokens:m.number().int().nonnegative().optional(),toolCallCount:m.number().int().nonnegative().optional(),binding:m.object({adapterName:m.string().min(1),providerConfigId:m.string().min(1).optional(),providerDefinitionId:m.string().min(1).optional(),model:m.string().min(1).optional(),auth:m.object({mode:m.enum([`explicit`,`inferred`,`none`]),owner:m.enum([`provider`,`client`]),methodId:m.string().min(1)}).strict().optional()}).strict()}).strict(),b=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),nodeType:m.enum([`delegate-agent`,`delegate-role`]),rawResult:r,toolObservations:m.array(ge),economics:_e.optional()}).strict(),ve=b.extend({finalizerId:y}).strict(),x=m.object({output:r}).strict();function ye(e){if(!v.safeParse(e).success)throw Error(`Invalid workflow finalizer ID: "${e}"`);let t=`workflow-finalizer:${e}`,n=h(t,{finalize:{request:pe,response:me}});return{namespaceDomain:t,namespace:n,subjects:n.subjects}}function be(e){if(!y.safeParse(e).success)throw Error(`Invalid workflow delegate result finalizer ID: "${e}"`);let t=`workflow-delegate-finalizer:${e}`,n=h(t,{finalize:{request:b,response:x}});return{namespaceDomain:t,namespace:n,subjects:n.subjects}}const S=m.union([m.string(),m.number(),m.boolean(),m.null()]),xe=m.union([S,m.object({$in:m.array(S)}).strict(),m.object({$ne:S}).strict(),m.object({$exists:m.boolean()}).strict(),m.object({$startsWith:m.string()}).strict(),m.object({$endsWith:m.string()}).strict()]),Se=m.record(m.string(),xe),Ce=m.object({kind:re,params:t,filter:Se.optional(),filterExpression:m.string().optional()}),C=m.discriminatedUnion(`type`,[m.object({type:m.literal(`global`)}).strict(),m.object({type:m.literal(`workspace`),id:m.string().min(1)}).strict(),m.object({type:m.literal(`session`),id:m.string().min(1)}).strict(),m.object({type:m.literal(`external`),kind:m.string().min(1),id:m.string().min(1)}).strict()]),w=m.string().min(1),T=m.object({kind:m.string().min(1),schemaVersion:s,scope:o,resolve:m.string().min(1).optional(),create:m.string().min(1).optional(),statusPath:m.string().min(1).optional()}),we=m.object({kind:m.string().min(1),schemaVersion:s,scope:o,dataExpression:m.string().optional()}),Te=m.object({file:m.string().min(1),line:m.number().int().positive().optional(),column:m.number().int().positive().optional()}),E=m.enum([`station`,`delegate-agent`,`delegate-role`,`parallel`,`gate`,`iterate`,`iterate-chain`,`loop`,`sequence`]),Ee=m.enum([`all-settled`,`fail-fast`]),D=m.object({id:m.string().min(1),when:w.optional(),skip:w.optional(),writes:m.array(we).optional()}),O=m.lazy(()=>m.discriminatedUnion(`type`,[A,De,Oe,ke,Ae,je,Me,Pe,k])),k=D.extend({type:m.literal(`sequence`),nodes:m.lazy(()=>m.array(O))}),A=D.extend({type:m.literal(`station`),prompt:m.string().min(1),role:m.string().min(1).optional(),outputSchema:e.optional(),timeoutMs:m.number().int().positive().optional(),completion:d.optional()}),De=D.extend({type:m.literal(`delegate-agent`),agentId:m.string().min(1),inputExpression:m.string().optional(),outputSchema:e.optional(),allowedTools:m.array(m.string()).optional(),completion:d.optional(),resultFinalizerId:y.optional()}),Oe=D.extend({type:m.literal(`delegate-role`),role:m.string().min(1),prompt:m.string().min(1),outputSchema:e.optional(),allowedTools:m.array(m.string()).optional(),resultFinalizerId:y.optional(),timeoutMs:m.number().int().positive().optional(),completion:d.optional()}),ke=D.extend({type:m.literal(`parallel`),mode:Ee.optional(),branches:m.record(m.string().min(1),m.lazy(()=>k))}),Ae=D.extend({type:m.literal(`gate`),prompt:m.string().min(1),title:m.string().optional(),autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().int().positive().nullable(),resumeSchema:e.optional()}),je=D.extend({type:m.literal(`iterate`),collection:m.string().min(1),body:m.lazy(()=>k),concurrency:m.number().int().nonnegative().optional()}),Me=D.extend({type:m.literal(`iterate-chain`),collection:m.string().min(1),body:m.lazy(()=>k)}),Ne=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`pass`)}).strict(),m.object({kind:m.literal(`loop`)}).strict(),m.object({kind:m.literal(`escalate`),reason:m.string().min(1)}).strict()]),Pe=D.extend({type:m.literal(`loop`),maxRounds:m.number().int().positive(),body:m.lazy(()=>k),gate:m.object({handler:m.string().min(1),input:m.string().min(1).optional(),config:r.optional(),escalation:m.object({title:m.string().optional(),prompt:m.string().min(1),resumeSchema:e.optional(),autoAction:m.enum([`approve`,`reject`]).default(`reject`),timeoutMs:m.number().int().positive().nullable().default(null)}).strict().optional()}).strict()}),Fe=m.object({factoryId:m.string().min(1),preview:m.array(m.lazy(()=>O)).optional(),sourceLocation:Te.optional()}),Ie=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`editor`)}).strict(),m.object({kind:m.literal(`extension`),extension:m.string().min(1),externalId:m.string().min(1).optional(),syncedAt:m.string().datetime().optional(),metadata:n.default({})}).strict()]),Le=m.object({schema:e,initial:r.optional()}),Re=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`path`),path:m.string().min(1)}).strict(),m.object({kind:m.literal(`source`),filename:m.string().min(1),source:m.string()}).strict(),m.object({kind:m.literal(`definition`),workflowId:m.string().min(1)}).strict()]),j=m.object({id:m.string().min(1),name:m.string().optional(),description:m.string().optional(),inputSchema:e.optional(),configSchema:e.optional(),outputSchema:e.optional(),state:Le.optional(),artifact:T.optional(),root:k,triggers:m.array(Ce).optional(),scope:C.default({type:`global`}),canvasLayout:m.record(m.string(),r).optional(),source:Ie.optional(),executableSource:Re.optional(),requirements:ee.optional(),successFinalizerId:v.optional()}),M=m.enum([`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]),N=m.object({id:m.string(),workflowId:m.string(),coordinatorSessionId:m.string().optional(),status:M,inputs:r,config:n.optional(),startedAt:m.number(),completedAt:m.number().optional(),error:m.string().optional(),reason:m.string().optional(),triggerPayload:n.optional(),scope:C,artifactRef:_.optional()}),ze=m.object({frameId:m.string(),nodeId:m.string(),nodeType:E,path:m.array(m.string()),parentFrameId:m.string().optional(),status:m.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:m.number().int().nonnegative().default(0),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().optional(),output:r.optional(),error:m.string().optional(),startedAt:m.number().optional(),completedAt:m.number().optional()}),P=m.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),Be=m.object({executionId:m.string(),executionAttemptId:m.string().optional(),nodeId:m.string(),frameId:m.string(),schema:e,prompt:m.string().optional(),status:P,autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().int().positive().nullable(),resumeData:r.optional(),reason:m.string().optional(),createdAt:m.number(),resolvedAt:m.number().optional()}),F=m.object({adapterName:m.string().min(1),providerConfigId:m.string().min(1).optional(),model:m.string().optional(),reasoningEffort:l.optional(),harnessId:m.string().optional(),systemPrompt:m.string().optional(),contextMode:f.optional(),providerContext:u.optional(),adapterConfig:n.optional(),tools:m.array(m.string()).optional(),disallowedTools:m.array(m.string()).optional(),allowedDirectories:m.array(m.string()).optional(),completion:d.optional()}),Ve=F,He=m.object({scope:C.optional()}),Ue=m.object({startedAt:m.number(),id:m.string()}),We=1,Ge=500,Ke=50,qe=m.object({workflowId:m.string().min(1).optional(),scope:C.optional(),status:M.optional(),artifactRef:_.optional(),limit:m.number().int().min(1).max(500).default(50),cursor:Ue.optional()}).refine(e=>e.workflowId!==void 0||e.scope!==void 0||e.artifactRef!==void 0,{message:`Either workflowId, scope, or artifactRef is required.`}),Je=200,Ye=100,Xe=10,Ze=m.object({refs:m.array(_).min(1).max(200),limitPerRef:m.number().int().min(1).max(100).default(10)}),Qe=m.object({executionId:m.string().min(1).optional(),status:P.optional(),limit:m.number().int().min(1).max(500).default(50)}).refine(e=>e.executionId!==void 0||e.status!==void 0,{message:`Either executionId or status is required.`}),I=m.enum([`station`,`delegate-agent`,`delegate-role`,`gate`]),$e=m.enum([`station`]),et=m.object({input:m.number().int().nonnegative(),output:m.number().int().nonnegative(),cached:m.number().int().nonnegative().optional()}),tt=m.object({duration:m.number().nonnegative(),tokenUsage:et.optional(),estimatedCost:m.number().nonnegative().optional(),toolCalls:m.number().int().nonnegative().optional()}),nt=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`none`)}).strict(),m.object({kind:m.literal(`hmac`),secret:m.string().min(1)}).strict()]),rt=m.object({cwd:m.string().min(1),env:m.record(m.string(),m.string()).optional()}),it=m.object({executionId:m.string().min(1),stepId:m.string().min(1),reason:m.string().optional()});function at(e){let t=ae(e);if(t===void 0)throw Error(`Invalid step cancel subject: ${e}`);return{subject:t.subject,$meta:{namespace:t.namespace,isRequest:!1,payload:{},local:!1,channel:!1}}}const ot=m.object({executionId:m.string().min(1),reason:m.string().optional()});function st(e){let t=ae(e);if(t===void 0)throw Error(`Invalid workflow cancel subject: ${e}`);return{subject:t.subject,$meta:{namespace:t.namespace,isRequest:!1,payload:{},local:!1,channel:!1}}}const ct=m.object({stepId:m.string().min(1),executionId:m.string().min(1),workflowId:m.string().min(1),coordinatorSessionId:m.string().min(1),stepType:$e,stepDefinition:A,resolvedInputs:n,busUrl:m.string().optional(),busAuth:nt.default({kind:`none`}),platformDefaults:rt,cancelSubject:m.string().min(1)}).superRefine((e,t)=>{e.stepType!==e.stepDefinition.type&&t.addIssue({code:`custom`,path:[`stepDefinition`,`type`],message:`stepDefinition.type must match stepType (${e.stepType})`})}),lt=`Workflow cancelled`,ut=m.object({status:m.enum([`completed`,`failed`]),output:r.optional(),error:m.string().optional(),telemetry:tt}),dt=m.enum([`running`,`completed`,`failed`,`skipped`]),ft=m.object({executionId:m.string().min(1),frameId:m.string().min(1),stepId:m.string().min(1),stepType:I,status:dt,startedAt:m.number().optional(),completedAt:m.number().optional(),durationMs:m.number().nonnegative().optional(),inputTokens:m.number().int().nonnegative().optional(),outputTokens:m.number().int().nonnegative().optional(),estimatedCost:m.number().nonnegative().optional(),toolCallCount:m.number().int().nonnegative().optional(),input:m.string().optional(),output:m.string().optional()}),pt=m.enum([`triggered-by`,`feedback-loop`,`rerun-of`]),L=m.object({sourceExecutionId:m.string().min(1),targetExecutionId:m.string().min(1),linkType:pt,metadata:m.record(m.string(),m.unknown()).optional()}),mt=m.object({sourceExecutionId:m.string().min(1).optional(),targetExecutionId:m.string().min(1).optional()}).refine(e=>e.sourceExecutionId!==void 0||e.targetExecutionId!==void 0,{message:`Either sourceExecutionId or targetExecutionId is required.`}),ht={RUN_CONTEXT_NOT_FOUND:`WORKFLOW_RUN_CONTEXT_NOT_FOUND`,SNAPSHOT_UNAVAILABLE:`WORKFLOW_SNAPSHOT_UNAVAILABLE`,SOURCE_MISMATCH:`WORKFLOW_SOURCE_MISMATCH`,NOT_EXECUTABLE:`WORKFLOW_NOT_EXECUTABLE`,HANDLER_UNAVAILABLE:`WORKFLOW_HANDLER_UNAVAILABLE`};var gt=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`WorkflowError`}};const R=m.string().refine(e=>e===``||e.startsWith(`/`),{message:`JSON Patch paths must be empty or start with "/".`}),_t=m.object({op:m.enum([`add`,`replace`,`test`]),path:R,value:r}).strict(),vt=m.object({op:m.literal(`remove`),path:R}).strict(),yt=m.object({op:m.enum([`move`,`copy`]),path:R,from:R}).strict(),z=m.discriminatedUnion(`op`,[_t,vt,yt]),bt=m.object({type:m.literal(`artifact-query`),query:i,select:m.enum([`latest`,`all`]),optional:m.boolean().optional()}),xt=m.object({type:m.literal(`bus-request`),subject:m.string().min(1),payload:m.record(m.string(),m.unknown()).optional(),optional:m.boolean().optional()}),St=m.discriminatedUnion(`type`,[bt,xt]),Ct=m.object({type:m.literal(`artifact`),kind:m.string().min(1),schemaVersion:s,scope:o,metadata:m.record(m.string(),m.unknown()).optional()}),wt=m.object({type:m.literal(`bus-event`),subject:m.string().min(1),payload:m.record(m.string(),m.unknown()).optional()}),Tt=m.discriminatedUnion(`type`,[Ct,wt]),Et=m.object({content:m.string(),metadata:m.record(m.string(),m.unknown()).optional()}),Dt=m.object({sources:m.record(m.string(),Et)}),Ot=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`none`)}).strict(),m.object({kind:m.literal(`hmac`),secret:m.string().min(1)}).strict()]),kt=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`path`),path:m.string().min(1)}).strict(),m.object({kind:m.literal(`source`),filename:m.string().min(1),source:m.string()}).strict(),m.object({kind:m.literal(`definition`),workflowId:m.string().min(1)}).strict()]),B=m.enum([`immediate`,`await-trigger`]),At=m.object({source:kt,definition:j.optional(),executionId:m.string().min(1),executionAttemptId:m.string().min(1).optional(),workflowId:m.string().min(1),triggerPayload:n.default({}),triggerMode:B.optional(),inputs:r.default({}),config:n.optional(),artifactRef:_.optional(),scope:C.default({type:`global`}),busUrl:m.string().optional(),busAuth:Ot.default({kind:`none`}),env:m.record(m.string(),m.string()).default({}),coordinatorSessionId:m.string().min(1),cancelSubject:m.string().min(1),suspensionStrategy:te.default(`wait-in-process`),terminalAuthority:m.enum([`worker`,`authority`]).optional(),materializationSpec:p.optional()}),V=m.object({executionId:m.string().min(1),workflowId:m.string().min(1)}),jt=m.discriminatedUnion(`status`,[V.extend({status:m.literal(`completed`),artifact:a.optional()}).strict(),V.extend({status:m.literal(`failed`),error:m.string().min(1)}).strict(),V.extend({status:m.literal(`cancelled`),reason:m.string().min(1).optional()}).strict(),V.extend({status:m.literal(`paused`),pausedAtGateId:m.string().min(1),pausedAtFrameId:m.string().min(1)}).strict()]),Mt=m.object({contributionRefs:m.array(ne)}).strict(),Nt=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`path`),path:m.string().min(1).refine(e=>!e.startsWith(`/`)&&!/^[A-Za-z]:[/\\]/.test(e),{message:`path must be workspace-relative (no leading / or drive letter)`})}).strict(),m.object({kind:m.literal(`source`),filename:m.string().min(1),source:m.string()}).strict(),m.object({kind:m.literal(`definition`),workflowId:m.string().min(1)}).strict()]),Pt=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),source:Nt,definitionSnapshot:j.optional(),workerManifest:Mt.default({contributionRefs:[]}),inputs:r.default({}),config:n.optional(),scope:C.default({type:`global`}),triggerPayload:n.default({}),triggerMode:B.optional(),artifactRef:_.optional(),coordinatorSessionId:m.string().min(1),dispatchMetadata:n.optional(),cancelSubject:m.string().min(1),env:m.record(m.string(),m.string()).default({}),createdAt:m.number(),suspensionStrategy:te.default(`wait-in-process`),terminalAuthority:m.enum([`worker`,`authority`]).optional(),materializationSpec:p.optional()}).superRefine((e,t)=>{e.source.kind===`definition`&&e.definitionSnapshot===void 0&&t.addIssue({code:m.ZodIssueCode.custom,path:[`definitionSnapshot`],message:`definitionSnapshot is required when source.kind is "definition"`}),e.source.kind===`path`?e.materializationSpec===void 0?t.addIssue({code:m.ZodIssueCode.custom,path:[`materializationSpec`],message:`materializationSpec is required when source.kind is "path"`}):e.materializationSpec.sourcePath!==e.source.path&&t.addIssue({code:m.ZodIssueCode.custom,path:[`materializationSpec`,`sourcePath`],message:`materializationSpec.sourcePath must match source.path`}):e.materializationSpec!==void 0&&t.addIssue({code:m.ZodIssueCode.custom,path:[`materializationSpec`],message:`materializationSpec is only valid when source.kind is "path"`})}),H=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),workflowName:m.string().optional(),status:m.enum([`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]),startedAt:m.number(),completedAt:m.number().optional(),durationMs:m.number().nonnegative().optional(),totalInputTokens:m.number().int().nonnegative().optional(),totalOutputTokens:m.number().int().nonnegative().optional(),totalEstimatedCost:m.number().nonnegative().optional(),error:m.string().optional(),failedNodeId:m.string().optional()}),Ft=m.object({executionId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),nodeType:E,path:m.array(m.string()),status:m.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:m.number().int().nonnegative(),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().optional(),startedAt:m.number().optional(),completedAt:m.number().optional(),durationMs:m.number().nonnegative().optional(),inputTokens:m.number().int().nonnegative().optional(),outputTokens:m.number().int().nonnegative().optional(),estimatedCost:m.number().nonnegative().optional(),error:m.string().optional()}),It=m.object({executionId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),artifact:T,revision:m.string().min(1).optional(),writtenAt:m.number()}),Lt=m.object({executionId:m.string().min(1),nodeId:m.string().min(1),frameId:m.string().min(1),status:m.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),prompt:m.string().optional(),openedAt:m.number(),resolvedAt:m.number().optional(),resumeData:r.optional()}),Rt=m.object({executionId:m.string().min(1),inputTokens:m.number().int().nonnegative(),outputTokens:m.number().int().nonnegative(),cachedTokens:m.number().int().nonnegative().optional(),estimatedCost:m.number().nonnegative(),byModel:m.record(m.string(),m.object({inputTokens:m.number().int().nonnegative(),outputTokens:m.number().int().nonnegative(),estimatedCost:m.number().nonnegative()})).optional()}),zt=m.object({total:m.number().int().nonnegative(),byStatus:m.object({pending:m.number().int().nonnegative(),running:m.number().int().nonnegative(),paused:m.number().int().nonnegative(),finalizing:m.number().int().nonnegative(),completed:m.number().int().nonnegative(),failed:m.number().int().nonnegative(),cancelled:m.number().int().nonnegative()}),totalDurationMs:m.number().nonnegative(),totalInputTokens:m.number().int().nonnegative(),totalOutputTokens:m.number().int().nonnegative(),totalEstimatedCost:m.number().nonnegative()}),Bt=m.object({executionId:m.string().min(1),frameId:m.string().min(1),factoryId:m.string().min(1),materializedNodeIds:m.array(m.string().min(1)),factoryInput:e.optional(),materializedAt:m.number()}),Vt=`wfx-ext-`,Ht=m.object({frameId:m.string().min(1).optional(),nodeId:m.string().min(1),nodeType:I,path:m.array(m.string().min(1)).optional(),attempt:m.number().int().nonnegative().default(0),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().min(1).optional(),startedAt:m.number().int().nonnegative().optional()}).strict(),Ut=m.object({frameId:m.string().min(1),nodeId:m.string().min(1),nodeType:I,path:m.array(m.string().min(1)),attempt:m.number().int().nonnegative().default(0),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().min(1).optional(),startedAt:m.number().int().nonnegative(),durationMs:m.number().int().nonnegative().optional()}).strict(),Wt=m.object({executionId:m.string().startsWith(Vt,{message:`executionId must use the wfx-ext- prefix`}).optional(),name:m.string().min(1),startedAt:m.number().int().nonnegative().optional(),scope:C.optional(),artifactRef:_.optional(),input:r.optional(),triggerPayload:n.optional(),frame:Ht.optional()}).superRefine((e,t)=>{e.executionId!==void 0&&e.startedAt===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`startedAt is required when executionId is supplied`,path:[`startedAt`]})}),Gt=m.object({executionId:m.string().min(1),status:m.enum([`completed`,`failed`,`cancelled`]),error:m.string().min(1).optional(),reason:m.string().min(1).optional(),completedAt:m.number().nonnegative().overwrite(e=>Math.trunc(e)).optional(),frame:Ut.optional()}).superRefine((e,t)=>{if(e.status===`failed`&&e.error===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'failed' requires a non-empty 'error' message`,path:[`error`]}),e.status===`cancelled`&&e.reason===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'cancelled' requires a non-empty 'reason' string`,path:[`reason`]}),e.status===`completed`&&e.error!==void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'completed' must not carry an 'error'`,path:[`error`]}),e.status===`completed`&&e.reason!==void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'completed' must not carry a 'reason'`,path:[`reason`]}),e.frame!==void 0&&e.completedAt===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`completedAt is required when frame metadata is supplied`,path:[`completedAt`]}),e.frame!==void 0&&e.completedAt!==void 0){let n=e.completedAt-e.frame.startedAt;n<0&&t.addIssue({code:m.ZodIssueCode.custom,message:`completedAt must not precede frame.startedAt`,path:[`completedAt`]}),e.frame.durationMs!==void 0&&e.frame.durationMs!==n&&t.addIssue({code:m.ZodIssueCode.custom,message:`frame.durationMs must equal completedAt - frame.startedAt`,path:[`frame`,`durationMs`]})}}),Kt=m.object({message:m.string().min(1),details:m.string().min(1).optional(),kind:m.string().min(1).optional(),metadata:r.optional()}).strict(),U=m.object({executionId:m.string(),stepId:m.string(),stepType:m.enum([`station`,`delegate-agent`,`delegate-role`,`gate`])}),W=U.extend({stepType:m.literal(`gate`)}),qt=m.discriminatedUnion(`source`,[W.extend({frameId:m.string(),action:m.enum([`approve`,`reject`]),source:m.literal(`user`),reason:m.string().optional()}),W.extend({frameId:m.string(),action:m.enum([`approve`,`reject`]),source:m.literal(`timeout`)}),W.extend({frameId:m.string(),source:m.literal(`cancelled`)})]),Jt=W.extend({executionAttemptId:m.string().optional(),workflowId:m.string(),workflowName:m.string(),title:m.string(),message:m.string(),autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().nullable(),openedAt:m.number()}),Yt={getDefinition:{request:m.object({id:m.string()}),response:m.object({workflow:j.nullable()})},setDefinition:{request:m.object({workflow:j}),response:m.object({id:m.string()})},deleteDefinition:{request:m.object({id:m.string()}),response:m.object({deleted:m.boolean()})},listDefinitions:{request:He,response:m.object({workflows:m.array(j)})},"definition.created":j,"definition.updated":j,"definition.deleted":m.object({id:m.string()}),start:{request:m.object({workflowId:m.string(),input:r.optional(),config:r.optional(),artifactRef:_.optional(),scope:C.optional(),parentSessionId:m.string().optional(),triggerPayload:n.optional()}),response:m.object({executionId:m.string()})},rerun:{request:m.object({executionId:m.string().min(1),mode:m.enum([`snapshot`,`current`]),input:r.optional(),config:r.optional(),artifactRef:_.optional(),scope:C.optional(),parentSessionId:m.string().optional(),triggerPayload:n.optional(),reason:m.string().min(1).optional()}),response:m.object({executionId:m.string()})},cancel:{request:m.object({executionId:m.string(),reason:m.string().optional()}),response:m.object({cancelled:m.boolean()})},bootstrapAuthorityState:{request:m.object({executionId:m.string().min(1),terminalAuthority:m.literal(`authority`),definition:j}).strict(),response:m.object({persisted:m.boolean()})},acceptAuthorityRunnerResult:{request:m.object({executionId:m.string().min(1),result:jt.refine(e=>e.status!==`paused`,{message:`Authority runner results must be terminal`})}).strict().superRefine((e,t)=>{e.result.executionId!==e.executionId&&t.addIssue({code:m.ZodIssueCode.custom,path:[`result`,`executionId`],message:`result.executionId must match executionId`})}),response:m.object({accepted:m.boolean(),status:M})},finalizeDelegateResult:{request:ve,response:x},getExecution:{request:m.object({executionId:m.string()}),response:m.object({execution:N.nullable()})},listExecutions:{request:qe,response:m.object({executions:m.array(N)})},listExecutionsByArtifactRefs:{request:Ze,response:m.object({executionsByRef:m.record(m.string(),m.array(N))})},listSpans:{request:m.object({executionId:m.string()}),response:m.object({spans:m.array(ft)})},listGateInstances:{request:Qe,response:m.object({gates:m.array(Be)})},setExecutionLink:{request:m.object({link:L}),response:m.object({id:m.string()})},listExecutionLinks:{request:mt,response:m.object({links:m.array(L)})},listFrames:{request:m.object({executionId:m.string().min(1)}),response:m.object({frames:m.array(ze)})},runFile:{request:m.object({filePath:m.string().min(1),materializationSpec:p.optional(),triggerPayload:n.optional(),triggerMode:B.default(`immediate`),scope:C.optional()}),response:m.object({executionId:m.string()})},registerExternalExecution:{request:Wt,response:m.object({executionId:m.string(),frameId:m.string().optional()})},completeExternalExecution:{request:Gt,response:m.object({success:m.boolean()})},resolveRole:{request:m.object({roleId:m.string().min(1)}),response:F},resolveAgent:{request:m.object({agentId:m.string().min(1)}),response:Ve},getRunContext:{request:m.object({executionId:m.string().min(1)}),response:Pt},"execution.started":m.object({executionId:m.string(),workflowId:m.string(),coordinatorSessionId:m.string().optional(),startedAt:m.number().nonnegative().optional(),artifactRef:_.optional()}),"execution.completed":m.object({executionId:m.string(),workflowId:m.string(),totalDuration:m.number(),completedAt:m.number().nonnegative().optional(),transitionKey:m.string().min(1).optional()}),"execution.failed":m.object({executionId:m.string(),workflowId:m.string(),error:m.string(),failedStepId:m.string().optional(),completedAt:m.number().nonnegative().optional(),transitionKey:m.string().min(1).optional()}),"execution.cancelled":m.object({executionId:m.string(),workflowId:m.string(),reason:m.string().optional(),completedAt:m.number().nonnegative().optional(),transitionKey:m.string().min(1).optional()}),"execution.progress":m.object({executionId:m.string().min(1),workflowId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),progress:Kt,emittedAt:m.number().int().nonnegative()}),"execution.paused":g.schema(m.object({executionId:m.string(),workflowId:m.string(),pausedAtGateId:m.string().min(1),pausedAtFrameId:m.string().min(1)}),{traceAll:!0}),"step.beforeStart":U,"step.started":U.extend({sessionId:m.string().optional(),subagentId:m.string().optional()}),"step.completed":U.extend({result:r.optional(),duration:m.number()}),"step.failed":U.extend({error:m.string()}),"step.skipped":U.extend({reason:m.string().optional(),condition:m.string().optional()}),"gate.requested":Jt,"gate.awaitApproval":{request:Jt,response:m.object({action:m.enum([`approve`,`reject`]),source:m.enum([`user`,`timeout`]),reason:m.string().optional()})},"gate.respond":{request:m.object({executionId:m.string(),executionAttemptId:m.string().optional(),gateId:m.string(),action:m.enum([`approve`,`reject`]),frameId:m.string().optional(),resumeData:r,reason:m.string().optional()}),response:m.object({accepted:m.boolean()})},"gate.resolved":qt,"frame.started":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),nodeType:E,path:m.array(m.string()),parentFrameId:m.string().optional(),startedAt:m.number().nonnegative().optional()}),"frame.completed":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),output:r.optional(),duration:m.number().nonnegative().optional(),completedAt:m.number().nonnegative().optional()}),"frame.failed":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),error:m.string(),duration:m.number().nonnegative().optional(),completedAt:m.number().nonnegative().optional()}),"frame.sessionLinked":m.object({executionId:g.attribute(m.string(),`makaio.execution.id`),frameId:g.attribute(m.string(),`makaio.frame.id`),sessionId:g.attribute(m.string(),`makaio.session.id`)}).strict(),"gate.suspended":m.object({executionId:m.string(),executionAttemptId:m.string().optional(),frameId:m.string(),nodeId:m.string(),schema:e,prompt:m.string().optional(),title:m.string().optional(),autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().nullable(),openedAt:m.number()}),"gate.resumed":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),resumeData:r}),"dynamic.materialized":m.object({executionId:m.string(),frameId:m.string(),factoryId:m.string().min(1),materializedNodes:m.number().int().nonnegative()}),"artifact.updated":m.object({executionId:m.string(),frameId:m.string(),artifactRef:m.object({kind:m.string().min(1),id:m.string().min(1)}),paths:m.array(m.string()),operation:m.string().min(1),revision:m.string().min(1).optional()}),"worklog.get":{request:m.object({executionId:m.string().min(1)}),response:m.object({summary:H.nullable()})},"worklog.frame.get":{request:m.object({frameId:m.string().min(1)}),response:m.object({frame:Ft.nullable()})},"worklog.list":{request:m.object({workflowId:m.string().min(1).optional(),status:M.optional(),limit:m.number().int().positive().optional(),offset:m.number().int().nonnegative().optional()}),response:m.object({items:m.array(H),total:m.number().int().nonnegative()})},"worklog.stats":{request:m.object({workflowId:m.string().min(1).optional(),since:m.number().int().nonnegative().optional(),until:m.number().int().nonnegative().optional()}),response:m.object({stats:zt})},"worklog.changed":m.object({executionId:m.string().min(1)}),"state.get":{request:m.object({executionId:m.string().min(1)}),response:m.object({executionId:m.string().min(1),sequence:m.number().int().nonnegative(),value:r})},"state.patch":{request:m.object({executionId:m.string().min(1),expectedSequence:m.number().int().nonnegative(),patch:m.array(z),nextValue:r}),response:m.object({executionId:m.string().min(1),sequence:m.number().int().positive(),value:r})},"state.updated":m.object({executionId:m.string().min(1),sequence:m.number().int().positive(),patch:m.array(z),value:r,updatedAt:m.number().int().positive()})},Xt=h(`workflow`,Yt),Zt=Xt.subjects;function Qt(e,t){G(e,t,void 0,0,[],`root`,void 0,void 0)}function G(e,t,n,r,i,a,o,s){let c={parent:n,depth:r,ancestors:i,relationship:a,...o!==void 0&&{index:o},...s!==void 0&&{branchKey:s}};if(t.enter?.(e,c)===!1)return;let l=[...i,e.id],u=r+1;switch(e.type){case`sequence`:{let n=e;for(let r=0;r<n.nodes.length;r++)G(n.nodes[r],t,e,u,l,`sequence-child`,r,void 0);break}case`parallel`:{let n=e;for(let[r,i]of Object.entries(n.branches))G(i,t,e,u,l,`parallel-branch`,void 0,r);break}case`iterate`:G(e.body,t,e,u,l,`iterate-body`,void 0,void 0);break;case`iterate-chain`:G(e.body,t,e,u,l,`iterate-chain-body`,void 0,void 0);break;case`loop`:G(e.body,t,e,u,l,`loop-body`,void 0,void 0);break}t.leave?.(e,c)}function $t(e){switch(e){case`station`:case`delegate-agent`:case`delegate-role`:case`gate`:return`leaf`;case`parallel`:case`iterate`:case`iterate-chain`:case`loop`:return`control`;case`sequence`:return`structural`}}function en(e,t,n){return e===`parallel-branch`&&t!==void 0?[{kind:`branch`,key:t}]:e===`sequence-child`&&n!==void 0?[{kind:`index`,value:n}]:e===`iterate-body`||e===`iterate-chain-body`||e===`loop-body`?[{kind:`body`}]:[]}function tn(e){return e.replace(/\\/g,`\\\\`).replace(/\//g,`\\/`)}function nn(e){return e.map(e=>{switch(e.kind){case`node`:return`n:${tn(e.id)}`;case`branch`:return`b:${tn(e.key)}`;case`index`:return`i:${e.value}`;case`body`:return`body`}}).join(`/`)}function rn(e){let t=[],n=[],r=new Map,i=[],a=[],o=[];return Qt(e.root,{enter(e,s){let c=en(s.relationship,s.branchKey,s.index),l={kind:`node`,id:e.id};i.push(...c,l),o.push(c.length+1);let u=[...i],d=nn(u),f=a.at(-1);if(t.push({key:d,nodeId:e.id,type:e.type,role:$t(e.type),path:u,parentKey:f,...s.branchKey!==void 0&&{branchKey:s.branchKey}}),f!==void 0&&s.parent!==void 0)switch(s.parent.type){case`sequence`:{n.push({sourceKey:f,targetKey:d,kind:`contains`});let e=r.get(f);e!==void 0&&n.push({sourceKey:e,targetKey:d,kind:`sequence`}),r.set(f,d);break}case`parallel`:n.push({sourceKey:f,targetKey:d,kind:`branch`});break;case`iterate`:case`iterate-chain`:case`loop`:n.push({sourceKey:f,targetKey:d,kind:`body`});break;default:n.push({sourceKey:f,targetKey:d,kind:`contains`});break}a.push(d)},leave(){let e=o.pop()??0;i.splice(i.length-e,e),a.pop()}}),{nodes:t,edges:n}}const an=`makaio.bus-event`,on=`makaio.cron`,sn=`UTC`;function K(e,t,n){return{kind:e,params:t,...n.filter!==void 0&&{filter:n.filter},...n.filterExpression!==void 0&&{filterExpression:n.filterExpression}}}function cn(e,n){let r=t.parse(n.params);return e.paramsSchema.parse(r),K(e.kind,r,n)}function ln(e){return K(an,{subject:ie(e.subject)},e)}const un=m.object({schedule:m.string().min(1),timezone:m.string().min(1).default(`UTC`)});function dn(e){return K(on,un.parse(e),{})}function q(e){return J(e.body.nodes,e.id)}function J(e,t){for(let n of e){if(n.type===`loop`)return`Nested loop '${n.id}' found inside loop '${t}' — V1 does not support nested loops`;if(n.type===`sequence`){let e=J(n.nodes,t);if(e)return e}if(n.type===`parallel`)for(let e of Object.values(n.branches)){let n=J(e.nodes,t);if(n)return n}if(n.type===`iterate`||n.type===`iterate-chain`){let e=n.body,r=J(e.nodes,t);if(r)return r}}}const Y=new WeakMap,fn=new WeakMap;function X(e,t,n){let r=Y.get(e);if(r!==void 0&&t.set(e.id,r),e.type===`sequence`)for(let r of e.nodes)X(r,t,n);else if(e.type===`parallel`)for(let r of Object.values(e.branches))X(r,t,n);else if(e.type===`iterate`)X(e.body,t,n);else if(e.type===`iterate-chain`)X(e.body,t,n);else if(e.type===`loop`){if(n!==void 0){let t=fn.get(e);t!==void 0&&n.set(e.gate.handler,t)}X(e.body,t,n)}}function pn(e,t,n){let r={id:e,type:`station`,prompt:e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}};return Y.set(r,t),r}function mn(e,t,n){return{id:e,type:`delegate-agent`,agentId:t.agentId,...t.inputExpression!==void 0&&{inputExpression:t.inputExpression},...t.outputSchema!==void 0&&{outputSchema:t.outputSchema},...t.allowedTools!==void 0&&{allowedTools:t.allowedTools},...t.completion!==void 0&&{completion:t.completion},...t.resultFinalizerId!==void 0&&{resultFinalizerId:t.resultFinalizerId},...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}}}function hn(e,t,n){return{id:e,type:`delegate-role`,role:t,prompt:n?.prompt??e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip},...n?.outputSchema!==void 0&&{outputSchema:n.outputSchema},...n?.timeoutMs!==void 0&&{timeoutMs:n.timeoutMs},...n?.completion!==void 0&&{completion:n.completion},...n?.allowedTools!==void 0&&{allowedTools:n.allowedTools},...n?.resultFinalizerId!==void 0&&{resultFinalizerId:n.resultFinalizerId}}}function gn(e,t){return{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:c(t.resume)}}}function _n(e,t,n){let r=`${e}__item`,i={id:r,type:`station`,prompt:r},a={id:e,type:`iterate`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:[i]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}};return Y.set(i,t),a}function vn(e,t,n){return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function yn(e,t,n){let r={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:`${e}__body`,type:`sequence`,nodes:t},gate:bn(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},i=q(r);if(i!==void 0)throw Error(i);return fn.set(r,n.gate.evaluate),r}function bn(e){let t=e.gate.escalation;return{handler:e.gate.handler,...e.gate.input!==void 0&&{input:e.gate.input},...e.gate.config!==void 0&&{config:e.gate.config},...t!==void 0&&{escalation:{prompt:t.prompt,autoAction:t.autoAction??`reject`,timeoutMs:t.timeoutMs??null,...t.title!==void 0&&{title:t.title},...t.resumeSchema!==void 0&&{resumeSchema:t.resumeSchema}}}}}function Z(e,t){if(e.has(t))throw Error(`Duplicate step ID: ${t}`);e.add(t)}function Q(e,t){if(Z(e,t.id),t.type===`sequence`)for(let n of t.nodes)Q(e,n);else if(t.type===`parallel`)for(let n of Object.values(t.branches))Q(e,n);else (t.type===`iterate`||t.type===`iterate-chain`||t.type===`loop`)&&Q(e,t.body)}function xn(e,t,n,r,i){let a={};return t.forEach((t,o)=>{if(t.id.length===0)throw Error(`parallel branch at index ${o} has an empty ID`);let s=t.id,c=`${e}__${s}`;Q(n,t),Z(n,c),X(t,r,i),a[s]={id:c,type:`sequence`,nodes:[t]}}),a}function Sn(e,t,n,r,i){let a=`${e}__body`,o=`${e}__item`;Z(r,a),Z(r,o),i.set(o,t);let s={id:o,type:`station`,prompt:o};return{id:e,type:`iterate`,collection:n.collection,body:{id:a,type:`sequence`,nodes:[s]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function Cn(e,t,n){return t.resume!==void 0&&(n[e]=t.resume),{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:c(t.resume)}}}function wn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),X(e,i,a);return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:o,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function Tn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),X(e,i,a);let s={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:o,type:`sequence`,nodes:t},gate:bn(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},c=q(s);if(c!==void 0)throw Error(c);return a.set(n.gate.handler,n.gate.evaluate),s}function En(e,t){e.input=n=>(t.zodSchemas.input=n,t.definition.inputSchema=c(n),e),e.config=n=>(t.zodSchemas.config=n,t.definition.configSchema=c(n),e),e.output=n=>(t.zodSchemas.output=n,t.definition.outputSchema=c(n),e),e.artifact=n=>(n.schema!==void 0&&(t.zodSchemas.artifact=n.schema),t.definition.artifact={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,...n.resolve!==void 0&&{resolve:n.resolve},...n.create!==void 0&&{create:n.create},...n.statusPath!==void 0&&{statusPath:n.statusPath}},e),e.state=e=>(t.definition.state={schema:e.schema,...e.initial!==void 0&&{initial:e.initial}},$(t))}function Dn(e,t){let{rootNodes:n,runtimeHandlers:r,runtimeLoopGates:i,registeredIds:a,zodGates:o}=t;e.station=(t,i,o)=>(Z(a,t),n.push({id:t,type:`station`,prompt:t,...o?.when!==void 0&&{when:o.when},...o?.skip!==void 0&&{skip:o.skip}}),r.set(t,i),e),e.delegateToAgent=(t,r,i)=>(Z(a,t),n.push(mn(t,r,i)),e),e.delegateToRole=(t,r,i)=>(Z(a,t),n.push(hn(t,r,i)),e),e.parallel=(t,o,s)=>(Z(a,t),n.push({id:t,type:`parallel`,mode:o.mode??`all-settled`,branches:xn(t,s,a,r,i),...o.when!==void 0&&{when:o.when},...o.skip!==void 0&&{skip:o.skip}}),e),e.gate=(t,r)=>(Z(a,t),n.push(Cn(t,r,o)),e),e.iterate=(t,i,o)=>(Z(a,t),n.push(Sn(t,i,o,a,r)),e),e.iterateChain=(t,o,s)=>(Z(a,t),n.push(wn(t,o,s,a,r,i)),e),e.loop=(t,o,s)=>(Z(a,t),n.push(Tn(t,o,s,a,r,i)),e),e.addNode=e=>On(e,a,r,i,n)}function On(e,t,n,r,i){Q(t,e),X(e,n,r),i.push(e)}function $(e){let t={id:e.definition.id,definition:e.definition,runtimeHandlers:e.runtimeHandlers,runtimeFactories:e.runtimeFactories,runtimeLoopGates:e.runtimeLoopGates,source:void 0,get zodSchemas(){return e.zodSchemas},addTrigger(t){return e.triggers.push(t),$(e)}};return En(t,e),Dn(t,e),t}function kn(e,t){let n=[],r=new Map,i=new Map,a=new Set,o={},s={gates:o},c=new Map,l=t?.triggers?[...t.triggers]:[];return $({rootNodes:n,runtimeHandlers:r,runtimeFactories:c,runtimeLoopGates:i,registeredIds:a,zodGates:o,zodSchemas:s,definition:{id:e,...t?.name!==void 0&&{name:t.name},...t?.description!==void 0&&{description:t.description},...t?.successFinalizerId!==void 0&&{successFinalizerId:v.parse(t.successFinalizerId)},root:{id:`${e}__root`,type:`sequence`,nodes:n},triggers:l,scope:{type:`global`}},triggers:l})}function An(e){if(e.workflows.length===0)throw Error(`defineWorkflowBundle: workflows must not be empty`);return{workflows:Object.freeze([...e.workflows])}}const jn=m.enum([`artifact.created`,`artifact.revised`,`artifact.status.changed`]),Mn=m.record(m.string(),r),Nn=m.object({type:m.string().min(1),input:m.record(m.string(),r).optional()}),Pn=m.object({id:m.string().min(1),description:m.string().optional(),on:jn,when:Mn.optional(),action:Nn,enabled:m.boolean().default(!0)});export{St as $,D as $t,Ut as A,M as At,Pt as B,De as Bt,Qt as C,_ as Cn,Ye as Ct,Zt as D,We as Dt,Yt as E,Ge as Et,H as F,we as Ft,At as G,ze as Gt,jt as H,Fe as Ht,Ft as I,Ce as It,bt as J,P as Jt,kt as K,Be as Kt,Lt as L,w as Lt,Wt as M,Qe as Mt,It as N,Ne as Nt,Gt as O,Ue as Ot,Bt as P,T as Pt,Tt as Q,Pe as Qt,zt as R,Ie as Rt,rn as S,ye as Sn,Xe as St,Kt as T,oe as Tn,Ke as Tt,B as U,N as Ut,Mt as V,Oe as Vt,Ot as W,C as Wt,xt as X,je as Xt,wt as Y,Me as Yt,Dt as Z,He as Zt,ln as _,me as _n,ot as _t,An as a,F as an,L as at,dn as b,de as bn,at as bt,hn as c,Le as cn,dt as ct,vn as d,ve as dn,ut as dt,O as en,Et as et,yn as f,b as fn,nt as ft,an as g,pe as gn,lt as gt,cn as h,ge as hn,et as ht,Pn as i,Ve as in,mt as it,Ht as j,Ze as jt,Vt as k,qe as kt,gn as l,A as ln,it as lt,q as m,y as mn,tt as mt,Mn as n,Ee as nn,gt as nt,kn as o,k as on,pt as ot,pn as p,x as pn,rt as pt,Ct as q,Ae as qt,jn as r,ke as rn,ht as rt,mn as s,Te as sn,ft as st,Nn as t,E as tn,z as tt,_n as u,_e as un,ct as ut,on as v,fe as vn,$e as vt,Xt as w,se as wn,Je as wt,sn as x,be as xn,st as xt,un as y,v as yn,I as yt,Rt as z,j as zt};
1
+ import{a as e,i as t,n,o as r}from"./json-value-DM-EjTC1.mjs";import{a as i,d as a,f as o}from"./schemas-CHM0wMq4.mjs";import{u as s}from"./kind-registration-Dzfo6kyb.mjs";import"./artifact-DF2UJsjP.mjs";import{t as c}from"./zod-json-schema-ZUmGtQhT.mjs";import{a as l}from"./visibility-DCcfB817.mjs";import"./model-BPKGygMv.mjs";import{t as u}from"./provider-context-DFTB8rsU.mjs";import{a as d,o as f}from"./schemas-D-i0IAtA.mjs";import{A as ee,M as te,O as ne,k as p}from"./worker-Cgql5Xsm.mjs";import{r as re}from"./schemas-hTUdjOh7.mjs";import{z as m}from"zod";import{createBusNamespace as h,getFullSubjectForSubjectDefinition as ie,observability as g,splitSubjectKey as ae}from"@makaio/framework/core";const _=m.object({kind:m.string().min(1),id:m.string().min(1)});function oe(e){return`${ce(e.kind)}:${ce(e.id)}`}function se(e){let t=le(e);if(t<1)throw Error(`Invalid artifact ref key: ${e}`);let n=ue(e.slice(t+1));if(n.length===0)throw Error(`Invalid artifact ref key (empty id): ${e}`);return{kind:ue(e.slice(0,t)),id:n}}function ce(e){return e.replace(/\\/g,`\\\\`).replace(/:/g,`\\:`)}function le(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(t){t=!1;continue}if(r===`\\`){t=!0;continue}if(r===`:`)return n}return-1}function ue(e){let t=``,n=!1;for(let r of e){if(n){if(r!==`\\`&&r!==`:`)throw Error(`Invalid artifact ref key component: ${e}`);t+=r,n=!1;continue}if(r===`\\`){n=!0;continue}t+=r}if(n)throw Error(`Invalid artifact ref key component: ${e}`);return t}const de=m.enum([`completed`,`failed`,`cancelled`]),fe=m.object({status:de,completedAt:m.number().int().nonnegative(),error:m.string().min(1).optional(),reason:m.string().min(1).optional()}).strict(),pe=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),finalizerId:m.string().min(1),transitionKey:m.string().min(1),claimToken:m.string().min(1),intent:fe,claimedAt:m.number().int().nonnegative()}).strict(),me=m.object({accepted:m.boolean()}).strict(),he=/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/,v=m.string().regex(he,`Workflow finalizer IDs must be lowercase dot, dash, or underscore separated names.`),y=m.string().regex(he,`Workflow delegate result finalizer IDs must be lowercase dot, dash, or underscore separated names.`),ge=m.object({toolName:m.string().min(1),outcome:m.enum([`success`,`failure`]).optional(),artifact:m.object({kind:m.string().min(1),id:m.string().min(1),revision:m.string().min(1)}).strict().optional()}).strict().superRefine((e,t)=>{e.artifact!==void 0&&e.outcome!==`success`&&t.addIssue({code:`custom`,path:[`artifact`],message:`requires an explicit successful outcome`})}),_e=m.object({durationMs:m.number().int().nonnegative(),inputTokens:m.number().int().nonnegative().optional(),outputTokens:m.number().int().nonnegative().optional(),cachedInputTokens:m.number().int().nonnegative().optional(),toolCallCount:m.number().int().nonnegative().optional(),binding:m.object({adapterName:m.string().min(1),providerConfigId:m.string().min(1).optional(),providerDefinitionId:m.string().min(1).optional(),model:m.string().min(1).optional(),auth:m.object({mode:m.enum([`explicit`,`inferred`,`none`]),owner:m.enum([`provider`,`client`]),methodId:m.string().min(1)}).strict().optional()}).strict()}).strict(),b=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),nodeType:m.enum([`delegate-agent`,`delegate-role`]),rawResult:r,toolObservations:m.array(ge),economics:_e.optional()}).strict(),ve=b.extend({finalizerId:y}).strict(),x=m.object({output:r}).strict();function ye(e){if(!v.safeParse(e).success)throw Error(`Invalid workflow finalizer ID: "${e}"`);let t=`workflow-finalizer:${e}`,n=h(t,{finalize:{request:pe,response:me}});return{namespaceDomain:t,namespace:n,subjects:n.subjects}}function be(e){if(!y.safeParse(e).success)throw Error(`Invalid workflow delegate result finalizer ID: "${e}"`);let t=`workflow-delegate-finalizer:${e}`,n=h(t,{finalize:{request:b,response:x}});return{namespaceDomain:t,namespace:n,subjects:n.subjects}}const S=m.union([m.string(),m.number(),m.boolean(),m.null()]),xe=m.union([S,m.object({$in:m.array(S)}).strict(),m.object({$ne:S}).strict(),m.object({$exists:m.boolean()}).strict(),m.object({$startsWith:m.string()}).strict(),m.object({$endsWith:m.string()}).strict()]),Se=m.record(m.string(),xe),Ce=m.object({kind:re,params:t,filter:Se.optional(),filterExpression:m.string().optional()}),C=m.discriminatedUnion(`type`,[m.object({type:m.literal(`global`)}).strict(),m.object({type:m.literal(`workspace`),id:m.string().min(1)}).strict(),m.object({type:m.literal(`session`),id:m.string().min(1)}).strict(),m.object({type:m.literal(`external`),kind:m.string().min(1),id:m.string().min(1)}).strict()]),w=m.string().min(1),T=m.object({kind:m.string().min(1),schemaVersion:s,scope:o,resolve:m.string().min(1).optional(),create:m.string().min(1).optional(),statusPath:m.string().min(1).optional()}),we=m.object({kind:m.string().min(1),schemaVersion:s,scope:o,dataExpression:m.string().optional()}),Te=m.object({file:m.string().min(1),line:m.number().int().positive().optional(),column:m.number().int().positive().optional()}),E=m.enum([`station`,`delegate-agent`,`delegate-role`,`parallel`,`gate`,`iterate`,`iterate-chain`,`loop`,`sequence`]),Ee=m.enum([`all-settled`,`fail-fast`]),D=m.object({id:m.string().min(1),when:w.optional(),skip:w.optional(),writes:m.array(we).optional()}),O=m.lazy(()=>m.discriminatedUnion(`type`,[A,De,Oe,ke,Ae,je,Me,Pe,k])),k=D.extend({type:m.literal(`sequence`),nodes:m.lazy(()=>m.array(O))}),A=D.extend({type:m.literal(`station`),prompt:m.string().min(1),role:m.string().min(1).optional(),outputSchema:e.optional(),timeoutMs:m.number().int().positive().optional(),completion:d.optional()}),De=D.extend({type:m.literal(`delegate-agent`),agentId:m.string().min(1),inputExpression:m.string().optional(),outputSchema:e.optional(),allowedTools:m.array(m.string()).optional(),completion:d.optional(),resultFinalizerId:y.optional()}),Oe=D.extend({type:m.literal(`delegate-role`),role:m.string().min(1),prompt:m.string().min(1),outputSchema:e.optional(),allowedTools:m.array(m.string()).optional(),resultFinalizerId:y.optional(),timeoutMs:m.number().int().positive().optional(),completion:d.optional()}),ke=D.extend({type:m.literal(`parallel`),mode:Ee.optional(),branches:m.record(m.string().min(1),m.lazy(()=>k))}),Ae=D.extend({type:m.literal(`gate`),prompt:m.string().min(1),title:m.string().optional(),autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().int().positive().nullable(),resumeSchema:e.optional()}),je=D.extend({type:m.literal(`iterate`),collection:m.string().min(1),body:m.lazy(()=>k),concurrency:m.number().int().nonnegative().optional()}),Me=D.extend({type:m.literal(`iterate-chain`),collection:m.string().min(1),body:m.lazy(()=>k)}),Ne=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`pass`)}).strict(),m.object({kind:m.literal(`loop`)}).strict(),m.object({kind:m.literal(`escalate`),reason:m.string().min(1)}).strict()]),Pe=D.extend({type:m.literal(`loop`),maxRounds:m.number().int().positive(),body:m.lazy(()=>k),gate:m.object({handler:m.string().min(1),input:m.string().min(1).optional(),config:r.optional(),escalation:m.object({title:m.string().optional(),prompt:m.string().min(1),resumeSchema:e.optional(),autoAction:m.enum([`approve`,`reject`]).default(`reject`),timeoutMs:m.number().int().positive().nullable().default(null)}).strict().optional()}).strict()}),Fe=m.object({factoryId:m.string().min(1),preview:m.array(m.lazy(()=>O)).optional(),sourceLocation:Te.optional()}),Ie=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`editor`)}).strict(),m.object({kind:m.literal(`extension`),extension:m.string().min(1),externalId:m.string().min(1).optional(),syncedAt:m.string().datetime().optional(),metadata:n.default({})}).strict()]),Le=m.object({schema:e,initial:r.optional()}),Re=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`path`),path:m.string().min(1)}).strict(),m.object({kind:m.literal(`source`),filename:m.string().min(1),source:m.string()}).strict(),m.object({kind:m.literal(`definition`),workflowId:m.string().min(1)}).strict()]),j=m.object({id:m.string().min(1),name:m.string().optional(),description:m.string().optional(),inputSchema:e.optional(),configSchema:e.optional(),outputSchema:e.optional(),state:Le.optional(),artifact:T.optional(),root:k,triggers:m.array(Ce).optional(),scope:C.default({type:`global`}),canvasLayout:m.record(m.string(),r).optional(),source:Ie.optional(),executableSource:Re.optional(),requirements:ee.optional(),successFinalizerId:v.optional()}),M=m.enum([`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]),N=m.object({id:m.string(),workflowId:m.string(),coordinatorSessionId:m.string().optional(),status:M,inputs:r,config:n.optional(),startedAt:m.number(),completedAt:m.number().optional(),error:m.string().optional(),reason:m.string().optional(),triggerPayload:n.optional(),scope:C,artifactRef:_.optional()}),ze=m.object({frameId:m.string(),nodeId:m.string(),nodeType:E,path:m.array(m.string()),parentFrameId:m.string().optional(),status:m.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:m.number().int().nonnegative().default(0),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().optional(),output:r.optional(),error:m.string().optional(),startedAt:m.number().optional(),completedAt:m.number().optional()}),P=m.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),Be=m.object({executionId:m.string(),executionAttemptId:m.string().optional(),nodeId:m.string(),frameId:m.string(),schema:e,prompt:m.string().optional(),status:P,autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().int().positive().nullable(),resumeData:r.optional(),reason:m.string().optional(),createdAt:m.number(),resolvedAt:m.number().optional()}),F=m.object({adapterName:m.string().min(1),providerConfigId:m.string().min(1).optional(),model:m.string().optional(),reasoningEffort:l.optional(),harnessId:m.string().optional(),systemPrompt:m.string().optional(),contextMode:f.optional(),providerContext:u.optional(),adapterConfig:n.optional(),tools:m.array(m.string()).optional(),disallowedTools:m.array(m.string()).optional(),allowedDirectories:m.array(m.string()).optional(),completion:d.optional()}),Ve=F,He=m.object({scope:C.optional()}),Ue=m.object({startedAt:m.number(),id:m.string()}),We=1,Ge=500,Ke=50,qe=m.object({workflowId:m.string().min(1).optional(),scope:C.optional(),status:M.optional(),artifactRef:_.optional(),limit:m.number().int().min(1).max(500).default(50),cursor:Ue.optional()}).refine(e=>e.workflowId!==void 0||e.scope!==void 0||e.artifactRef!==void 0,{message:`Either workflowId, scope, or artifactRef is required.`}),Je=200,Ye=100,Xe=10,Ze=m.object({refs:m.array(_).min(1).max(200),limitPerRef:m.number().int().min(1).max(100).default(10)}),Qe=m.object({executionId:m.string().min(1).optional(),status:P.optional(),limit:m.number().int().min(1).max(500).default(50)}).refine(e=>e.executionId!==void 0||e.status!==void 0,{message:`Either executionId or status is required.`}),I=m.enum([`station`,`delegate-agent`,`delegate-role`,`gate`]),$e=m.enum([`station`]),et=m.object({input:m.number().int().nonnegative(),output:m.number().int().nonnegative(),cached:m.number().int().nonnegative().optional()}),tt=m.object({duration:m.number().nonnegative(),tokenUsage:et.optional(),estimatedCost:m.number().nonnegative().optional(),toolCalls:m.number().int().nonnegative().optional()}),nt=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`none`)}).strict(),m.object({kind:m.literal(`hmac`),secret:m.string().min(1)}).strict()]),rt=m.object({cwd:m.string().min(1),env:m.record(m.string(),m.string()).optional()}),it=m.object({executionId:m.string().min(1),stepId:m.string().min(1),reason:m.string().optional()});function at(e){let t=ae(e);if(t===void 0)throw Error(`Invalid step cancel subject: ${e}`);return{subject:t.subject,$meta:{namespace:t.namespace,isRequest:!1,payload:{},local:!1,channel:!1}}}const ot=m.object({executionId:m.string().min(1),reason:m.string().optional()});function st(e){let t=ae(e);if(t===void 0)throw Error(`Invalid workflow cancel subject: ${e}`);return{subject:t.subject,$meta:{namespace:t.namespace,isRequest:!1,payload:{},local:!1,channel:!1}}}const ct=m.object({stepId:m.string().min(1),executionId:m.string().min(1),workflowId:m.string().min(1),coordinatorSessionId:m.string().min(1),stepType:$e,stepDefinition:A,resolvedInputs:n,busUrl:m.string().optional(),busAuth:nt.default({kind:`none`}),platformDefaults:rt,cancelSubject:m.string().min(1)}).superRefine((e,t)=>{e.stepType!==e.stepDefinition.type&&t.addIssue({code:`custom`,path:[`stepDefinition`,`type`],message:`stepDefinition.type must match stepType (${e.stepType})`})}),lt=`Workflow cancelled`,ut=m.object({status:m.enum([`completed`,`failed`]),output:r.optional(),error:m.string().optional(),telemetry:tt}),dt=m.enum([`running`,`completed`,`failed`,`skipped`]),ft=m.object({executionId:m.string().min(1),frameId:m.string().min(1),stepId:m.string().min(1),stepType:I,status:dt,startedAt:m.number().optional(),completedAt:m.number().optional(),durationMs:m.number().nonnegative().optional(),inputTokens:m.number().int().nonnegative().optional(),outputTokens:m.number().int().nonnegative().optional(),estimatedCost:m.number().nonnegative().optional(),toolCallCount:m.number().int().nonnegative().optional(),input:m.string().optional(),output:m.string().optional()}),pt=m.enum([`triggered-by`,`feedback-loop`,`rerun-of`]),L=m.object({sourceExecutionId:m.string().min(1),targetExecutionId:m.string().min(1),linkType:pt,metadata:m.record(m.string(),m.unknown()).optional()}),mt=m.object({sourceExecutionId:m.string().min(1).optional(),targetExecutionId:m.string().min(1).optional()}).refine(e=>e.sourceExecutionId!==void 0||e.targetExecutionId!==void 0,{message:`Either sourceExecutionId or targetExecutionId is required.`}),ht={RUN_CONTEXT_NOT_FOUND:`WORKFLOW_RUN_CONTEXT_NOT_FOUND`,SNAPSHOT_UNAVAILABLE:`WORKFLOW_SNAPSHOT_UNAVAILABLE`,SOURCE_MISMATCH:`WORKFLOW_SOURCE_MISMATCH`,NOT_EXECUTABLE:`WORKFLOW_NOT_EXECUTABLE`,HANDLER_UNAVAILABLE:`WORKFLOW_HANDLER_UNAVAILABLE`};var gt=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`WorkflowError`}};const R=m.string().refine(e=>e===``||e.startsWith(`/`),{message:`JSON Patch paths must be empty or start with "/".`}),_t=m.object({op:m.enum([`add`,`replace`,`test`]),path:R,value:r}).strict(),vt=m.object({op:m.literal(`remove`),path:R}).strict(),yt=m.object({op:m.enum([`move`,`copy`]),path:R,from:R}).strict(),z=m.discriminatedUnion(`op`,[_t,vt,yt]),bt=m.object({type:m.literal(`artifact-query`),query:i,select:m.enum([`latest`,`all`]),optional:m.boolean().optional()}),xt=m.object({type:m.literal(`bus-request`),subject:m.string().min(1),payload:m.record(m.string(),m.unknown()).optional(),optional:m.boolean().optional()}),St=m.discriminatedUnion(`type`,[bt,xt]),Ct=m.object({type:m.literal(`artifact`),kind:m.string().min(1),schemaVersion:s,scope:o,metadata:m.record(m.string(),m.unknown()).optional()}),wt=m.object({type:m.literal(`bus-event`),subject:m.string().min(1),payload:m.record(m.string(),m.unknown()).optional()}),Tt=m.discriminatedUnion(`type`,[Ct,wt]),Et=m.object({content:m.string(),metadata:m.record(m.string(),m.unknown()).optional()}),Dt=m.object({sources:m.record(m.string(),Et)}),Ot=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`none`)}).strict(),m.object({kind:m.literal(`hmac`),secret:m.string().min(1)}).strict()]),kt=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`path`),path:m.string().min(1)}).strict(),m.object({kind:m.literal(`source`),filename:m.string().min(1),source:m.string()}).strict(),m.object({kind:m.literal(`definition`),workflowId:m.string().min(1)}).strict()]),B=m.enum([`immediate`,`await-trigger`]),At=m.object({source:kt,definition:j.optional(),executionId:m.string().min(1),executionAttemptId:m.string().min(1).optional(),workflowId:m.string().min(1),triggerPayload:n.default({}),triggerMode:B.optional(),inputs:r.default({}),config:n.optional(),artifactRef:_.optional(),scope:C.default({type:`global`}),busUrl:m.string().optional(),busAuth:Ot.default({kind:`none`}),env:m.record(m.string(),m.string()).default({}),coordinatorSessionId:m.string().min(1),cancelSubject:m.string().min(1),suspensionStrategy:te.default(`wait-in-process`),terminalAuthority:m.enum([`worker`,`authority`]).optional(),materializationSpec:p.optional()}),V=m.object({executionId:m.string().min(1),workflowId:m.string().min(1)}),jt=m.discriminatedUnion(`status`,[V.extend({status:m.literal(`completed`),artifact:a.optional()}).strict(),V.extend({status:m.literal(`failed`),error:m.string().min(1)}).strict(),V.extend({status:m.literal(`cancelled`),reason:m.string().min(1).optional()}).strict(),V.extend({status:m.literal(`paused`),pausedAtGateId:m.string().min(1),pausedAtFrameId:m.string().min(1)}).strict()]),Mt=m.object({contributionRefs:m.array(ne)}).strict(),Nt=m.discriminatedUnion(`kind`,[m.object({kind:m.literal(`path`),path:m.string().min(1).refine(e=>!e.startsWith(`/`)&&!/^[A-Za-z]:[/\\]/.test(e),{message:`path must be workspace-relative (no leading / or drive letter)`})}).strict(),m.object({kind:m.literal(`source`),filename:m.string().min(1),source:m.string()}).strict(),m.object({kind:m.literal(`definition`),workflowId:m.string().min(1)}).strict()]),Pt=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),source:Nt,definitionSnapshot:j.optional(),workerManifest:Mt.default({contributionRefs:[]}),inputs:r.default({}),config:n.optional(),scope:C.default({type:`global`}),triggerPayload:n.default({}),triggerMode:B.optional(),artifactRef:_.optional(),coordinatorSessionId:m.string().min(1),dispatchMetadata:n.optional(),cancelSubject:m.string().min(1),env:m.record(m.string(),m.string()).default({}),createdAt:m.number(),suspensionStrategy:te.default(`wait-in-process`),terminalAuthority:m.enum([`worker`,`authority`]).optional(),materializationSpec:p.optional()}).superRefine((e,t)=>{e.source.kind===`definition`&&e.definitionSnapshot===void 0&&t.addIssue({code:m.ZodIssueCode.custom,path:[`definitionSnapshot`],message:`definitionSnapshot is required when source.kind is "definition"`}),e.source.kind===`path`?e.materializationSpec===void 0?t.addIssue({code:m.ZodIssueCode.custom,path:[`materializationSpec`],message:`materializationSpec is required when source.kind is "path"`}):e.materializationSpec.sourcePath!==e.source.path&&t.addIssue({code:m.ZodIssueCode.custom,path:[`materializationSpec`,`sourcePath`],message:`materializationSpec.sourcePath must match source.path`}):e.materializationSpec!==void 0&&t.addIssue({code:m.ZodIssueCode.custom,path:[`materializationSpec`],message:`materializationSpec is only valid when source.kind is "path"`})}),H=m.object({executionId:m.string().min(1),workflowId:m.string().min(1),workflowName:m.string().optional(),status:m.enum([`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]),startedAt:m.number(),completedAt:m.number().optional(),durationMs:m.number().nonnegative().optional(),totalInputTokens:m.number().int().nonnegative().optional(),totalOutputTokens:m.number().int().nonnegative().optional(),totalEstimatedCost:m.number().nonnegative().optional(),error:m.string().optional(),failedNodeId:m.string().optional()}),Ft=m.object({executionId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),nodeType:E,path:m.array(m.string()),status:m.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:m.number().int().nonnegative(),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().optional(),startedAt:m.number().optional(),completedAt:m.number().optional(),durationMs:m.number().nonnegative().optional(),inputTokens:m.number().int().nonnegative().optional(),outputTokens:m.number().int().nonnegative().optional(),estimatedCost:m.number().nonnegative().optional(),error:m.string().optional()}),It=m.object({executionId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),artifact:T,revision:m.string().min(1).optional(),writtenAt:m.number()}),Lt=m.object({executionId:m.string().min(1),nodeId:m.string().min(1),frameId:m.string().min(1),status:m.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),prompt:m.string().optional(),openedAt:m.number(),resolvedAt:m.number().optional(),resumeData:r.optional()}),Rt=m.object({executionId:m.string().min(1),inputTokens:m.number().int().nonnegative(),outputTokens:m.number().int().nonnegative(),cachedTokens:m.number().int().nonnegative().optional(),estimatedCost:m.number().nonnegative(),byModel:m.record(m.string(),m.object({inputTokens:m.number().int().nonnegative(),outputTokens:m.number().int().nonnegative(),estimatedCost:m.number().nonnegative()})).optional()}),zt=m.object({total:m.number().int().nonnegative(),byStatus:m.object({pending:m.number().int().nonnegative(),running:m.number().int().nonnegative(),paused:m.number().int().nonnegative(),finalizing:m.number().int().nonnegative(),completed:m.number().int().nonnegative(),failed:m.number().int().nonnegative(),cancelled:m.number().int().nonnegative()}),totalDurationMs:m.number().nonnegative(),totalInputTokens:m.number().int().nonnegative(),totalOutputTokens:m.number().int().nonnegative(),totalEstimatedCost:m.number().nonnegative()}),Bt=m.object({executionId:m.string().min(1),frameId:m.string().min(1),factoryId:m.string().min(1),materializedNodeIds:m.array(m.string().min(1)),factoryInput:e.optional(),materializedAt:m.number()}),Vt=`wfx-ext-`,Ht=m.object({frameId:m.string().min(1).optional(),nodeId:m.string().min(1),nodeType:I,path:m.array(m.string().min(1)).optional(),attempt:m.number().int().nonnegative().default(0),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().min(1).optional(),startedAt:m.number().int().nonnegative().optional()}).strict(),Ut=m.object({frameId:m.string().min(1),nodeId:m.string().min(1),nodeType:I,path:m.array(m.string().min(1)),attempt:m.number().int().nonnegative().default(0),iteration:m.number().int().nonnegative().optional(),branchKey:m.string().min(1).optional(),startedAt:m.number().int().nonnegative(),durationMs:m.number().int().nonnegative().optional()}).strict(),Wt=m.object({executionId:m.string().startsWith(Vt,{message:`executionId must use the wfx-ext- prefix`}).optional(),name:m.string().min(1),startedAt:m.number().int().nonnegative().optional(),scope:C.optional(),artifactRef:_.optional(),input:r.optional(),triggerPayload:n.optional(),frame:Ht.optional()}).superRefine((e,t)=>{e.executionId!==void 0&&e.startedAt===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`startedAt is required when executionId is supplied`,path:[`startedAt`]})}),Gt=m.object({executionId:m.string().min(1),status:m.enum([`completed`,`failed`,`cancelled`]),error:m.string().min(1).optional(),reason:m.string().min(1).optional(),completedAt:m.number().nonnegative().overwrite(e=>Math.trunc(e)).optional(),frame:Ut.optional()}).superRefine((e,t)=>{if(e.status===`failed`&&e.error===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'failed' requires a non-empty 'error' message`,path:[`error`]}),e.status===`cancelled`&&e.reason===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'cancelled' requires a non-empty 'reason' string`,path:[`reason`]}),e.status===`completed`&&e.error!==void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'completed' must not carry an 'error'`,path:[`error`]}),e.status===`completed`&&e.reason!==void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`status 'completed' must not carry a 'reason'`,path:[`reason`]}),e.frame!==void 0&&e.completedAt===void 0&&t.addIssue({code:m.ZodIssueCode.custom,message:`completedAt is required when frame metadata is supplied`,path:[`completedAt`]}),e.frame!==void 0&&e.completedAt!==void 0){let n=e.completedAt-e.frame.startedAt;n<0&&t.addIssue({code:m.ZodIssueCode.custom,message:`completedAt must not precede frame.startedAt`,path:[`completedAt`]}),e.frame.durationMs!==void 0&&e.frame.durationMs!==n&&t.addIssue({code:m.ZodIssueCode.custom,message:`frame.durationMs must equal completedAt - frame.startedAt`,path:[`frame`,`durationMs`]})}}),Kt=m.object({message:m.string().min(1),details:m.string().min(1).optional(),kind:m.string().min(1).optional(),metadata:r.optional()}).strict(),U=m.object({executionId:m.string(),stepId:m.string(),stepType:m.enum([`station`,`delegate-agent`,`delegate-role`,`gate`])}),W=U.extend({stepType:m.literal(`gate`)}),qt=m.discriminatedUnion(`source`,[W.extend({frameId:m.string(),action:m.enum([`approve`,`reject`]),source:m.literal(`user`),reason:m.string().optional()}),W.extend({frameId:m.string(),action:m.enum([`approve`,`reject`]),source:m.literal(`timeout`)}),W.extend({frameId:m.string(),source:m.literal(`cancelled`)})]),Jt=W.extend({executionAttemptId:m.string().optional(),workflowId:m.string(),workflowName:m.string(),title:m.string(),message:m.string(),autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().nullable(),openedAt:m.number()}),Yt={getDefinition:{request:m.object({id:m.string()}),response:m.object({workflow:j.nullable()})},setDefinition:{request:m.object({workflow:j}),response:m.object({id:m.string()})},deleteDefinition:{request:m.object({id:m.string()}),response:m.object({deleted:m.boolean()})},listDefinitions:{request:He,response:m.object({workflows:m.array(j)})},"definition.created":j,"definition.updated":j,"definition.deleted":m.object({id:m.string()}),start:{request:m.object({workflowId:m.string(),input:r.optional(),config:r.optional(),artifactRef:_.optional(),scope:C.optional(),parentSessionId:m.string().optional(),triggerPayload:n.optional()}),response:m.object({executionId:m.string()})},rerun:{request:m.object({executionId:m.string().min(1),mode:m.enum([`snapshot`,`current`]),input:r.optional(),config:r.optional(),artifactRef:_.optional(),scope:C.optional(),parentSessionId:m.string().optional(),triggerPayload:n.optional(),reason:m.string().min(1).optional()}),response:m.object({executionId:m.string()})},cancel:{request:m.object({executionId:m.string(),reason:m.string().optional()}),response:m.object({cancelled:m.boolean()})},bootstrapAuthorityState:{request:m.object({executionId:m.string().min(1),terminalAuthority:m.literal(`authority`),definition:j}).strict(),response:m.object({persisted:m.boolean()})},acceptAuthorityRunnerResult:{request:m.object({executionId:m.string().min(1),result:jt.refine(e=>e.status!==`paused`,{message:`Authority runner results must be terminal`})}).strict().superRefine((e,t)=>{e.result.executionId!==e.executionId&&t.addIssue({code:m.ZodIssueCode.custom,path:[`result`,`executionId`],message:`result.executionId must match executionId`})}),response:m.object({accepted:m.boolean(),status:M})},finalizeDelegateResult:{request:ve,response:x},getExecution:{request:m.object({executionId:m.string()}),response:m.object({execution:N.nullable()})},listExecutions:{request:qe,response:m.object({executions:m.array(N)})},listExecutionsByArtifactRefs:{request:Ze,response:m.object({executionsByRef:m.record(m.string(),m.array(N))})},listSpans:{request:m.object({executionId:m.string()}),response:m.object({spans:m.array(ft)})},listGateInstances:{request:Qe,response:m.object({gates:m.array(Be)})},setExecutionLink:{request:m.object({link:L}),response:m.object({id:m.string()})},listExecutionLinks:{request:mt,response:m.object({links:m.array(L)})},listFrames:{request:m.object({executionId:m.string().min(1)}),response:m.object({frames:m.array(ze)})},runFile:{request:m.object({filePath:m.string().min(1),materializationSpec:p.optional(),triggerPayload:n.optional(),triggerMode:B.default(`immediate`),scope:C.optional()}),response:m.object({executionId:m.string()})},registerExternalExecution:{request:Wt,response:m.object({executionId:m.string(),frameId:m.string().optional()})},completeExternalExecution:{request:Gt,response:m.object({success:m.boolean()})},resolveRole:{request:m.object({roleId:m.string().min(1)}),response:F},resolveAgent:{request:m.object({agentId:m.string().min(1)}),response:Ve},getRunContext:{request:m.object({executionId:m.string().min(1)}),response:Pt},"execution.started":m.object({executionId:m.string(),workflowId:m.string(),coordinatorSessionId:m.string().optional(),startedAt:m.number().nonnegative().optional(),artifactRef:_.optional()}),"execution.completed":m.object({executionId:m.string(),workflowId:m.string(),totalDuration:m.number(),completedAt:m.number().nonnegative().optional(),transitionKey:m.string().min(1).optional()}),"execution.failed":m.object({executionId:m.string(),workflowId:m.string(),error:m.string(),failedStepId:m.string().optional(),completedAt:m.number().nonnegative().optional(),transitionKey:m.string().min(1).optional()}),"execution.cancelled":m.object({executionId:m.string(),workflowId:m.string(),reason:m.string().optional(),completedAt:m.number().nonnegative().optional(),transitionKey:m.string().min(1).optional()}),"execution.progress":m.object({executionId:m.string().min(1),workflowId:m.string().min(1),frameId:m.string().min(1),nodeId:m.string().min(1),progress:Kt,emittedAt:m.number().int().nonnegative()}),"execution.paused":g.schema(m.object({executionId:m.string(),workflowId:m.string(),pausedAtGateId:m.string().min(1),pausedAtFrameId:m.string().min(1)}),{traceAll:!0}),"step.beforeStart":U,"step.started":U.extend({sessionId:m.string().optional(),subagentId:m.string().optional()}),"step.completed":U.extend({result:r.optional(),duration:m.number()}),"step.failed":U.extend({error:m.string()}),"step.skipped":U.extend({reason:m.string().optional(),condition:m.string().optional()}),"gate.requested":Jt,"gate.awaitApproval":{request:Jt,response:m.object({action:m.enum([`approve`,`reject`]),source:m.enum([`user`,`timeout`]),reason:m.string().optional()})},"gate.respond":{request:m.object({executionId:m.string(),executionAttemptId:m.string().optional(),gateId:m.string(),action:m.enum([`approve`,`reject`]),frameId:m.string().optional(),resumeData:r,reason:m.string().optional()}),response:m.object({accepted:m.boolean()})},"gate.resolved":qt,"frame.started":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),nodeType:E,path:m.array(m.string()),parentFrameId:m.string().optional(),startedAt:m.number().nonnegative().optional()}),"frame.completed":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),output:r.optional(),duration:m.number().nonnegative().optional(),completedAt:m.number().nonnegative().optional()}),"frame.failed":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),error:m.string(),duration:m.number().nonnegative().optional(),completedAt:m.number().nonnegative().optional()}),"frame.sessionLinked":m.object({executionId:g.attribute(m.string(),`makaio.execution.id`),frameId:g.attribute(m.string(),`makaio.frame.id`),sessionId:g.attribute(m.string(),`makaio.session.id`)}).strict(),"gate.suspended":m.object({executionId:m.string(),executionAttemptId:m.string().optional(),frameId:m.string(),nodeId:m.string(),schema:e,prompt:m.string().optional(),title:m.string().optional(),autoAction:m.enum([`approve`,`reject`]),timeoutMs:m.number().nullable(),openedAt:m.number()}),"gate.resumed":m.object({executionId:m.string(),frameId:m.string(),nodeId:m.string(),resumeData:r}),"dynamic.materialized":m.object({executionId:m.string(),frameId:m.string(),factoryId:m.string().min(1),materializedNodes:m.number().int().nonnegative()}),"artifact.updated":m.object({executionId:m.string(),frameId:m.string(),artifactRef:m.object({kind:m.string().min(1),id:m.string().min(1)}),paths:m.array(m.string()),operation:m.string().min(1),revision:m.string().min(1).optional()}),"worklog.get":{request:m.object({executionId:m.string().min(1)}),response:m.object({summary:H.nullable()})},"worklog.frame.get":{request:m.object({frameId:m.string().min(1)}),response:m.object({frame:Ft.nullable()})},"worklog.list":{request:m.object({workflowId:m.string().min(1).optional(),status:M.optional(),limit:m.number().int().positive().optional(),offset:m.number().int().nonnegative().optional()}),response:m.object({items:m.array(H),total:m.number().int().nonnegative()})},"worklog.stats":{request:m.object({workflowId:m.string().min(1).optional(),since:m.number().int().nonnegative().optional(),until:m.number().int().nonnegative().optional()}),response:m.object({stats:zt})},"worklog.changed":m.object({executionId:m.string().min(1)}),"state.get":{request:m.object({executionId:m.string().min(1)}),response:m.object({executionId:m.string().min(1),sequence:m.number().int().nonnegative(),value:r})},"state.patch":{request:m.object({executionId:m.string().min(1),expectedSequence:m.number().int().nonnegative(),patch:m.array(z),nextValue:r}),response:m.object({executionId:m.string().min(1),sequence:m.number().int().positive(),value:r})},"state.updated":m.object({executionId:m.string().min(1),sequence:m.number().int().positive(),patch:m.array(z),value:r,updatedAt:m.number().int().positive()})},Xt=h(`workflow`,Yt),Zt=Xt.subjects;function Qt(e,t){G(e,t,void 0,0,[],`root`,void 0,void 0)}function G(e,t,n,r,i,a,o,s){let c={parent:n,depth:r,ancestors:i,relationship:a,...o!==void 0&&{index:o},...s!==void 0&&{branchKey:s}};if(t.enter?.(e,c)===!1)return;let l=[...i,e.id],u=r+1;switch(e.type){case`sequence`:{let n=e;for(let r=0;r<n.nodes.length;r++)G(n.nodes[r],t,e,u,l,`sequence-child`,r,void 0);break}case`parallel`:{let n=e;for(let[r,i]of Object.entries(n.branches))G(i,t,e,u,l,`parallel-branch`,void 0,r);break}case`iterate`:G(e.body,t,e,u,l,`iterate-body`,void 0,void 0);break;case`iterate-chain`:G(e.body,t,e,u,l,`iterate-chain-body`,void 0,void 0);break;case`loop`:G(e.body,t,e,u,l,`loop-body`,void 0,void 0);break}t.leave?.(e,c)}function $t(e){switch(e){case`station`:case`delegate-agent`:case`delegate-role`:case`gate`:return`leaf`;case`parallel`:case`iterate`:case`iterate-chain`:case`loop`:return`control`;case`sequence`:return`structural`}}function en(e,t,n){return e===`parallel-branch`&&t!==void 0?[{kind:`branch`,key:t}]:e===`sequence-child`&&n!==void 0?[{kind:`index`,value:n}]:e===`iterate-body`||e===`iterate-chain-body`||e===`loop-body`?[{kind:`body`}]:[]}function tn(e){return e.replace(/\\/g,`\\\\`).replace(/\//g,`\\/`)}function nn(e){return e.map(e=>{switch(e.kind){case`node`:return`n:${tn(e.id)}`;case`branch`:return`b:${tn(e.key)}`;case`index`:return`i:${e.value}`;case`body`:return`body`}}).join(`/`)}function rn(e){let t=[],n=[],r=new Map,i=[],a=[],o=[];return Qt(e.root,{enter(e,s){let c=en(s.relationship,s.branchKey,s.index),l={kind:`node`,id:e.id};i.push(...c,l),o.push(c.length+1);let u=[...i],d=nn(u),f=a.at(-1);if(t.push({key:d,nodeId:e.id,type:e.type,role:$t(e.type),path:u,parentKey:f,...s.branchKey!==void 0&&{branchKey:s.branchKey}}),f!==void 0&&s.parent!==void 0)switch(s.parent.type){case`sequence`:{n.push({sourceKey:f,targetKey:d,kind:`contains`});let e=r.get(f);e!==void 0&&n.push({sourceKey:e,targetKey:d,kind:`sequence`}),r.set(f,d);break}case`parallel`:n.push({sourceKey:f,targetKey:d,kind:`branch`});break;case`iterate`:case`iterate-chain`:case`loop`:n.push({sourceKey:f,targetKey:d,kind:`body`});break;default:n.push({sourceKey:f,targetKey:d,kind:`contains`});break}a.push(d)},leave(){let e=o.pop()??0;i.splice(i.length-e,e),a.pop()}}),{nodes:t,edges:n}}const an=`makaio.bus-event`,on=`makaio.cron`,sn=`UTC`;function K(e,t,n){return{kind:e,params:t,...n.filter!==void 0&&{filter:n.filter},...n.filterExpression!==void 0&&{filterExpression:n.filterExpression}}}function cn(e,n){let r=t.parse(n.params);return e.paramsSchema.parse(r),K(e.kind,r,n)}function ln(e){return K(an,{subject:ie(e.subject)},e)}const un=m.object({schedule:m.string().min(1),timezone:m.string().min(1).default(`UTC`)});function dn(e){return K(on,un.parse(e),{})}function q(e){return J(e.body.nodes,e.id)}function J(e,t){for(let n of e){if(n.type===`loop`)return`Nested loop '${n.id}' found inside loop '${t}' — V1 does not support nested loops`;if(n.type===`sequence`){let e=J(n.nodes,t);if(e)return e}if(n.type===`parallel`)for(let e of Object.values(n.branches)){let n=J(e.nodes,t);if(n)return n}if(n.type===`iterate`||n.type===`iterate-chain`){let e=n.body,r=J(e.nodes,t);if(r)return r}}}const Y=new WeakMap,fn=new WeakMap;function X(e,t,n){let r=Y.get(e);if(r!==void 0&&t.set(e.id,r),e.type===`sequence`)for(let r of e.nodes)X(r,t,n);else if(e.type===`parallel`)for(let r of Object.values(e.branches))X(r,t,n);else if(e.type===`iterate`)X(e.body,t,n);else if(e.type===`iterate-chain`)X(e.body,t,n);else if(e.type===`loop`){if(n!==void 0){let t=fn.get(e);t!==void 0&&n.set(e.gate.handler,t)}X(e.body,t,n)}}function pn(e,t,n){let r={id:e,type:`station`,prompt:e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}};return Y.set(r,t),r}function mn(e,t,n){return{id:e,type:`delegate-agent`,agentId:t.agentId,...t.inputExpression!==void 0&&{inputExpression:t.inputExpression},...t.outputSchema!==void 0&&{outputSchema:t.outputSchema},...t.allowedTools!==void 0&&{allowedTools:t.allowedTools},...t.completion!==void 0&&{completion:t.completion},...t.resultFinalizerId!==void 0&&{resultFinalizerId:t.resultFinalizerId},...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}}}function hn(e,t,n){return{id:e,type:`delegate-role`,role:t,prompt:n?.prompt??e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip},...n?.outputSchema!==void 0&&{outputSchema:n.outputSchema},...n?.timeoutMs!==void 0&&{timeoutMs:n.timeoutMs},...n?.completion!==void 0&&{completion:n.completion},...n?.allowedTools!==void 0&&{allowedTools:n.allowedTools},...n?.resultFinalizerId!==void 0&&{resultFinalizerId:n.resultFinalizerId}}}function gn(e,t){return{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:c(t.resume)}}}function _n(e,t,n){let r=`${e}__item`,i={id:r,type:`station`,prompt:r},a={id:e,type:`iterate`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:[i]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}};return Y.set(i,t),a}function vn(e,t,n){return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function yn(e,t,n){let r={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:`${e}__body`,type:`sequence`,nodes:t},gate:bn(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},i=q(r);if(i!==void 0)throw Error(i);return fn.set(r,n.gate.evaluate),r}function bn(e){let t=e.gate.escalation;return{handler:e.gate.handler,...e.gate.input!==void 0&&{input:e.gate.input},...e.gate.config!==void 0&&{config:e.gate.config},...t!==void 0&&{escalation:{prompt:t.prompt,autoAction:t.autoAction??`reject`,timeoutMs:t.timeoutMs??null,...t.title!==void 0&&{title:t.title},...t.resumeSchema!==void 0&&{resumeSchema:t.resumeSchema}}}}}function Z(e,t){if(e.has(t))throw Error(`Duplicate step ID: ${t}`);e.add(t)}function Q(e,t){if(Z(e,t.id),t.type===`sequence`)for(let n of t.nodes)Q(e,n);else if(t.type===`parallel`)for(let n of Object.values(t.branches))Q(e,n);else (t.type===`iterate`||t.type===`iterate-chain`||t.type===`loop`)&&Q(e,t.body)}function xn(e,t,n,r,i){let a={};return t.forEach((t,o)=>{if(t.id.length===0)throw Error(`parallel branch at index ${o} has an empty ID`);let s=t.id,c=`${e}__${s}`;Q(n,t),Z(n,c),X(t,r,i),a[s]={id:c,type:`sequence`,nodes:[t]}}),a}function Sn(e,t,n,r,i){let a=`${e}__body`,o=`${e}__item`;Z(r,a),Z(r,o),i.set(o,t);let s={id:o,type:`station`,prompt:o};return{id:e,type:`iterate`,collection:n.collection,body:{id:a,type:`sequence`,nodes:[s]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function Cn(e,t,n){return t.resume!==void 0&&(n[e]=t.resume),{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:c(t.resume)}}}function wn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),X(e,i,a);return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:o,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function Tn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),X(e,i,a);let s={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:o,type:`sequence`,nodes:t},gate:bn(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},c=q(s);if(c!==void 0)throw Error(c);return a.set(n.gate.handler,n.gate.evaluate),s}function En(e,t){e.input=n=>(t.zodSchemas.input=n,t.definition.inputSchema=c(n),e),e.config=n=>(t.zodSchemas.config=n,t.definition.configSchema=c(n),e),e.output=n=>(t.zodSchemas.output=n,t.definition.outputSchema=c(n),e),e.artifact=n=>(n.schema!==void 0&&(t.zodSchemas.artifact=n.schema),t.definition.artifact={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,...n.resolve!==void 0&&{resolve:n.resolve},...n.create!==void 0&&{create:n.create},...n.statusPath!==void 0&&{statusPath:n.statusPath}},e),e.state=e=>(t.definition.state={schema:e.schema,...e.initial!==void 0&&{initial:e.initial}},$(t))}function Dn(e,t){let{rootNodes:n,runtimeHandlers:r,runtimeLoopGates:i,registeredIds:a,zodGates:o}=t;e.station=(t,i,o)=>(Z(a,t),n.push({id:t,type:`station`,prompt:t,...o?.when!==void 0&&{when:o.when},...o?.skip!==void 0&&{skip:o.skip}}),r.set(t,i),e),e.delegateToAgent=(t,r,i)=>(Z(a,t),n.push(mn(t,r,i)),e),e.delegateToRole=(t,r,i)=>(Z(a,t),n.push(hn(t,r,i)),e),e.parallel=(t,o,s)=>(Z(a,t),n.push({id:t,type:`parallel`,mode:o.mode??`all-settled`,branches:xn(t,s,a,r,i),...o.when!==void 0&&{when:o.when},...o.skip!==void 0&&{skip:o.skip}}),e),e.gate=(t,r)=>(Z(a,t),n.push(Cn(t,r,o)),e),e.iterate=(t,i,o)=>(Z(a,t),n.push(Sn(t,i,o,a,r)),e),e.iterateChain=(t,o,s)=>(Z(a,t),n.push(wn(t,o,s,a,r,i)),e),e.loop=(t,o,s)=>(Z(a,t),n.push(Tn(t,o,s,a,r,i)),e),e.addNode=e=>On(e,a,r,i,n)}function On(e,t,n,r,i){Q(t,e),X(e,n,r),i.push(e)}function $(e){let t={id:e.definition.id,definition:e.definition,runtimeHandlers:e.runtimeHandlers,runtimeFactories:e.runtimeFactories,runtimeLoopGates:e.runtimeLoopGates,source:void 0,get zodSchemas(){return e.zodSchemas},addTrigger(t){return e.triggers.push(t),$(e)}};return En(t,e),Dn(t,e),t}function kn(e,t){let n=[],r=new Map,i=new Map,a=new Set,o={},s={gates:o},c=new Map,l=t?.triggers?[...t.triggers]:[];return $({rootNodes:n,runtimeHandlers:r,runtimeFactories:c,runtimeLoopGates:i,registeredIds:a,zodGates:o,zodSchemas:s,definition:{id:e,...t?.name!==void 0&&{name:t.name},...t?.description!==void 0&&{description:t.description},...t?.successFinalizerId!==void 0&&{successFinalizerId:v.parse(t.successFinalizerId)},root:{id:`${e}__root`,type:`sequence`,nodes:n},triggers:l,scope:{type:`global`}},triggers:l})}function An(e){if(e.workflows.length===0)throw Error(`defineWorkflowBundle: workflows must not be empty`);return{workflows:Object.freeze([...e.workflows])}}const jn=m.enum([`artifact.created`,`artifact.revised`,`artifact.status.changed`]),Mn=m.record(m.string(),r),Nn=m.object({type:m.string().min(1),input:m.record(m.string(),r).optional()}),Pn=m.object({id:m.string().min(1),description:m.string().optional(),on:jn,when:Mn.optional(),action:Nn,enabled:m.boolean().default(!0)});export{St as $,D as $t,Ut as A,M as At,Pt as B,De as Bt,Qt as C,_ as Cn,Ye as Ct,Zt as D,We as Dt,Yt as E,Ge as Et,H as F,we as Ft,At as G,ze as Gt,jt as H,Fe as Ht,Ft as I,Ce as It,bt as J,P as Jt,kt as K,Be as Kt,Lt as L,w as Lt,Wt as M,Qe as Mt,It as N,Ne as Nt,Gt as O,Ue as Ot,Bt as P,T as Pt,Tt as Q,Pe as Qt,zt as R,Ie as Rt,rn as S,ye as Sn,Xe as St,Kt as T,oe as Tn,Ke as Tt,B as U,N as Ut,Mt as V,Oe as Vt,Ot as W,C as Wt,xt as X,je as Xt,wt as Y,Me as Yt,Dt as Z,He as Zt,ln as _,me as _n,ot as _t,An as a,F as an,L as at,dn as b,de as bn,at as bt,hn as c,Le as cn,dt as ct,vn as d,ve as dn,ut as dt,O as en,Et as et,yn as f,b as fn,nt as ft,an as g,pe as gn,lt as gt,cn as h,ge as hn,et as ht,Pn as i,Ve as in,mt as it,Ht as j,Ze as jt,Vt as k,qe as kt,gn as l,A as ln,it as lt,q as m,y as mn,tt as mt,Mn as n,Ee as nn,gt as nt,kn as o,k as on,pt as ot,pn as p,x as pn,rt as pt,Ct as q,Ae as qt,jn as r,ke as rn,ht as rt,mn as s,Te as sn,ft as st,Nn as t,E as tn,z as tt,_n as u,_e as un,ct as ut,on as v,fe as vn,$e as vt,Xt as w,se as wn,Je as wt,sn as x,be as xn,st as xt,un as y,v as yn,I as yt,Rt as z,j as zt};
@@ -1113,8 +1113,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1113
1113
  "exit-and-resume": "exit-and-resume";
1114
1114
  }>>;
1115
1115
  terminalAuthority: z.ZodOptional<z.ZodEnum<{
1116
- authority: "authority";
1117
1116
  worker: "worker";
1117
+ authority: "authority";
1118
1118
  }>>;
1119
1119
  materializationSpec: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
1120
1120
  kind: z.ZodLiteral<"local-directory">;
@@ -2215,8 +2215,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2215
2215
  "exit-and-resume": "exit-and-resume";
2216
2216
  }>>;
2217
2217
  terminalAuthority: z.ZodOptional<z.ZodEnum<{
2218
- authority: "authority";
2219
2218
  worker: "worker";
2219
+ authority: "authority";
2220
2220
  }>>;
2221
2221
  materializationSpec: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
2222
2222
  kind: z.ZodLiteral<"local-directory">;
@@ -2402,8 +2402,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2402
2402
  "exit-and-resume": "exit-and-resume";
2403
2403
  }>>;
2404
2404
  terminalAuthority: z.ZodOptional<z.ZodEnum<{
2405
- authority: "authority";
2406
2405
  worker: "worker";
2406
+ authority: "authority";
2407
2407
  }>>;
2408
2408
  materializationSpec: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
2409
2409
  kind: z.ZodLiteral<"local-directory">;
@@ -4821,7 +4821,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4821
4821
  tableName: "workflow_run_contexts";
4822
4822
  dataType: "string";
4823
4823
  columnType: "SQLiteText";
4824
- data: "authority" | "worker" | undefined;
4824
+ data: "worker" | "authority" | undefined;
4825
4825
  driverParam: string;
4826
4826
  notNull: false;
4827
4827
  hasDefault: false;
@@ -4834,7 +4834,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4834
4834
  generated: undefined;
4835
4835
  }, {}, {
4836
4836
  length: number | undefined;
4837
- $type: "authority" | "worker" | undefined;
4837
+ $type: "worker" | "authority" | undefined;
4838
4838
  }>;
4839
4839
  materializationSpec: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
4840
4840
  name: string;
@@ -6040,7 +6040,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
6040
6040
  tableName: "workflow_finalizations";
6041
6041
  dataType: "string";
6042
6042
  columnType: "SQLiteText";
6043
- data: "acknowledged" | "failed" | "claimed";
6043
+ data: "failed" | "acknowledged" | "claimed";
6044
6044
  driverParam: string;
6045
6045
  notNull: true;
6046
6046
  hasDefault: false;
@@ -6762,8 +6762,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6762
6762
  "exit-and-resume": "exit-and-resume";
6763
6763
  }>>;
6764
6764
  terminalAuthority: z.ZodOptional<z.ZodEnum<{
6765
- authority: "authority";
6766
6765
  worker: "worker";
6766
+ authority: "authority";
6767
6767
  }>>;
6768
6768
  materializationSpec: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
6769
6769
  kind: z.ZodLiteral<"local-directory">;
@@ -7864,8 +7864,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
7864
7864
  "exit-and-resume": "exit-and-resume";
7865
7865
  }>>;
7866
7866
  terminalAuthority: z.ZodOptional<z.ZodEnum<{
7867
- authority: "authority";
7868
7867
  worker: "worker";
7868
+ authority: "authority";
7869
7869
  }>>;
7870
7870
  materializationSpec: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
7871
7871
  kind: z.ZodLiteral<"local-directory">;
@@ -8051,8 +8051,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
8051
8051
  "exit-and-resume": "exit-and-resume";
8052
8052
  }>>;
8053
8053
  terminalAuthority: z.ZodOptional<z.ZodEnum<{
8054
- authority: "authority";
8055
8054
  worker: "worker";
8055
+ authority: "authority";
8056
8056
  }>>;
8057
8057
  materializationSpec: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
8058
8058
  kind: z.ZodLiteral<"local-directory">;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1790175294701",
3
+ "version": "1.0.0-dev-1790248497521",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/makaio-ai/makaio-framework.git",
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-DTipWd-i.mjs";import{n as t,o as n,s as r}from"./json-value-DM-EjTC1.mjs";import{C as i,_ as a,a as o,b as s,c,d as l,i as ee,l as u,n as te,p as ne,r as re,t as ie,u as ae,w as d,x as oe,y as se}from"./schemas-CHM0wMq4.mjs";import{C as ce,a as f,b as le,m as ue,r as de,s as p,t as m,u as h}from"./kind-registration-Dzfo6kyb.mjs";import{t as fe}from"./zod-json-schema-ZUmGtQhT.mjs";import{t as pe}from"./ajv-Cvnmw2yn.mjs";import{t as me}from"./2020-CRfgqanb.mjs";import{t as he}from"./dist-onY7e-pd.mjs";import{z as g}from"zod";import{createBusNamespace as ge}from"@makaio/framework/core";const _e=g.strictObject({evidence:i}),_=g.strictObject({kind:g.literal(`text`),text:g.string()}),[ve,ye,be]=i.options,xe=g.union([ve.pick({source:!0,location:!0}).extend({content:_}),ye.pick({source:!0,location:!0}).extend({content:_}),be.pick({source:!0,location:!0}).extend({content:_})]);function v(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function y(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function Se(e,t){if(t===`#`)return{node:e,pointer:``};if(!t.startsWith(`#/`))return;let n;try{n=decodeURIComponent(t.slice(1))}catch{return}let r=e;for(let e of n.slice(1).split(`/`)){let t=e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`);if(Array.isArray(r)){if(!/^(0|[1-9]\d*)$/.test(t)||Number(t)>=r.length)return;r=r[Number(t)]}else{let e=v(r);if(!e||!Object.hasOwn(e,t))return;r=e[t]}}let i=typeof r==`boolean`?r:v(r);return i===void 0?void 0:{node:i,pointer:n}}function b(e,t){if(t===``)return!1;let n=e;for(let e of t.slice(1).split(`/`)){let t=e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`);if(n=Array.isArray(n)?n[Number(t)]:v(n)?.[t],typeof v(n)?.$id==`string`)return!0}return!1}function Ce(e,t,n){if(e[`x-makaio-value-type`]!==`evidence/v1`)return;let r=i.safeParse(t);if(!r.success)throw Error(`Invalid schema-declared evidence at ${n}`);return{evidence:r.data,dataPath:n}}function we(e,t,n,r){if(typeof t.$ref!=`string`)return!1;if(r)return!0;let i=Se(e,t.$ref);return i===void 0?!0:typeof i.node!=`boolean`&&x(e,i.node,n,b(e,i.pointer))}function x(e,t,n=new WeakSet,r=!1){let i=v(t);if(!i||n.has(i))return!1;n.add(i);let a=r||i!==e&&typeof i.$id==`string`;if(i[`x-makaio-value-type`]===`evidence/v1`||typeof i.$dynamicRef==`string`||we(e,i,n,a)||[`additionalItems`,`additionalProperties`,`contains`,`else`,`if`,`items`,`then`,`unevaluatedItems`,`unevaluatedProperties`].some(t=>x(e,i[t],n,a))||[`allOf`,`anyOf`,`oneOf`,`prefixItems`].some(t=>Array.isArray(i[t])&&i[t].some(t=>x(e,t,n,a)))||Array.isArray(i.items)&&i.items.some(t=>x(e,t,n,a)))return!0;for(let t of[`dependentSchemas`,`dependencies`,`patternProperties`,`properties`]){let r=v(i[t]);if(r&&Object.values(r).some(t=>x(e,t,n,a)))return!0}return!1}var Te=class{dataSchema;matchesSchema;occurrences=new Map;visited=new WeakMap;constructor(e,t){this.dataSchema=e,this.matchesSchema=t}extract(e){return this.visit(this.dataSchema,e,`/data`),[...this.occurrences.values()]}visit(e,t,n,r=``){let i=this.visited.get(e)??new Set;if(i.has(n))return;if(i.add(n),this.visited.set(e,i),typeof e.$dynamicRef==`string`)throw Error(`Evidence discovery does not support active $dynamicRef at ${n}`);if(typeof e.$ref==`string`){if(b(this.dataSchema,r))throw Error(`Evidence discovery does not support local $ref inside nested $id resource at ${n}`);let i=Se(this.dataSchema,e.$ref);if(i===void 0)throw Error(`Cannot resolve local schema reference ${e.$ref} at ${n}`);if(typeof i.node!=`boolean`&&this.visit(i.node,t,n,i.pointer),this.dataSchema.$schema!==`https://json-schema.org/draft/2020-12/schema`)return}let a=Ce(e,t,n);if(a){this.occurrences.set(n,a);return}this.visitCombiners(e,t,n,r),this.visitConditional(e,t,n,r),this.visitDependencies(e,t,n,r),this.assertSupportedApplicators(e,n,r),Array.isArray(t)?this.visitArray(e,t,n,r):typeof t==`object`&&t&&this.visitObject(e,t,n,r)}visitCombiners(e,t,n,r){for(let i of[`allOf`,`anyOf`,`oneOf`]){let a=e[i];if(Array.isArray(a))for(let[e,o]of a.entries()){let a=v(o),s=`${r}/${i}/${e}`;a&&(i===`allOf`||this.matchesSchema(this.dataSchema,s,t))&&this.visit(a,t,n,s)}}}visitConditional(e,t,n,r){let i=typeof e.if==`boolean`?e.if:v(e.if);if(i===void 0)return;let a=`${r}/if`,o=this.matchesSchema(this.dataSchema,a,t);o&&typeof i!=`boolean`&&this.visit(i,t,n,a);let s=o?`then`:`else`,c=v(e[s]);c&&this.visit(c,t,n,`${r}/${s}`)}visitDependencies(e,t,n,r){if(!(typeof t!=`object`||!t||Array.isArray(t)))for(let i of[`dependentSchemas`,`dependencies`]){let a=v(e[i]);if(a)for(let[e,o]of Object.entries(a)){let a=v(o);Object.hasOwn(t,e)&&a&&this.visit(a,t,n,`${r}/${i}/${y(e)}`)}}}assertSupportedApplicators(e,t,n){for(let r of[`unevaluatedProperties`,`unevaluatedItems`])if(x(this.dataSchema,e[r],void 0,b(this.dataSchema,n)))throw Error(`Evidence under unsupported ${r} applicator at ${t}`)}visitArray(e,t,n,r){let i=Array.isArray(e.prefixItems),a=i?e.prefixItems:Array.isArray(e.items)?e.items:[];a.forEach((e,a)=>{let o=v(e),s=i?`prefixItems`:`items`;o&&a<t.length&&this.visit(o,t[a],`${n}/${a}`,`${r}/${s}/${a}`)});let o=Array.isArray(e.items)?v(e.additionalItems):v(e.items);if(o){let i=Array.isArray(e.items)?`additionalItems`:`items`;t.slice(a.length).forEach((e,t)=>this.visit(o,e,`${n}/${a.length+t}`,`${r}/${i}`))}this.visitContains(e,t,n,r)}visitContains(e,t,n,r){let i=v(e.contains);if(!i)return;let a=`${r}/contains`;t.forEach((e,t)=>{this.matchesSchema(this.dataSchema,a,e)&&this.visit(i,e,`${n}/${t}`,a)})}visitObject(e,t,n,r){let i=v(e.properties),a=v(e.patternProperties);for(let[o,s]of Object.entries(t)){let t=y(o),c=i!==void 0&&Object.hasOwn(i,o),l=v(i?.[o]);l&&this.visit(l,s,`${n}/${t}`,`${r}/properties/${t}`);let ee=this.visitPatterns(a,o,s,`${n}/${t}`,r),u=v(e.additionalProperties);!c&&!ee&&u&&this.visit(u,s,`${n}/${t}`,`${r}/additionalProperties`)}}visitPatterns(e,t,n,r,i){let a=!1;for(let[o,s]of Object.entries(e??{})){if(!new RegExp(o,`u`).test(t))continue;a=!0;let e=v(s);e&&this.visit(e,n,r,`${i}/patternProperties/${y(o)}`)}return a}};function Ee(e,t,n){return new Te(e,n.matchesSchema).extract(t)}function De(e){let{dataSchema:t,hooks:n,...r}=e,i={$schema:`https://json-schema.org/draft/2020-12/schema`,...fe(t)};le(i);let a=f.parse({...r,dataSchema:i});if(a.kind!==e.kind)throw Error(`Artifact kind identifiers must not contain surrounding whitespace`);let o=g.fromJSONSchema(a.dataSchema),s=g.unknown().superRefine((e,t)=>{let n=o.safeParse(e);if(!n.success)for(let e of n.error.issues)t.addIssue({code:`custom`,path:e.path,message:e.message})}).pipe(t).superRefine((e,t)=>{try{ce(e,a.titlePath)}catch(e){t.addIssue({code:`custom`,path:a.titlePath.split(`.`),message:e instanceof Error?e.message:`Artifact title must be a nonblank string`})}});return{...structuredClone(a),kind:e.kind,schemaVersion:e.schemaVersion,dataSchema:s,...n?{hooks:n}:{},toRegistration:()=>structuredClone(a)}}var Oe=e(pe(),1),ke=e(me(),1),Ae=e(he(),1);function S(e){let t={allErrors:!0,strict:!1,strictSchema:!0},n=e.dataSchema.$schema===`https://json-schema.org/draft/2020-12/schema`?new ke.default(t):new Oe.default(t);return(0,Ae.default)(n),n.addKeyword({keyword:oe,schemaType:`string`,valid:!0}),n.compile(e.dataSchema)}function je(e){return e.replace(/~1/gu,`/`).replace(/~0/gu,`~`)}function Me(e){let t=e.instancePath.split(`/`).slice(1).map(je),n=e.keyword===`required`?e.params.missingProperty:e.params.additionalProperty;return typeof n==`string`&&(e.keyword===`required`||e.keyword===`additionalProperties`)&&t.push(n),t.join(`.`)}function Ne(e){if(e.keyword!==`type`)return;let t=e.params.type;if(typeof t==`string`)return t;if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return t.join(` | `)}const Pe=n.array();function Fe(e){if(e.keyword!==`enum`)return;let t=Pe.safeParse(e.params.allowedValues);return t.success?t.data:void 0}function Ie(e){return(e??[]).map(e=>{let t=Ne(e),n=Fe(e);return{path:Me(e),reason:e.message??`violates ${e.keyword}`,...t===void 0?{}:{expectedType:t},...n===void 0?{}:{allowedValues:n}}})}function Le(e){return S(e)}function Re(e){let t=S(e);return e=>t(e)?{valid:!0}:{valid:!1,issues:Ie(t.errors)}}function ze(e){return{hooks:[...e.hooks]}}const Be=[`inline`,`summary`,`link`,`omit`],C=g.string().min(1),w=g.object({kinds:g.array(g.string().min(1)).optional(),hint:C.optional(),depth:g.number().int().min(1).max(20).optional(),nested:g.lazy(()=>T).optional()}),T=g.record(g.string().min(1),w);function E(e){return JSON.stringify([e.kind,e.id,e.revision])}const D=g.enum([`not-selected`,`not-found`,`depth-exceeded`,`unsupported-ref-class`,`cycle-detected`]),O=g.object({target:u,sourceRef:d,relationType:g.string().min(1),sourceLocalId:c.shape.sourceLocalId,hint:C,status:g.enum([`resolved`,`unresolved`]),reason:D.optional()}).superRefine((e,t)=>{e.status===`unresolved`&&e.reason===void 0&&t.addIssue({code:g.ZodIssueCode.custom,path:[`reason`],message:`reason is required for unresolved artifact context refs`}),e.status===`resolved`&&e.reason!==void 0&&t.addIssue({code:g.ZodIssueCode.custom,path:[`reason`],message:`reason must be omitted for resolved artifact context refs`}),e.status===`resolved`&&e.target.refClass!==`artifact`&&t.addIssue({code:g.ZodIssueCode.custom,path:[`target`],message:`resolved artifact context refs must target an artifact revision`})}),k=g.object({rootRef:d,refs:g.array(O),resolved:g.array(l)}).superRefine((e,t)=>{let n=new Set(e.resolved.map(E));n.has(E(e.rootRef))||t.addIssue({code:g.ZodIssueCode.custom,path:[`resolved`],message:`resolved artifact context wire payloads must include the root artifact revision`}),e.refs.forEach((e,r)=>{n.has(E(e.sourceRef))||t.addIssue({code:g.ZodIssueCode.custom,path:[`refs`,r,`sourceRef`],message:`artifact context ref sources must have a matching revision in resolved`}),!(e.status!==`resolved`||e.target.refClass!==`artifact`)&&(n.has(E(e.target))||t.addIssue({code:g.ZodIssueCode.custom,path:[`refs`,r,`target`],message:`resolved artifact context refs must have a matching revision in resolved`}))})});function Ve(e){let t=k.parse(e),n=new Map(t.resolved.map(e=>[A(e),e])),r=new Map;for(let e of t.refs){let t=A(e.sourceRef),n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}let i=n.get(A(t.rootRef));if(!i)throw Error(`Resolved artifact context is missing root artifact '${A(t.rootRef)}'`);let a=He(t.rootRef,i,`inline`,r,n);return{root:a,flatten(){let e=[];return Ge(a,e),e}}}function He(e,t,n,r,i){return{status:`resolved`,ref:e,artifact:t,hint:n,children:We(e,r,i,new Set([A(e)]))}}function Ue(e,t,n,r,i,a,o,s){let c=A(e),l=new Set(s);return l.add(c),{status:`resolved`,ref:e,artifact:t,relation:n,sourceLocalId:r,hint:i,children:We(e,a,o,l)}}function We(e,t,n,r){return(t.get(A(e))??[]).map(e=>{if(e.status===`unresolved`)return{status:`unresolved`,target:e.target,relation:e.relationType,sourceLocalId:e.sourceLocalId,hint:e.hint,reason:e.reason};if(e.target.refClass!==`artifact`)throw Error(`Resolved artifact context refs must target an artifact revision`);let i=A(e.target),a=n.get(i);if(!a)throw Error(`Resolved artifact context is missing target artifact '${i}'`);return r.has(i)?{status:`unresolved`,target:e.target,relation:e.relationType,sourceLocalId:e.sourceLocalId,hint:e.hint,reason:`cycle-detected`}:Ue(e.target,a,e.relationType,e.sourceLocalId,e.hint,t,n,r)})}function Ge(e,t){if(e.status!==`unresolved`){t.push(e.artifact);for(let n of e.children)Ge(n,t)}}function A(e){return JSON.stringify([e.kind,e.id,e.revision])}const j=[`$set`,`$unset`,`$push`,`$pull`],M=`[A-Za-z_$][A-Za-z0-9_$]*`,N=`[A-Za-z_$][A-Za-z0-9_$-]*`,Ke=`(?:0|[1-9][0-9]*)`,qe=`(?:${`\\$\\[${M}\\]`}|${Ke}|${N})`,Je=RegExp(`^${N}(?:\\.${qe})*$`),Ye=RegExp(`^${M}(?:\\.${N})*$`),Xe=RegExp(`^${Ke}$`),Ze=RegExp(`^\\$\\[(${M})\\]$`),P=g.string().regex(Je,`Expected a data-relative path of object properties, array positions, or $[filter] placeholders`);function Qe(e){let t=Ze.exec(e);return t?.[1]===void 0?Xe.test(e)?{kind:`index`,index:Number(e)}:{kind:`property`,name:e}:{kind:`filter`,placeholder:t[1]}}function $e(e){return e.split(`.`).map(Qe)}function et(e){return $e(e).flatMap(e=>e.kind===`filter`?[e.placeholder]:[])}const tt=r(g.record(g.string().regex(Ye,`Expected a filter key of the form name or name.field.path`),n),{prototypeKey:`an array filter cannot compare a __proto__ key, which JSON transport drops`,nonPlainObject:`an array filter must be a plain object of comparison keys`,symbolKey:`an array filter cannot carry symbol-keyed comparisons`,nonEnumerableKey:`an array filter cannot carry non-enumerable comparison keys`,extraArrayKey:`an array filter must be a plain object, not an array`});function nt(e){let t=new Set(Object.keys(e).map(e=>e.split(`.`)[0]));if(t.size!==1)return;let[n]=t;return n!==void 0&&n.length>0?n:void 0}function F(e,t){return r(g.record(P,t),{prototypeKey:`${e} cannot address __proto__, which JSON transport drops`,nonPlainObject:`${e} must be a plain object of path instructions`,symbolKey:`${e} cannot carry symbol-keyed instructions`,nonEnumerableKey:`${e} cannot carry non-enumerable instructions`,extraArrayKey:`${e} must be a plain object, not an array`})}const rt=g.literal(!0),it=g.strictObject({$set:F(`$set`,n).optional(),$unset:F(`$unset`,rt).optional(),$push:F(`$push`,n).optional(),$pull:F(`$pull`,n).optional(),arrayFilters:g.array(tt).optional()});function I(e){return j.flatMap(t=>Object.entries(e[t]??{}).map(([e,n])=>({operator:t,path:e,value:n})))}function at(e,t){let n=I(e),r=new Map;(e.arrayFilters??[]).forEach((e,n)=>{let i=nt(e);if(i===void 0){t.addIssue({code:`custom`,path:[`arrayFilters`,n],message:`An array filter must bind exactly one placeholder name across all of its keys`});return}if(r.has(i)){t.addIssue({code:`custom`,path:[`arrayFilters`,n],message:`Array filter placeholder ${i} is already bound by another filter`});return}r.set(i,n)});let i=new Set;for(let{operator:e,path:a}of n)for(let n of et(a))i.add(n),r.has(n)||t.addIssue({code:`custom`,path:[e,a],message:`Path uses placeholder $[${n}] without a matching entry in arrayFilters`});for(let[e,n]of r)i.has(e)||t.addIssue({code:`custom`,path:[`arrayFilters`,n],message:`Array filter binds placeholder ${e}, which no path uses`})}const ot=it.superRefine(at).superRefine((e,t)=>{I(e).length===0&&t.addIssue({code:`custom`,message:`Declare at least one of ${j.join(`, `)}`})}),st=it.superRefine(at),ct=g.strictObject({kind:d.shape.kind,id:d.shape.id}),lt=g.strictObject({ref:ct,baseRevision:d.shape.revision,patch:st,dryRun:g.boolean().optional(),schemaVersion:h.optional().describe(`Target schema version for the patched revision; defaults to the base revision's. Use it to migrate an artifact left at an older version by a kind bump.`),statusPath:ne.optional(),representations:ae.strict().nullable().optional().describe(`Rendering hints (markdown, summary, plaintext) for the new revision. Omit to keep the previous revision's hints. An object replaces all of them, it does not merge: send every hint you want to keep. null clears them.`)}).superRefine((e,t)=>{e.schemaVersion===void 0&&I(e.patch).length===0&&t.addIssue({code:`custom`,path:[`patch`],message:`Declare at least one of ${j.join(`, `)}, or name a schemaVersion to migrate a payload that already fits`})}),ut=[`ARTIFACT_NOT_FOUND`,`BASE_REVISION_CONFLICT`,`KIND_NOT_REGISTERED`,`SCHEMA_VERSION_MISMATCH`,`PATH_NOT_DECLARED`,`PATH_NOT_RESOLVABLE`,`TARGET_NOT_A_COLLECTION`,`UNSUPPORTED_TARGET`,`NO_MATCH`,`SCHEMA_VALIDATION_FAILED`,`PAYLOAD_INVARIANT_FAILED`,`NO_CHANGE`,`STORE_REJECTED`,`HOST_FAILED`],dt=g.strictObject({path:g.string(),reason:g.string().min(1),expectedType:g.string().min(1).optional(),allowedValues:g.array(n).optional()}),ft=g.strictObject({code:g.enum(ut),message:g.string().min(1),operator:g.enum(j).optional(),path:P.optional(),currentRevision:d.shape.revision.optional(),issues:g.array(dt).optional(),repair:g.string().min(1)}).superRefine((e,t)=>{e.code===`BASE_REVISION_CONFLICT`&&e.currentRevision===void 0&&t.addIssue({code:g.ZodIssueCode.custom,message:`A BASE_REVISION_CONFLICT must name the revision the artifact carries.`,path:[`currentRevision`]})}),pt=g.strictObject({operator:g.enum(j),path:P,matched:g.number().int().positive()}),mt=g.strictObject({from:h,to:h}).refine(e=>e.to>e.from,{path:[`to`],message:`A migration moves the artifact forward to a newer schema version`}),ht=g.strictObject({ok:g.literal(!0),base:d,operations:g.array(pt),migration:mt.optional()});function gt(e,t){e.operations.length===0&&e.migration===void 0&&t.addIssue({code:`custom`,path:[`operations`],message:`A success without a migration must report at least one applied instruction`})}const _t=ht.extend({dryRun:g.literal(!0)}).superRefine(gt),vt=ht.extend({dryRun:g.literal(!1),artifact:d}).superRefine(gt),yt=g.discriminatedUnion(`dryRun`,[_t,vt]),bt=g.strictObject({ok:g.literal(!1),error:ft}),xt=g.union([yt,bt]),St=g.object({ref:se}),Ct=g.union([g.strictObject({ok:g.literal(!0),ref:se,areaPath:de,part:t}),g.strictObject({ok:g.literal(!1),error:ue})]),L=d.pick({kind:!0,id:!0}),R=g.number().int().positive(),z=R,B={knowledge:`valid`,commitment:`proposed`,interaction:`open`},V=g.discriminatedUnion(`category`,[g.strictObject({category:g.literal(`knowledge`),state:g.enum(m.knowledge),version:z}),g.strictObject({category:g.literal(`commitment`),state:g.enum(m.commitment),version:z}),g.strictObject({category:g.literal(`interaction`),state:g.enum(m.interaction),version:z})]).superRefine((e,t)=>{e.version===1&&e.state!==B[e.category]&&t.addIssue({code:`custom`,path:[`state`],message:`Lifecycle version 1 is reserved for the category initial state`})}),H=g.union([V,g.strictObject({category:g.literal(`record`)})]),U=g.string().trim().min(1),wt=g.strictObject({kind:U,ref:U}),W=g.discriminatedUnion(`kind`,[g.strictObject({kind:g.literal(`revision-assessment`),assessedRevision:d.shape.revision,source:wt.optional()}),g.strictObject({kind:g.literal(`handover`),source:wt})]),Tt={artifact:L,expectedVersion:z,state:p,situation:W,reason:U.optional()},G=g.strictObject(Tt),Et=g.strictObject({...Tt,actor:ie}),Dt={valid:[`retired`],retired:[`valid`],proposed:[`decided`],decided:[`fulfilled`,`revoked`],fulfilled:[],revoked:[],open:[`resolved`,`closed-without-resolution`],resolved:[],"closed-without-resolution":[]};function K(e,t){return Dt[e].includes(t)}const Ot={artifact:L,lifecycle:V,actor:ie,timestamp:g.number().int().nonnegative(),observedRevision:d.shape.revision},kt=g.strictObject({...Ot,operation:g.literal(`initialized`)}).superRefine((e,t)=>{(e.lifecycle.version!==1||e.lifecycle.state!==B[e.lifecycle.category])&&t.addIssue({code:`custom`,path:[`lifecycle`],message:`Initialization requires the category initial state and version 1`})});function At(e,t){return t===`retired`||e===`retired`&&t===`valid`}const jt=`Retiring or reinstating knowledge requires a reason`,q=g.strictObject({...Ot,operation:g.literal(`transitioned`),previousState:p,situation:W,reason:G.shape.reason}).superRefine((e,t)=>{(!K(e.previousState,e.lifecycle.state)||e.lifecycle.version<=1)&&t.addIssue({code:`custom`,path:[`lifecycle`],message:`History requires a category-compatible transition after initialization`}),At(e.previousState,e.lifecycle.state)&&!e.reason&&t.addIssue({code:`custom`,path:[`reason`],message:jt}),e.situation.kind===`revision-assessment`&&e.situation.assessedRevision!==e.observedRevision&&t.addIssue({code:`custom`,path:[`situation`],message:`An assessment cannot authorize a different observed content revision`})}),Mt=g.discriminatedUnion(`operation`,[kt,q]),J=g.discriminatedUnion(`reason`,[g.strictObject({reason:g.literal(`lifecycle-version-conflict`),expectedVersion:z,current:V,requestedState:p}),g.strictObject({reason:g.literal(`content-basis-conflict`),assessedRevision:d.shape.revision,currentRevision:d.shape.revision}),g.strictObject({reason:g.literal(`invalid-transition`),current:H,requestedState:p}),g.strictObject({reason:g.literal(`precondition-failed`),current:V,requestedState:p})]),Y=`artifact-lifecycle-rejected`;var X=class extends Error{code=Y;data;constructor(e,t){super(e),this.name=`ArtifactLifecycleError`,this.data=J.parse(t)}};function Nt(e){return e===`record`?{category:`record`}:V.parse({category:e,state:B[e],version:1})}function Pt(e){let t=H.parse(e.current),n=d.shape.revision.parse(e.currentRevision),r=Et.parse(e.command);if(t.category===`record`)throw new X(`Record artifacts do not have a lifecycle`,{reason:`invalid-transition`,current:t,requestedState:r.state});if(r.expectedVersion!==t.version)throw new X(`Artifact lifecycle changed since the supplied baseline`,{reason:`lifecycle-version-conflict`,expectedVersion:r.expectedVersion,current:t,requestedState:r.state});if(r.situation.kind===`revision-assessment`&&r.situation.assessedRevision!==n)throw new X(`Assessed content revision is no longer current`,{reason:`content-basis-conflict`,assessedRevision:r.situation.assessedRevision,currentRevision:n});if(!K(t.state,r.state))throw new X(`Artifact lifecycle transition is not allowed`,{reason:`invalid-transition`,current:t,requestedState:r.state});if(At(t.state,r.state)&&!r.reason)throw new X(jt,{reason:`precondition-failed`,current:t,requestedState:r.state});return V.parse({...t,state:r.state,version:t.version+1})}const Z=g.strictObject({artifact:L}),Ft=g.strictObject({lifecycle:H}),It=g.strictObject({artifact:L,afterVersion:R.optional(),limit:g.number().int().min(1).max(100).default(50)}),Lt=g.strictObject({entries:g.array(Mt).max(100),nextCursor:R.optional()}).superRefine(({entries:e,nextCursor:t},n)=>{let r=e[0],i;for(let[t,a]of e.entries()){let e=a.artifact.kind===r?.artifact.kind&&a.artifact.id===r?.artifact.id,o=i===void 0||a.lifecycle.version===i.lifecycle.version+1,s=i===void 0||a.operation===`transitioned`&&a.lifecycle.category===i.lifecycle.category&&a.previousState===i.lifecycle.state;if(!e||!o||!s){n.addIssue({code:`custom`,path:[`entries`,t],message:`History pages contain one artifact in contiguous ascending, state-linked order`});break}i=a}t!==void 0&&t!==i?.lifecycle.version&&n.addIssue({code:`custom`,path:[`nextCursor`],message:`nextCursor must equal the last returned lifecycle version`})}),Q=g.strictObject({entry:q}),Rt=Q,zt=g.strictObject({code:g.literal(Y),message:g.string().min(1),data:J});function Bt(e){return{code:e.code,message:e.message,data:e.data}}function Vt(e,t){switch(t.reason){case`content-basis-conflict`:return Wt(e,t);case`lifecycle-version-conflict`:return[...Ht(e,t),...Ut(e,t)];case`invalid-transition`:case`precondition-failed`:return[...Ht(e,t),...Gt(e,t)]}}function Ht(e,t){return t.requestedState===e.state?[]:[{path:[`requestedState`],message:`Rejection requestedState must match the rejected transition`}]}function Ut(e,t){let n=[];return t.expectedVersion!==e.expectedVersion&&n.push({path:[`expectedVersion`],message:`Version conflict baseline must match the rejected transition`}),t.current.version===e.expectedVersion&&n.push({path:[`current`,`version`],message:`Version conflict requires a current version different from the supplied baseline`}),n}function Wt(e,t){let n=[];return(e.situation.kind!==`revision-assessment`||t.assessedRevision!==e.situation.assessedRevision)&&n.push({path:[`assessedRevision`],message:`Content conflict must identify the rejected revision assessment`}),t.currentRevision===t.assessedRevision&&n.push({path:[`currentRevision`],message:`Content conflict requires a current revision different from the assessed revision`}),n}function Gt(e,t){if(t.current.category===`record`)return[];let n=[];t.current.version!==e.expectedVersion&&n.push({path:[`current`,`version`],message:`A rejection after the version check must report the supplied baseline version`});let r=K(t.current.state,t.requestedState);return t.reason===`invalid-transition`&&r&&n.push({path:[`reason`],message:`invalid-transition requires a transition the lifecycle matrix disallows`}),t.reason===`precondition-failed`&&!r&&n.push({path:[`reason`],message:`precondition-failed requires a transition the lifecycle matrix allows`}),n}const Kt=g.strictObject({transition:G,error:zt}).superRefine(({transition:e,error:t},n)=>{for(let r of Vt(e,t.data))n.addIssue({code:`custom`,path:[`error`,`data`,...r.path],message:r.message})}),qt={"lifecycle.get":{request:Z,response:Ft},"lifecycle.history":{request:It,response:Lt},"lifecycle.transition":{request:G,response:Q},"lifecycle.committed":Rt,"lifecycle.rejected":Kt},Jt={...qt,"kind.register":{request:f,response:g.object({registered:g.boolean()})},"kind.list":{request:g.object({kind:g.string().min(1).optional()}),response:g.object({kinds:g.array(f)})},"relation-type.register":{request:s,response:g.object({registered:g.boolean()})},"relation-type.list":{request:g.object({type:g.string().min(1).optional()}),response:g.object({relationTypes:g.array(s)})},create:{request:l.omit({id:!0,revision:!0,timestamp:!0}).extend({id:d.shape.id.optional()}),response:g.object({artifact:l})},revise:{request:g.object({previous:d,statusPath:ne.optional(),revision:l.omit({id:!0,revision:!0,timestamp:!0})}),response:g.object({artifact:l})},patch:{request:lt,response:xt},resolve:{request:g.object({ref:d}),response:g.object({artifact:l.nullable()})},resolvePart:{request:St,response:Ct},query:{request:o,response:g.object({artifacts:g.array(l)})},compare:{request:te,response:re},"evidence.resolve":{request:_e,response:xe},resolveContext:{request:g.object({ref:d,selectors:T.optional(),maxDepth:g.number().int().min(1).max(20).default(5)}),response:g.object({context:k})},created:g.object({artifact:l}),revised:g.object({previous:d,artifact:l}),"relation.added":g.object({artifact:d,relation:c}),"observation.added":g.object({artifact:d,observation:ee}),"status.changed":g.object({artifact:d,path:g.string().min(1),previous:g.unknown().optional(),current:g.unknown().optional()}),"kind.changed":g.object({kind:g.string().min(1),schemaVersion:h})},Yt=ge(`artifact`,Jt),Xt=Yt.subjects,Zt=g.discriminatedUnion(`refClass`,[d.omit({revision:!0}),a]);function Qt(e){if(e.refClass===`artifact`)return{refClass:`artifact`,kind:e.kind,id:e.id};if(e.refClass===`entity`)return{refClass:`entity`,entityType:e.entityType,id:e.id}}function $(e){return e.refClass===`artifact`?JSON.stringify([`artifact`,e.kind,e.id]):JSON.stringify([`entity`,e.entityType,e.id])}function $t(e){return e.refClass===`artifact`?`artifact:${e.kind}/${e.id}`:`entity:${e.entityType}/${e.id}`}const en=[`relation-target`];function tn(e,t){if(!e||e.length===0)return{ok:!0,rules:[]};let n=[];for(let[r,i]of e.entries()){for(let[e,a]of i.by.entries())(!en.includes(a.kind)||!t.includes(a.kind))&&n.push({ruleIndex:r,selectorIndex:e,capability:a.kind,message:`rule #${r}, selector #${e}: '${a.kind}' selectors are not supported`});i.lifecycleStates!==void 0&&!t.includes(`lifecycle-states`)&&n.push({ruleIndex:r,capability:`lifecycle-states`,message:`rule #${r}: lifecycleStates is declared but 'lifecycle-states' is not a supported capability`})}return n.length>0?{ok:!1,issues:n}:{ok:!0,rules:e}}function nn(e,t,n,r){if(e.kind===`data`)return{ruleIndex:n,selectorIndex:r,reason:`unsupported-selector`,message:`rule #${n}, selector #${r}: data-path selectors cannot be derived from relations`};let{relationType:i}=e,a=t.filter(e=>e.type===i&&e.sourceLocalId===void 0),o=new Set,s,c;for(let e of a){let t=Qt(e.target);if(t===void 0){c=e.target.refClass;break}o.add($(t)),s=t}return c===void 0?s===void 0?{ruleIndex:n,selectorIndex:r,reason:`missing-target`,relationType:i,message:`rule #${n}, selector #${r}, relation '${i}': no relations of this type found`}:o.size>1?{ruleIndex:n,selectorIndex:r,reason:`ambiguous-target`,relationType:i,message:`rule #${n}, selector #${r}, relation '${i}': ${o.size} distinct targets; expected exactly one`}:{type:i,target:s}:{ruleIndex:n,selectorIndex:r,reason:`unsupported-target`,relationType:i,message:`rule #${n}, selector #${r}, relation '${i}': found a relation with refClass '${c}'; only artifact and entity targets are supported`}}function rn(e,t){let n=[],r=[];for(let[i,a]of e.entries()){let e=a.by.map((e,n)=>nn(e,t,i,n)),o=e.filter(e=>`reason`in e);if(o.length>0){r.push(...o);continue}let s=e.filter(e=>!(`reason`in e)),c=JSON.stringify(s.map(e=>[e.type,$(e.target)]));n.push({rule:a,ruleIndex:i,parts:s,serialized:c})}return{keys:n,issues:r}}function an(e){return e.parts.map(e=>`${e.type} → ${$t(e.target)}`).join(`; `)}export{yt as $,Et as A,j as B,X as C,J as D,kt as E,Nt as F,bt as G,ot as H,K as I,pt as J,dt as K,St as L,q as M,R as N,W as O,Pt as P,xt as Q,Ct as R,H as S,L as T,_t as U,tt as V,ft as W,vt as X,P as Y,lt as Z,Kt as _,De as _t,Qt as a,$e as at,Bt as b,xe as bt,Yt as c,D as ct,Rt as d,w as dt,ct as et,zt as f,C as ft,Lt as g,Le as gt,It as h,Re as ht,Zt as i,Qe as it,G as j,V as k,Jt as l,k as lt,Ft as m,ze as mt,rn as n,I as nt,$t as o,Ve as ot,Z as p,T as pt,mt as q,an as r,et as rt,$ as s,O as st,tn as t,nt as tt,Xt as u,Be as ut,qt as v,Ee as vt,Mt as w,Y as x,Q as y,_e as yt,ut as z};