@makaio/framework 1.0.0-dev-1789138982585 → 1.0.0-dev-1789160791094

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 (53) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/artifact-B-PQO_TB.mjs +1 -0
  3. package/dist/bus/index.d.mts +41 -1
  4. package/dist/bus/index.mjs +1 -8
  5. package/dist/bus-DU_7GM0J.mjs +9 -0
  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/index.d.mts +13 -13
  12. package/dist/contracts/index.mjs +1 -1
  13. package/dist/contracts/worker/index.d.mts +1 -1
  14. package/dist/contracts/worker/index.mjs +1 -1
  15. package/dist/contracts/workflow/index.d.mts +1 -1
  16. package/dist/contracts/workflow/index.mjs +1 -1
  17. package/dist/{index-ohUp4w1P.d.mts → index-Bt9YxVg5.d.mts} +52 -52
  18. package/dist/{index-OLGGmjgd.d.mts → index-CU9xmTkP.d.mts} +1 -1
  19. package/dist/{index-BXPMLk9W.d.mts → index-CdPWA8co.d.mts} +23 -23
  20. package/dist/{index-BGg5g9cK.d.mts → index-DN2Odrnz.d.mts} +183 -9
  21. package/dist/{index-H2NL2OwF2.d.mts → index-EJFdPYs32.d.mts} +3 -3
  22. package/dist/{index-it0mr4vE.d.mts → index-KmZLl8Ne.d.mts} +1 -1
  23. package/dist/{index-DcfuHw2O.d.mts → index-WhgPewY4.d.mts} +6 -6
  24. package/dist/{namespace-BHkEHrUG.d.mts → namespace-DyWNxLt1.d.mts} +6 -6
  25. package/dist/package.json +1 -1
  26. package/dist/{schemas-COQUToGQ.d.mts → schemas-BGcAiQE0.d.mts} +4 -4
  27. package/dist/{schemas-BhOepTL5.d.mts → schemas-Dt1YwXLN.d.mts} +2 -2
  28. package/dist/{schemas-DYtUc2WA.d.mts → schemas-FkLOBJgq.d.mts} +4 -4
  29. package/dist/{schemas-DNvDh0eE2.d.mts → schemas-Fn-eeay32.d.mts} +7 -7
  30. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  31. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  32. package/dist/services/index.d.mts +15 -15
  33. package/dist/services/preferences/index.d.mts +2 -2
  34. package/dist/services/preferences/schemas.d.mts +1 -1
  35. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  36. package/dist/services/provider-context/index.d.mts +1 -1
  37. package/dist/services/session/index.d.mts +1 -1
  38. package/dist/services/settings/namespace.d.mts +2 -2
  39. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  40. package/dist/services/subagent-template/index.d.mts +1 -1
  41. package/dist/services/subagent-template/schemas.d.mts +1 -1
  42. package/dist/{storage-namespace-DITavhRL.d.mts → storage-namespace-BUSNKZLw.d.mts} +10 -10
  43. package/dist/ui-kernel/index.d.mts +4 -4
  44. package/dist/ui-kernel/pages/namespace.d.mts +4 -4
  45. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  46. package/dist/{worker-CaRR3V7o.mjs → worker-CrYtBGy1.mjs} +1 -1
  47. package/dist/workflow-engine/index.d.mts +41 -41
  48. package/dist/{workflow-BD7Pw5JY.mjs → workflow-mCL6Xv-J.mjs} +1 -1
  49. package/package.json +1 -1
  50. package/dist/artifact-BPK_ywFP.mjs +0 -1
  51. package/dist/bus-CobBUqjo.mjs +0 -2
  52. package/dist/bus-Uy9C3TBM.mjs +0 -1
  53. package/dist/scoped-bus-DwVrmi_1.mjs +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
- "fingerprint": "49c6b53a0143b31f0c484238191c1059f7dc18da7f630f59bae402c1b306486c",
4
- "builtAt": "2026-09-11T15:04:12.536Z",
3
+ "fingerprint": "8624855cc77d82f5724821fa9053e5b1cf3fd507de2cad8252fb58b11a19d69c",
4
+ "builtAt": "2026-09-11T21:07:38.394Z",
5
5
  "declarations": true,
6
6
  "declarationBackend": "tsc"
7
7
  }
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{o as t,s as n}from"./json-value-DM-EjTC1.mjs";import{C as r,_ as i,a,b as o,c as s,d as c,i as l,l as ee,n as u,p as te,r as ne,t as d,u as re,w as f,x as ie}from"./schemas-BhkprYU1.mjs";import{a as p,g as ae,l as m,p as oe,s as h,t as g}from"./kind-registration-CyMf-vey.mjs";import{t as se}from"./zod-json-schema-DGWHUOK0.mjs";import{t as ce}from"./ajv-Dz-0DD7m.mjs";import{t as le}from"./2020-DvDj4r_K.mjs";import{t as ue}from"./dist-DMIaE8sg.mjs";import{z as _}from"zod";import{createBusNamespace as de}from"@makaio/framework/core";const fe=_.strictObject({evidence:r}),v=_.strictObject({kind:_.literal(`text`),text:_.string()}),[pe,me,he]=r.options,ge=_.union([pe.pick({source:!0,location:!0}).extend({content:v}),me.pick({source:!0,location:!0}).extend({content:v}),he.pick({source:!0,location:!0}).extend({content:v})]);function y(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function b(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function _e(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=y(r);if(!e||!Object.hasOwn(e,t))return;r=e[t]}}let i=typeof r==`boolean`?r:y(r);return i===void 0?void 0:{node:i,pointer:n}}function x(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)]:y(n)?.[t],typeof y(n)?.$id==`string`)return!0}return!1}function ve(e,t,n){if(e[`x-makaio-value-type`]!==`evidence/v1`)return;let i=r.safeParse(t);if(!i.success)throw Error(`Invalid schema-declared evidence at ${n}`);return{evidence:i.data,dataPath:n}}function ye(e,t,n,r){if(typeof t.$ref!=`string`)return!1;if(r)return!0;let i=_e(e,t.$ref);return i===void 0?!0:typeof i.node!=`boolean`&&S(e,i.node,n,x(e,i.pointer))}function S(e,t,n=new WeakSet,r=!1){let i=y(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`||ye(e,i,n,a)||[`additionalItems`,`additionalProperties`,`contains`,`else`,`if`,`items`,`then`,`unevaluatedItems`,`unevaluatedProperties`].some(t=>S(e,i[t],n,a))||[`allOf`,`anyOf`,`oneOf`,`prefixItems`].some(t=>Array.isArray(i[t])&&i[t].some(t=>S(e,t,n,a)))||Array.isArray(i.items)&&i.items.some(t=>S(e,t,n,a)))return!0;for(let t of[`dependentSchemas`,`dependencies`,`patternProperties`,`properties`]){let r=y(i[t]);if(r&&Object.values(r).some(t=>S(e,t,n,a)))return!0}return!1}var be=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(x(this.dataSchema,r))throw Error(`Evidence discovery does not support local $ref inside nested $id resource at ${n}`);let i=_e(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=ve(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=y(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:y(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=y(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=y(e[i]);if(a)for(let[e,o]of Object.entries(a)){let a=y(o);Object.hasOwn(t,e)&&a&&this.visit(a,t,n,`${r}/${i}/${b(e)}`)}}}assertSupportedApplicators(e,t,n){for(let r of[`unevaluatedProperties`,`unevaluatedItems`])if(S(this.dataSchema,e[r],void 0,x(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=y(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)?y(e.additionalItems):y(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=y(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=y(e.properties),a=y(e.patternProperties);for(let[o,s]of Object.entries(t)){let t=b(o),c=i!==void 0&&Object.hasOwn(i,o),l=y(i?.[o]);l&&this.visit(l,s,`${n}/${t}`,`${r}/properties/${t}`);let ee=this.visitPatterns(a,o,s,`${n}/${t}`,r),u=y(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=y(s);e&&this.visit(e,n,r,`${i}/patternProperties/${b(o)}`)}return a}};function xe(e,t,n){return new be(e,n.matchesSchema).extract(t)}function Se(e){let{dataSchema:t,hooks:n,...r}=e,i={$schema:`https://json-schema.org/draft/2020-12/schema`,...se(t)};oe(i);let a=p.parse({...r,dataSchema:i});if(a.kind!==e.kind)throw Error(`Artifact kind identifiers must not contain surrounding whitespace`);let o=_.fromJSONSchema(a.dataSchema),s=_.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{ae(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 Ce=e(ce(),1),we=e(le(),1),Te=e(ue(),1);function Ee(e){let t={allErrors:!0,strict:!1,strictSchema:!0},n=e.dataSchema.$schema===`https://json-schema.org/draft/2020-12/schema`?new we.default(t):new Ce.default(t);return(0,Te.default)(n),n.addKeyword({keyword:ie,schemaType:`string`,valid:!0}),n.compile(e.dataSchema)}function De(e){return e.replace(/~1/gu,`/`).replace(/~0/gu,`~`)}function Oe(e){let t=e.instancePath.split(`/`).slice(1).map(De),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 ke(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 Ae=t.array();function je(e){if(e.keyword!==`enum`)return;let t=Ae.safeParse(e.params.allowedValues);return t.success?t.data:void 0}function Me(e){return(e??[]).map(e=>{let t=ke(e),n=je(e);return{path:Oe(e),reason:e.message??`violates ${e.keyword}`,...t===void 0?{}:{expectedType:t},...n===void 0?{}:{allowedValues:n}}})}function Ne(e){return Ee(e)}function Pe(e){let t=Ee(e);return e=>t(e)?{valid:!0}:{valid:!1,issues:Me(t.errors)}}function Fe(e){return{hooks:[...e.hooks]}}const Ie=[`inline`,`summary`,`link`,`omit`],C=_.string().min(1),w=_.object({kinds:_.array(_.string().min(1)).optional(),hint:C.optional(),depth:_.number().int().min(1).max(20).optional(),nested:_.lazy(()=>T).optional()}),T=_.record(_.string().min(1),w);function E(e){return JSON.stringify([e.kind,e.id,e.revision])}const D=_.enum([`not-selected`,`not-found`,`depth-exceeded`,`unsupported-ref-class`,`cycle-detected`]),O=_.object({target:ee,sourceRef:f,relationType:_.string().min(1),hint:C,status:_.enum([`resolved`,`unresolved`]),reason:D.optional()}).superRefine((e,t)=>{e.status===`unresolved`&&e.reason===void 0&&t.addIssue({code:_.ZodIssueCode.custom,path:[`reason`],message:`reason is required for unresolved artifact context refs`}),e.status===`resolved`&&e.reason!==void 0&&t.addIssue({code:_.ZodIssueCode.custom,path:[`reason`],message:`reason must be omitted for resolved artifact context refs`}),e.status===`resolved`&&e.target.refClass!==`artifact`&&t.addIssue({code:_.ZodIssueCode.custom,path:[`target`],message:`resolved artifact context refs must target an artifact revision`})}),k=_.object({rootRef:f,refs:_.array(O),resolved:_.array(c)}).superRefine((e,t)=>{let n=new Set(e.resolved.map(E));n.has(E(e.rootRef))||t.addIssue({code:_.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:_.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:_.ZodIssueCode.custom,path:[`refs`,r,`target`],message:`resolved artifact context refs must have a matching revision in resolved`}))})});function Le(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=Re(t.rootRef,i,`inline`,r,n);return{root:a,flatten(){let e=[];return Ve(a,e),e}}}function Re(e,t,n,r,i){return{status:`resolved`,ref:e,artifact:t,hint:n,children:Be(e,r,i,new Set([A(e)]))}}function ze(e,t,n,r,i,a,o){let s=A(e),c=new Set(o);return c.add(s),{status:`resolved`,ref:e,artifact:t,relation:n,hint:r,children:Be(e,i,a,c)}}function Be(e,t,n,r){return(t.get(A(e))??[]).map(e=>{if(e.status===`unresolved`)return{status:`unresolved`,target:e.target,relation:e.relationType,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,hint:e.hint,reason:`cycle-detected`}:ze(e.target,a,e.relationType,e.hint,t,n,r)})}function Ve(e,t){if(e.status!==`unresolved`){t.push(e.artifact);for(let n of e.children)Ve(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_$-]*`,He=`(?:0|[1-9][0-9]*)`,Ue=`(?:${`\\$\\[${M}\\]`}|${He}|${N})`,We=RegExp(`^${N}(?:\\.${Ue})*$`),Ge=RegExp(`^${M}(?:\\.${N})*$`),Ke=RegExp(`^${He}$`),qe=RegExp(`^\\$\\[(${M})\\]$`),P=_.string().regex(We,`Expected a data-relative path of object properties, array positions, or $[filter] placeholders`);function Je(e){let t=qe.exec(e);return t?.[1]===void 0?Ke.test(e)?{kind:`index`,index:Number(e)}:{kind:`property`,name:e}:{kind:`filter`,placeholder:t[1]}}function Ye(e){return e.split(`.`).map(Je)}function Xe(e){return Ye(e).flatMap(e=>e.kind===`filter`?[e.placeholder]:[])}const Ze=n(_.record(_.string().regex(Ge,`Expected a filter key of the form name or name.field.path`),t),{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 Qe(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 n(_.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 $e=_.literal(!0),et=_.strictObject({$set:F(`$set`,t).optional(),$unset:F(`$unset`,$e).optional(),$push:F(`$push`,t).optional(),$pull:F(`$pull`,t).optional(),arrayFilters:_.array(Ze).optional()});function I(e){return j.flatMap(t=>Object.entries(e[t]??{}).map(([e,n])=>({operator:t,path:e,value:n})))}function tt(e,t){let n=I(e),r=new Map;(e.arrayFilters??[]).forEach((e,n)=>{let i=Qe(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 Xe(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 nt=et.superRefine(tt).superRefine((e,t)=>{I(e).length===0&&t.addIssue({code:`custom`,message:`Declare at least one of ${j.join(`, `)}`})}),rt=et.superRefine(tt),it=_.strictObject({kind:f.shape.kind,id:f.shape.id}),at=_.strictObject({ref:it,baseRevision:f.shape.revision,patch:rt,dryRun:_.boolean().optional(),schemaVersion:m.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:te.optional(),representations:re.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`})}),ot=[`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`,`NO_CHANGE`,`STORE_REJECTED`,`HOST_FAILED`],st=_.strictObject({path:_.string(),reason:_.string().min(1),expectedType:_.string().min(1).optional(),allowedValues:_.array(t).optional()}),ct=_.strictObject({code:_.enum(ot),message:_.string().min(1),operator:_.enum(j).optional(),path:P.optional(),currentRevision:f.shape.revision.optional(),issues:_.array(st).optional(),repair:_.string().min(1)}).superRefine((e,t)=>{e.code===`BASE_REVISION_CONFLICT`&&e.currentRevision===void 0&&t.addIssue({code:_.ZodIssueCode.custom,message:`A BASE_REVISION_CONFLICT must name the revision the artifact carries.`,path:[`currentRevision`]})}),lt=_.strictObject({operator:_.enum(j),path:P,matched:_.number().int().positive()}),ut=_.strictObject({from:m,to:m}).refine(e=>e.to>e.from,{path:[`to`],message:`A migration moves the artifact forward to a newer schema version`}),dt=_.strictObject({ok:_.literal(!0),base:f,operations:_.array(lt),migration:ut.optional()});function ft(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 pt=dt.extend({dryRun:_.literal(!0)}).superRefine(ft),mt=dt.extend({dryRun:_.literal(!1),artifact:f}).superRefine(ft),ht=_.discriminatedUnion(`dryRun`,[pt,mt]),gt=_.strictObject({ok:_.literal(!1),error:ct}),_t=_.union([ht,gt]),L=f.pick({kind:!0,id:!0}),R=_.number().int().positive(),z=R,B={knowledge:`valid`,commitment:`proposed`,interaction:`open`},V=_.discriminatedUnion(`category`,[_.strictObject({category:_.literal(`knowledge`),state:_.enum(g.knowledge),version:z}),_.strictObject({category:_.literal(`commitment`),state:_.enum(g.commitment),version:z}),_.strictObject({category:_.literal(`interaction`),state:_.enum(g.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=_.union([V,_.strictObject({category:_.literal(`record`)})]),U=_.string().trim().min(1),vt=_.strictObject({kind:U,ref:U}),W=_.discriminatedUnion(`kind`,[_.strictObject({kind:_.literal(`revision-assessment`),assessedRevision:f.shape.revision,source:vt.optional()}),_.strictObject({kind:_.literal(`handover`),source:vt})]),yt={artifact:L,expectedVersion:z,state:h,situation:W,reason:U.optional()},G=_.strictObject(yt),bt=_.strictObject({...yt,actor:d}),xt={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 xt[e].includes(t)}const St={artifact:L,lifecycle:V,actor:d,timestamp:_.number().int().nonnegative(),observedRevision:f.shape.revision},Ct=_.strictObject({...St,operation:_.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 wt(e,t){return t===`retired`||e===`retired`&&t===`valid`}const Tt=`Retiring or reinstating knowledge requires a reason`,q=_.strictObject({...St,operation:_.literal(`transitioned`),previousState:h,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`}),wt(e.previousState,e.lifecycle.state)&&!e.reason&&t.addIssue({code:`custom`,path:[`reason`],message:Tt}),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`})}),Et=_.discriminatedUnion(`operation`,[Ct,q]),J=_.discriminatedUnion(`reason`,[_.strictObject({reason:_.literal(`lifecycle-version-conflict`),expectedVersion:z,current:V,requestedState:h}),_.strictObject({reason:_.literal(`content-basis-conflict`),assessedRevision:f.shape.revision,currentRevision:f.shape.revision}),_.strictObject({reason:_.literal(`invalid-transition`),current:H,requestedState:h}),_.strictObject({reason:_.literal(`precondition-failed`),current:V,requestedState:h})]),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 Dt(e){return e===`record`?{category:`record`}:V.parse({category:e,state:B[e],version:1})}function Ot(e){let t=H.parse(e.current),n=f.shape.revision.parse(e.currentRevision),r=bt.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(wt(t.state,r.state)&&!r.reason)throw new X(Tt,{reason:`precondition-failed`,current:t,requestedState:r.state});return V.parse({...t,state:r.state,version:t.version+1})}const kt=_.strictObject({artifact:L}),At=_.strictObject({lifecycle:H}),jt=_.strictObject({artifact:L,afterVersion:R.optional(),limit:_.number().int().min(1).max(100).default(50)}),Mt=_.strictObject({entries:_.array(Et).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`})}),Z=_.strictObject({entry:q}),Nt=Z,Pt=_.strictObject({code:_.literal(Y),message:_.string().min(1),data:J});function Ft(e){return{code:e.code,message:e.message,data:e.data}}function It(e,t){switch(t.reason){case`content-basis-conflict`:return zt(e,t);case`lifecycle-version-conflict`:return[...Lt(e,t),...Rt(e,t)];case`invalid-transition`:case`precondition-failed`:return[...Lt(e,t),...Bt(e,t)]}}function Lt(e,t){return t.requestedState===e.state?[]:[{path:[`requestedState`],message:`Rejection requestedState must match the rejected transition`}]}function Rt(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 zt(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 Bt(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 Vt=_.strictObject({transition:G,error:Pt}).superRefine(({transition:e,error:t},n)=>{for(let r of It(e,t.data))n.addIssue({code:`custom`,path:[`error`,`data`,...r.path],message:r.message})}),Q={"lifecycle.get":{request:kt,response:At},"lifecycle.history":{request:jt,response:Mt},"lifecycle.transition":{request:G,response:Z},"lifecycle.committed":Nt,"lifecycle.rejected":Vt},Ht={...Q,"kind.register":{request:p,response:_.object({registered:_.boolean()})},"kind.list":{request:_.object({kind:_.string().min(1).optional()}),response:_.object({kinds:_.array(p)})},"relation-type.register":{request:o,response:_.object({registered:_.boolean()})},"relation-type.list":{request:_.object({type:_.string().min(1).optional()}),response:_.object({relationTypes:_.array(o)})},create:{request:c.omit({id:!0,revision:!0,timestamp:!0}).extend({id:f.shape.id.optional()}),response:_.object({artifact:c})},revise:{request:_.object({previous:f,statusPath:te.optional(),revision:c.omit({id:!0,revision:!0,timestamp:!0})}),response:_.object({artifact:c})},patch:{request:at,response:_t},resolve:{request:_.object({ref:f}),response:_.object({artifact:c.nullable()})},query:{request:a,response:_.object({artifacts:_.array(c)})},compare:{request:u,response:ne},"evidence.resolve":{request:fe,response:ge},resolveContext:{request:_.object({ref:f,selectors:T.optional(),maxDepth:_.number().int().min(1).max(20).default(5)}),response:_.object({context:k})},created:_.object({artifact:c}),revised:_.object({previous:f,artifact:c}),"relation.added":_.object({artifact:f,relation:s}),"observation.added":_.object({artifact:f,observation:l}),"status.changed":_.object({artifact:f,path:_.string().min(1),previous:_.unknown().optional(),current:_.unknown().optional()}),"kind.changed":_.object({kind:_.string().min(1),schemaVersion:m})},Ut=de(`artifact`,Ht),Wt=Ut.subjects,Gt=_.discriminatedUnion(`refClass`,[f.omit({revision:!0}),i]);function Kt(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 qt(e){return e.refClass===`artifact`?`artifact:${e.kind}/${e.id}`:`entity:${e.entityType}/${e.id}`}const Jt=[`relation-target`];function Yt(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())(!Jt.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 Xt(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),o=new Set,s,c;for(let e of a){let t=Kt(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 Zt(e,t){let n=[],r=[];for(let[i,a]of e.entries()){let e=a.by.map((e,n)=>Xt(e,t,i,n)),o=e.find(e=>`reason`in e);if(o!==void 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 Qt(e){return e.parts.map(e=>`${e.type} → ${qt(e.target)}`).join(`; `)}export{Qe as $,bt as A,nt as B,X as C,J as D,Ct as E,Dt as F,ut as G,ct as H,K as I,mt as J,lt as K,ot as L,q as M,R as N,W as O,Ot as P,it as Q,j as R,H as S,L as T,gt as U,pt as V,st as W,_t as X,at as Y,ht as Z,Vt as _,fe as _t,Kt as a,O as at,Ft as b,Ut as c,Ie as ct,Nt as d,T as dt,I as et,Pt as f,Fe as ft,Mt as g,xe as gt,jt as h,Se as ht,Gt as i,Le as it,G as j,V as k,Ht as l,w as lt,At as m,Ne as mt,Zt as n,Je as nt,qt as o,D as ot,kt as p,Pe as pt,P as q,Qt as r,Ye as rt,$ as s,k as st,Yt as t,Xe as tt,Wt as u,C as ut,Q as v,ge as vt,Et as w,Y as x,Z as y,Ze as z};
@@ -2927,6 +2927,46 @@ declare function getSubjectFromBusMessage(message: BusMessage): string | null;
2927
2927
  * @returns An Error with `code` and data properties attached
2928
2928
  */
2929
2929
  declare function deserializeTransportError(transportError: BusTransportError): Error;
2930
+ /**
2931
+ * Read the structured members of an error regardless of which serializer authored
2932
+ * the wire payload.
2933
+ *
2934
+ * Three producible shapes exist depending on which serializer ran:
2935
+ *
2936
+ * - **`serializeError`** copies every own enumerable prop of the structured
2937
+ * source into `result.data`, including an authored `data` bag (which lands at
2938
+ * `result.data.data`). After {@link deserializeTransportError} the rebuilt
2939
+ * error has `.data` (the nested bag) as an own prop alongside any flat
2940
+ * siblings (e.g. `.retryable`).
2941
+ * - **`serializeTransportError`** uses `error.data` as the wire bag directly, so
2942
+ * after deserialization the members are promoted flat onto the Error with no
2943
+ * `data` key present.
2944
+ * - A **raw `BusTransportError` object** (not yet deserialized) carries the bag
2945
+ * under its own `data` property.
2946
+ *
2947
+ * Merge rule: own enumerable props are collected (skipping codec fields), then,
2948
+ * if the object has an own `data` that is a plain JSON object, the `data` key is
2949
+ * removed from the flat set and the bag members are spread in — bag members win
2950
+ * on collision. A non-plain-object `data` (array, primitive) is kept as a
2951
+ * verbatim member of the flat set.
2952
+ *
2953
+ * Standard Error fields and top-level codec fields (`message`, `name`, `stack`,
2954
+ * `cause`, `subject`, `code`) are never part of the result. Returns `undefined`
2955
+ * when the value is not an object or has no qualifying members.
2956
+ * @param error - Any error value (class instance, deserialized transport error,
2957
+ * or raw `BusTransportError` object)
2958
+ * @returns Shallow record of structured members, or undefined when none are present
2959
+ * @see serializeError
2960
+ */
2961
+ declare function transportErrorData(error: unknown): Record<string, unknown> | undefined;
2962
+ /**
2963
+ * Walk an error and its `cause` chain (cycle-safe) and return the first non-undefined
2964
+ * result of `predicate`, which receives each link as a plain record view.
2965
+ * @param error - Starting error value
2966
+ * @param predicate - Function called with each chain link as a record; return non-undefined to halt
2967
+ * @returns First non-undefined predicate result, or undefined when the chain is exhausted
2968
+ */
2969
+ declare function findInErrorChain<T>(error: unknown, predicate: (record: Record<string, unknown>) => T | undefined): T | undefined;
2930
2970
  //#endregion
2931
2971
  //#region core/bus-core/src/utils/payload-filter.d.ts
2932
2972
  /**
@@ -4175,4 +4215,4 @@ interface ProjectedTelemetryTransportOptions {
4175
4215
  */
4176
4216
  declare function createProjectedTelemetryTransport(options: ProjectedTelemetryTransportOptions): BusTransport;
4177
4217
  //#endregion
4178
- export { type BroadcastContext, type BroadcastResult, BusAbortError, type BusBroadcastMessage, type BusBroadcastResponseMessage, BusError, type BusEventMessage, type BusHeartbeatMessage, BusLifecycle, type BusMessage, type BusMessageObserver, type BusNamespace, type BusReceiveHandler, type BusRequestMessage, type BusResponseMessage, type BusSubscribeMessage, type BusSubscribeSyncCompleteMessage, type BusSubscriptionAckMessage, type BusTransport, type BusTransportError, type BusTransportKeys, type BusTransportRegistry, type BusUnsubscribeMessage, type BusUrlConfig, type BusValidationMode, CONNECTION_LOST_ERROR_CODE, ChannelAuthError, ChannelClosedError, type ChannelEndpoint, type ChannelEndpointOptions, ChannelOnlyError, type ConnectOptions, type ConnectedPayload, ConnectionLostError, CorrelationTracker, DEFAULT_REQUEST_TIMEOUT_MS, type DefinedSubjectExtension, type DisconnectedPayload, type EmitOptions, type EventSubjectExtension, type ExtendedSubjectDefinition, type ExtensionNamespace, type ExtensionNamespaceConfig, type ExtensionNamespaceExtensions, type ExtensionNamespaceFromConfig, type IDirectChannel, type IFilteredBus, type IMakaioBus, type InterceptorContext, LOCAL_ORIGIN, LocalSubjectError, MakaioBus, type MakaioBusContext, NO_HANDLER_ERROR_CODE, type NamespaceRegistrationOptions, NoHandlerError, type ObservedBusMessage, type OnOptions, OnceAbortError, type OptionalResult, type ProjectableBusMessage, type ProjectedTelemetryTransportOptions, REMOTE_ORIGIN, RequestError, type RequestOptions, type RequestSubjectExtension, type SchemaViolationCallback, type SchemaViolationReport, type ScopedBus, type ScopedBusFor, type SubjectExtension, type SubjectTelemetryAttributes, type SubjectTelemetryProjectionInput, type SubjectTelemetryProjector, type SubjectTelemetryProjectorInput, type SubjectTelemetryProjectorRegistry, type SubscriptionDeliveryClass, type SubscriptionEntry, SystemChannelSchemas, TimeoutError, type TransportRegistration, ValidationError, __resetWarnedSubjects, buildSubscribeMessage, buildUnsubscribeMessage, channelSubject, collectorOnlySubject, createBusContext, createBusInstance, createChannelEndpoint, createExtensionNamespace, createFilteredBus, createProjectedTelemetryTransport, createSubjectTelemetryProjectorRegistry, defaultTransports, defineSubjectExtension, deserializeTransportError, extendSubjectImpl as extendSubject, getFullSubjectForSubjectDefinition, getPath, getSubjectFromBusMessage, handleCorrelationResponse, hostLocalRequest, isNoHandlerErrorForSubject, isRequestCancellation, isRequestSchema, localSubject, matchesAnySubscription, matchesFilter, matchesSubscription, mergeFilters, openChannel, parseBusUrl, projectSubjectTelemetryFacts, serializeTransportError, shouldReceiveMessage, trackMessageCorrelation, waitForSubscriptionPropagation };
4218
+ export { type BroadcastContext, type BroadcastResult, BusAbortError, type BusBroadcastMessage, type BusBroadcastResponseMessage, BusError, type BusEventMessage, type BusHeartbeatMessage, BusLifecycle, type BusMessage, type BusMessageObserver, type BusNamespace, type BusReceiveHandler, type BusRequestMessage, type BusResponseMessage, type BusSubscribeMessage, type BusSubscribeSyncCompleteMessage, type BusSubscriptionAckMessage, type BusTransport, type BusTransportError, type BusTransportKeys, type BusTransportRegistry, type BusUnsubscribeMessage, type BusUrlConfig, type BusValidationMode, CONNECTION_LOST_ERROR_CODE, ChannelAuthError, ChannelClosedError, type ChannelEndpoint, type ChannelEndpointOptions, ChannelOnlyError, type ConnectOptions, type ConnectedPayload, ConnectionLostError, CorrelationTracker, DEFAULT_REQUEST_TIMEOUT_MS, type DefinedSubjectExtension, type DisconnectedPayload, type EmitOptions, type EventSubjectExtension, type ExtendedSubjectDefinition, type ExtensionNamespace, type ExtensionNamespaceConfig, type ExtensionNamespaceExtensions, type ExtensionNamespaceFromConfig, type IDirectChannel, type IFilteredBus, type IMakaioBus, type InterceptorContext, LOCAL_ORIGIN, LocalSubjectError, MakaioBus, type MakaioBusContext, NO_HANDLER_ERROR_CODE, type NamespaceRegistrationOptions, NoHandlerError, type ObservedBusMessage, type OnOptions, OnceAbortError, type OptionalResult, type ProjectableBusMessage, type ProjectedTelemetryTransportOptions, REMOTE_ORIGIN, RequestError, type RequestOptions, type RequestSubjectExtension, type SchemaViolationCallback, type SchemaViolationReport, type ScopedBus, type ScopedBusFor, type SubjectExtension, type SubjectTelemetryAttributes, type SubjectTelemetryProjectionInput, type SubjectTelemetryProjector, type SubjectTelemetryProjectorInput, type SubjectTelemetryProjectorRegistry, type SubscriptionDeliveryClass, type SubscriptionEntry, SystemChannelSchemas, TimeoutError, type TransportRegistration, ValidationError, __resetWarnedSubjects, buildSubscribeMessage, buildUnsubscribeMessage, channelSubject, collectorOnlySubject, createBusContext, createBusInstance, createChannelEndpoint, createExtensionNamespace, createFilteredBus, createProjectedTelemetryTransport, createSubjectTelemetryProjectorRegistry, defaultTransports, defineSubjectExtension, deserializeTransportError, extendSubjectImpl as extendSubject, findInErrorChain, getFullSubjectForSubjectDefinition, getPath, getSubjectFromBusMessage, handleCorrelationResponse, hostLocalRequest, isNoHandlerErrorForSubject, isRequestCancellation, isRequestSchema, localSubject, matchesAnySubscription, matchesFilter, matchesSubscription, mergeFilters, openChannel, parseBusUrl, projectSubjectTelemetryFacts, serializeTransportError, shouldReceiveMessage, trackMessageCorrelation, transportErrorData, waitForSubscriptionPropagation };