@makaio/framework 1.0.0-dev-1788909333961 → 1.0.0-dev-1788914730846

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 (130) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/artifact-DtmJR46g.mjs +1 -0
  3. package/dist/authority-state-bootstrap-DnwkMieA.mjs +1 -0
  4. package/dist/bus/index.d.mts +20 -20
  5. package/dist/bus/index.mjs +1 -1
  6. package/dist/code-execution-B9wr0b972.mjs +1 -0
  7. package/dist/contracts/adapter/index.d.mts +2 -2
  8. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  9. package/dist/contracts/artifact/index.d.mts +3 -3
  10. package/dist/contracts/artifact/index.mjs +1 -1
  11. package/dist/contracts/canonical-model/index.d.mts +1 -1
  12. package/dist/contracts/capabilities/index.d.mts +1 -1
  13. package/dist/contracts/client/index.d.mts +1 -1
  14. package/dist/contracts/extension/index.d.mts +2 -2
  15. package/dist/contracts/extension/index.mjs +1 -1
  16. package/dist/contracts/index.d.mts +168 -168
  17. package/dist/contracts/index.mjs +1 -1
  18. package/dist/contracts/materialization/index.d.mts +2 -2
  19. package/dist/contracts/materialization/index.mjs +1 -1
  20. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  21. package/dist/contracts/session/index.d.mts +2 -2
  22. package/dist/contracts/worker/index.d.mts +1 -1
  23. package/dist/contracts/worker/index.mjs +1 -1
  24. package/dist/contracts/workflow/index.d.mts +2 -2
  25. package/dist/contracts/workflow/index.mjs +1 -1
  26. package/dist/{execution-attempt-repository-CF3cWsPo.d.mts → execution-attempt-repository-dE889kHj.d.mts} +60 -6
  27. package/dist/{extension-BgUSK5rv.mjs → extension-C1CwxkCN.mjs} +1 -1
  28. package/dist/framework-packages-B3SQPHD7.mjs +1 -0
  29. package/dist/{index-uv_WSQtw2.d.mts → index-Aomg_qFA2.d.mts} +159 -27
  30. package/dist/{index-CZuhTqsX2.d.mts → index-B_rFtKIO2.d.mts} +12 -12
  31. package/dist/{index-OP6Aw5jN.d.mts → index-BfXf_CcM.d.mts} +13 -15
  32. package/dist/{index-CpdRe5df.d.mts → index-C50sVXO7.d.mts} +767 -53
  33. package/dist/{index-DlKxbLC9.d.mts → index-CRQ2U0jE.d.mts} +7 -7
  34. package/dist/{index-B4Wg4W7d.d.mts → index-C_R6ifn9.d.mts} +100 -100
  35. package/dist/{index-B7VO0gQV.d.mts → index-CmAJx-cX.d.mts} +1 -1
  36. package/dist/{index-VAJBIJUb.d.mts → index-CtlurrJF.d.mts} +23 -23
  37. package/dist/{index-DFsJTTkS.d.mts → index-D3-21gUP.d.mts} +1 -1
  38. package/dist/{index-BO_ikAR-.d.mts → index-DRryNq7D.d.mts} +4 -4
  39. package/dist/{index-BeplDh91.d.mts → index-DfYMmJDZ.d.mts} +1974 -419
  40. package/dist/{index-VCtdvtEk.d.mts → index-DzeUtJtE.d.mts} +344 -344
  41. package/dist/{index-tDCBp28C.d.mts → index-KZ4YllPp.d.mts} +391 -391
  42. package/dist/{index-BALk4zcu.d.mts → index-ZEQDAT9K.d.mts} +1 -1
  43. package/dist/{index-U0Fe0baO.d.mts → index-jXU4dntl.d.mts} +6 -6
  44. package/dist/{index-b_LJnwCU2.d.mts → index-ksNVQHeY2.d.mts} +8 -8
  45. package/dist/{index-ByJ2NESC.d.mts → index-l9WK9El6.d.mts} +6 -6
  46. package/dist/kernel/extension/index.d.mts +1 -1
  47. package/dist/kernel/index.d.mts +2 -2
  48. package/dist/kernel/observability/index.d.mts +1 -1
  49. package/dist/{lib-Ql8RWYOd.mjs → lib-0MqNtDuH.mjs} +4 -4
  50. package/dist/{lib-B8hEa65D.mjs → lib-dlyJT26K.mjs} +1 -1
  51. package/dist/{materialization-CqOHTt92.mjs → materialization-CDemi12q.mjs} +1 -1
  52. package/dist/{namespace-DELzAyzb.d.mts → namespace-B_Gw6BMX.d.mts} +152 -152
  53. package/dist/{namespace-BlH5BeSq.d.mts → namespace-CePc0U4N.d.mts} +2 -2
  54. package/dist/{namespace-BocL2nn7.d.mts → namespace-CizM5GXh.d.mts} +6 -6
  55. package/dist/{namespace-DyeMWQKf.d.mts → namespace-D9ToNQPp.d.mts} +25 -25
  56. package/dist/{namespace-BVQ8Y2Yi.d.mts → namespace-DF9m7PLi.d.mts} +7 -7
  57. package/dist/{package-DnlJ4I1i.d.mts → package-BR0pO5BI.d.mts} +71 -9
  58. package/dist/package-DKfzsJVl.mjs +7 -0
  59. package/dist/package.json +1 -1
  60. package/dist/runtime-node/code-execution/index.d.mts +1 -1
  61. package/dist/runtime-node/code-execution/index.mjs +1 -1
  62. package/dist/runtime-node/index.d.mts +1 -1
  63. package/dist/runtime-node/index.mjs +1 -1
  64. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  65. package/dist/{schema-CJfSEZ8X.d.mts → schema-7GukLoee.d.mts} +1 -1
  66. package/dist/{schemas-B9yLU2jM.d.mts → schemas-6FlRULSc.d.mts} +212 -80
  67. package/dist/schemas-BahXrOYa.mjs +1 -0
  68. package/dist/{schemas-Djt6hIjz.d.mts → schemas-CKGHlsMd.d.mts} +1 -1
  69. package/dist/{schemas-mGJIRIZ5.d.mts → schemas-Cg2gAars.d.mts} +152 -152
  70. package/dist/{schemas-BfMFZ6J5.d.mts → schemas-CkOVC3ip.d.mts} +4 -4
  71. package/dist/{schemas-BBatvMde.d.mts → schemas-Df52igU4.d.mts} +4 -4
  72. package/dist/services/adapter-runtime/index.d.mts +3 -3
  73. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  74. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  75. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  76. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  77. package/dist/services/agent-runtime/index.d.mts +2 -2
  78. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  79. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  80. package/dist/services/context-rules/index.d.mts +3 -3
  81. package/dist/services/execution-target/index.d.mts +1 -1
  82. package/dist/services/filesystem/namespace.d.mts +6 -6
  83. package/dist/services/filesystem/schemas.d.mts +3 -3
  84. package/dist/services/git/namespace.d.mts +2 -2
  85. package/dist/services/git/schemas.d.mts +2 -2
  86. package/dist/services/index.d.mts +103 -103
  87. package/dist/services/index.mjs +1 -1
  88. package/dist/services/provider-context/index.d.mts +1 -1
  89. package/dist/services/session/index.d.mts +5 -5
  90. package/dist/services/session/messages/namespace.d.mts +1 -1
  91. package/dist/services/session/storage/namespace.d.mts +1 -1
  92. package/dist/services/session/storage/schema.d.mts +1 -1
  93. package/dist/services/settings/namespace.d.mts +4 -4
  94. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  95. package/dist/services/subagent-template/index.d.mts +1 -1
  96. package/dist/services/subagent-template/schemas.d.mts +1 -1
  97. package/dist/services/tools/index.mjs +1 -1
  98. package/dist/services/workflow-transitions/index.mjs +1 -1
  99. package/dist/{session-lineage-Bwb98OUz.d.mts → session-lineage-BtvnGkoC.d.mts} +1 -1
  100. package/dist/{tools-BkSFBqUz.mjs → tools-2INrWlnS.mjs} +1 -1
  101. package/dist/{transition-BbfxZ4U1.d.mts → transition-C1rMI1ue.d.mts} +1 -1
  102. package/dist/{types-CXwFtEIF.d.mts → types-DIHb_m2K.d.mts} +350 -350
  103. package/dist/{view-builder-CJtK5hgs.d.mts → view-builder-Dt9UEsPc.d.mts} +1 -1
  104. package/dist/{worker-VBlgozIo.mjs → worker-Bn0x5MSH.mjs} +1 -1
  105. package/dist/workflow-B6C3Pf66.mjs +1 -0
  106. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  107. package/dist/workflow-engine/index.d.mts +29 -27
  108. package/dist/workflow-engine/index.mjs +1 -1
  109. package/dist/workflow-engine/package.d.mts +1 -1
  110. package/dist/workflow-engine/package.mjs +1 -1
  111. package/dist/workflow-engine/provider-operation.d.mts +2 -2
  112. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  113. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  114. package/dist/workflow-engine/testing/index.d.mts +3 -1
  115. package/dist/workflow-engine/testing/index.mjs +1 -1
  116. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  117. package/dist/workflow-engine/testing/sqlite.mjs +13 -3
  118. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  119. package/dist/{workflow-transitions-Cuo6s9uv.mjs → workflow-transitions-BbhM_zPm.mjs} +1 -1
  120. package/dist/{workflow-worker-7AA-u1uC.mjs → workflow-worker-BSJ6F4P0.mjs} +1 -1
  121. package/package.json +1 -1
  122. package/dist/artifact-BjqkK0KX.mjs +0 -1
  123. package/dist/authority-state-bootstrap-8VGt4vD2.mjs +0 -1
  124. package/dist/code-execution-BsiB7ZeZ2.mjs +0 -1
  125. package/dist/framework-packages-CxWecyPW.mjs +0 -1
  126. package/dist/package-BwIbyojG.mjs +0 -7
  127. package/dist/schemas-0eCrrru1.mjs +0 -1
  128. package/dist/workflow-svpU9Cig.mjs +0 -1
  129. package/dist/{index-DrwT45ci2.d.mts → index-B04VAxlm2.d.mts} +6 -6
  130. /package/dist/{kind-registration-T--B1wiI.mjs → kind-registration-DggkrLkv.mjs} +0 -0
@@ -1 +1 @@
1
- import{c as e}from"./kind-registration-T--B1wiI.mjs";import{n as t}from"./definition-YGj42UeO.mjs";import{n,t as r}from"./version-3xWJDCeF.mjs";import{z as i}from"zod";const a=i.object({entrypoint:i.string().startsWith(`/`,{message:`Entrypoint must be a URL path starting with "/"`})}),o=i.object({endpoint:i.string().url().optional()}),s=i.union([t,i.object({anthropic:o.optional(),openai:o.optional()}).refine(e=>Object.keys(e).length>0,{message:`ProtocolRef config object must specify at least one protocol`})]),c=i.object({id:i.string().min(1),version:n,binaryVersion:n.optional()}),l=i.object({name:i.string().min(1),displayName:i.string().min(1).optional(),description:i.string().optional(),clients:i.array(c).readonly().optional(),protocols:i.array(s).readonly(),defaultProvider:i.string().min(1).optional()}),u=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional(),binary:i.object({name:i.string().min(1),managed:i.boolean().optional(),version:r.optional()}).strict().refine(e=>e.managed!==!0||e.version!==void 0,{message:`binary.version is required when binary.managed is true`,path:[`version`]}).refine(e=>e.version===void 0||e.managed===!0,{message:`binary.managed must be true when binary.version is provided`,path:[`managed`]}).optional()}).strict(),d=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional()}),f=i.object({prefix:i.string().min(1),description:i.string().optional(),stage:i.enum([`gather`,`transform`,`action`]).optional()}),p=i.object({adapterName:i.string().min(1),displayName:i.string().min(1),logFilePattern:i.string().min(1).optional()}),m=i.object({id:i.string().min(1),label:i.string().min(1),description:i.string().optional(),icon:i.string().min(1).optional(),selectionMode:i.enum([`single`,`multi`]),messageRoles:i.array(i.enum([`user`,`assistant`])).readonly().optional()}),h=i.enum([`beforeCreate`,`beforeRevise`,`afterCreate`,`afterRevise`,`afterStatusChanged`,`afterObservationAdded`]),g=i.object({id:i.string().min(1),event:h,kind:i.string().min(1).optional(),schemaVersion:e.optional()}),_=i.object({tiles:i.boolean().optional(),widgets:i.boolean().optional(),pages:i.boolean().optional(),routes:i.boolean().optional()}),v={adapters:`adapter`,clients:`client`,providers:`provider`,hashTriggers:`hash trigger`,logImporters:`log importer`,sessionEventActions:`session event action`,artifactLifecycleHooks:`artifact lifecycle hook`};function y(e,t,n){e.addIssue({code:i.ZodIssueCode.custom,path:[t],message:`Duplicate ${v[t]} contribution identifier "${n}"`})}function b(e,t){let n=new Set,r=new Set,i=[];for(let a of e??[]){let e=t(a);if(n.has(e)){r.has(e)||(r.add(e),i.push(e));continue}n.add(e)}return i}const x=i.object({adapters:i.array(l).readonly().optional(),clients:i.array(u).readonly().optional(),providers:i.array(d).readonly().optional(),hashTriggers:i.array(f).readonly().optional(),logImporters:i.array(p).readonly().optional(),sessionEventActions:i.array(m).readonly().optional(),artifactLifecycleHooks:i.array(g).readonly().optional(),create:i.boolean().optional(),tools:i.boolean().optional(),bootstrap:i.boolean().optional(),namespace:i.boolean().optional(),configSchema:i.boolean().optional(),uiConfig:i.boolean().optional(),ui:_.optional()}).strict().superRefine((e,t)=>{for(let n of b(e.adapters,e=>e.name))y(t,`adapters`,n);for(let n of b(e.clients,e=>e.id))y(t,`clients`,n);for(let n of b(e.providers,e=>e.id))y(t,`providers`,n);for(let n of b(e.hashTriggers,e=>e.prefix))y(t,`hashTriggers`,n);for(let n of b(e.logImporters,e=>e.adapterName))y(t,`logImporters`,n);for(let n of b(e.sessionEventActions,e=>e.id))y(t,`sessionEventActions`,n);for(let n of b(e.artifactLifecycleHooks,e=>e.id))y(t,`artifactLifecycleHooks`,n)}),S=i.string().trim().min(1).transform(e=>e),C=i.object({name:i.string().min(1),required:i.boolean().optional()}),w=i.object({id:i.string(),style:i.enum([`tray-popover`,`utility`,`panel`]),width:i.number().optional(),height:i.number().optional(),singleton:i.boolean().optional(),params:i.array(C).readonly().optional()}).superRefine((e,t)=>{let n=new Set;for(let[r,a]of e.params?.entries()??[]){if(!n.has(a.name)){n.add(a.name);continue}t.addIssue({code:i.ZodIssueCode.custom,message:`Duplicate window param "${a.name}"`,path:[`params`,r,`name`]})}}),T=i.object({label:i.string(),section:i.enum([`utilities`,`tools`,`views`]).optional(),opensWindow:i.string().optional(),action:i.string().optional()}),E=i.object({name:i.string().min(1),description:i.string(),required:i.boolean().optional(),positional:i.boolean().optional(),short:i.string().regex(/^-[A-Za-z0-9]$/,`Expected a short flag like -p`).optional(),type:i.enum([`string`,`boolean`,`number`]).optional()}),D=i.object({name:i.string().min(1),description:i.string(),args:i.array(E).readonly().optional()}),O=i.object({name:i.string().min(1),description:i.string(),subcommands:i.array(D).readonly().optional(),hasInteractive:i.boolean().optional(),canProvideBus:i.boolean().optional()}),k=[`sqlite`,`postgres`];function A(e){if(e!==void 0)return typeof e==`string`?e:e.sqlite??Object.values(e).find(e=>e!==void 0)}function j(e){if(e===void 0)return[];if(typeof e==`string`)return[e];let t=new Set;for(let n of Object.values(e))n!==void 0&&t.add(n);return[...t]}const M=i.string().min(1).refine(e=>!/^(?:[\\/]|[A-Za-z]:)/.test(e),`Expected a relative path`).refine(e=>!e.split(/[\\/]/).some(e=>e===``||e===`.`||e===`..`),`Path must not contain empty or dot segments`),N=i.object({migrations:i.union([M,i.object({sqlite:M.optional(),postgres:M.optional()}).strict().refine(e=>Object.values(e).some(e=>e!==void 0),`Per-dialect storage.migrations must declare at least one chain`)]).optional(),migrationSourceId:i.string().min(1).optional()}),P=i.object({type:i.literal(`extension`),name:i.string().min(1),version:n,optional:i.boolean().optional()});function F(e,t=`>=0.1.0`,n){return n===void 0?{type:`extension`,name:e,version:t}:{type:`extension`,name:e,version:t,optional:n}}const I=i.discriminatedUnion(`type`,[i.object({type:i.literal(`host`),id:i.string().min(1)}),i.object({type:i.literal(`capability`),id:i.string().min(1),version:n.optional()})]),L=i.object({name:i.string().min(1).regex(/^(@[^/\\]+\/)?[^/\\]+$/,`Extension name must be a plain identifier or an npm-scoped name (@scope/pkg)`).refine(e=>(e.startsWith(`@`)?e.split(`/`):[e]).every(e=>e!==`.`&&e!==`..`),`Extension name must not be a dot-segment`),displayName:i.string().min(1),version:r,surface:i.enum([`interactive`,`headless`,`any`]).optional(),dependencies:i.array(P).readonly().optional(),requires:i.array(I).readonly().optional(),provides:i.array(S).readonly().optional(),windows:i.array(w).readonly().optional(),tray:T.optional(),cli:O.optional(),storage:N.optional(),browser:a.optional(),contributions:x.optional()});function R(e){return Object.freeze({name:e})}const z=i.object({command:i.string().min(1),args:i.array(i.string()).optional(),env:i.record(i.string(),i.string()).optional(),healthTimeoutMs:i.number().int().positive().optional(),shutdownTimeoutMs:i.number().int().positive().optional()}),B=i.enum([`none`,`on-crash`,`always`]),V=z.extend({restartPolicy:B.optional()}),H=i.discriminatedUnion(`type`,[V.extend({type:i.literal(`bus-stdio`)}),V.extend({type:i.literal(`bus-websocket`)}),z.extend({type:i.literal(`mcp-stdio`)})]);function U(e){if(e.includes(`\\`)||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`))return!1;let t=e.split(`/`),n=t.at(-1);return!n||n.includes(`.`)?!1:t.every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`src`&&e!==`dist`)}const W=i.union([i.literal(!0),i.string().min(1).refine(U,{message:`entrypoint stem must use forward-slash path stems, must not contain empty, . or .. segments, must not include a dotted final segment, and must not contain src or dist segments`})]),G=i.object({server:W.optional(),browser:W.optional(),cli:W.optional()}).refine(e=>e.server!==void 0||e.browser!==void 0||e.cli!==void 0,{message:`at least one entrypoint must be declared`});function K(e){return e.execution===`detached`}const q=L.extend({version:r,makaio:i.object({framework:n}).strict().readonly(),entrypoints:G.optional(),execution:i.enum([`embedded`,`detached`]).optional(),transport:H.optional(),prebundleDependencies:i.array(i.string().regex(/\S/,`prebundleDependencies entries must not be blank`)).readonly().optional(),config:i.object({defaults:i.record(i.string(),i.unknown()).optional()}).optional()}).superRefine((e,t)=>{e.prebundleDependencies!==void 0&&e.entrypoints?.browser===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`prebundleDependencies requires a browser entrypoint`,path:[`prebundleDependencies`]}),e.execution===`detached`?(e.transport===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must declare a 'transport' config`,path:[`transport`]}),e.entrypoints!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must not declare entrypoints`,path:[`entrypoints`]})):(e.entrypoints===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must declare at least one entrypoint`,path:[`entrypoints`]}),e.transport!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must not declare a transport config`,path:[`transport`]}))});function J(e){return e}function Y(e){return J(q.parse(e))}function X(e){let t=q.safeParse(e);return t.success?{success:!0,data:J(t.data)}:t}const Z=i.discriminatedUnion(`kind`,[i.object({kind:i.literal(`configure-integration`),clientId:i.string().min(1),bundle:i.string().min(1)}),i.object({kind:i.literal(`install-extension`),extensionName:i.string().min(1)}),i.object({kind:i.literal(`open-url`),url:i.string().url()}),i.object({kind:i.literal(`run-command`),command:i.string().min(1)})]),Q=i.enum([`info`,`recommended`,`degraded`]),$=i.object({severity:Q,title:i.string().min(1),message:i.string().min(1),action:Z.optional()});function ee(e){switch(e.kind){case`configure-integration`:return`Configure`;case`install-extension`:return`Install`;case`open-url`:return`Open`;case`run-command`:return`Run`}}const te=i.object({extensionName:i.string().min(1),warnings:i.array($)});function ne(e,t){return e.parse(t??{})}function re(e){return JSON.stringify([e.extensionId,e.type,e.name,e.filename])}export{c as A,d as B,T as C,F as D,j as E,x as F,_ as H,f as I,p as L,h as M,g as N,A as O,u as P,o as R,N as S,C as T,a as U,m as V,D as _,$ as a,I as b,H as c,K as d,Y as f,O as g,E as h,te as i,l as j,S as k,q as l,R as m,ne as n,Q as o,X as p,Z as r,ee as s,re as t,G as u,P as v,w,k as x,L as y,s as z};
1
+ import{c as e}from"./kind-registration-DggkrLkv.mjs";import{n as t}from"./definition-YGj42UeO.mjs";import{n,t as r}from"./version-3xWJDCeF.mjs";import{z as i}from"zod";const a=i.object({entrypoint:i.string().startsWith(`/`,{message:`Entrypoint must be a URL path starting with "/"`})}),o=i.object({endpoint:i.string().url().optional()}),s=i.union([t,i.object({anthropic:o.optional(),openai:o.optional()}).refine(e=>Object.keys(e).length>0,{message:`ProtocolRef config object must specify at least one protocol`})]),c=i.object({id:i.string().min(1),version:n,binaryVersion:n.optional()}),l=i.object({name:i.string().min(1),displayName:i.string().min(1).optional(),description:i.string().optional(),clients:i.array(c).readonly().optional(),protocols:i.array(s).readonly(),defaultProvider:i.string().min(1).optional()}),u=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional(),binary:i.object({name:i.string().min(1),managed:i.boolean().optional(),version:r.optional()}).strict().refine(e=>e.managed!==!0||e.version!==void 0,{message:`binary.version is required when binary.managed is true`,path:[`version`]}).refine(e=>e.version===void 0||e.managed===!0,{message:`binary.managed must be true when binary.version is provided`,path:[`managed`]}).optional()}).strict(),d=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional()}),f=i.object({prefix:i.string().min(1),description:i.string().optional(),stage:i.enum([`gather`,`transform`,`action`]).optional()}),p=i.object({adapterName:i.string().min(1),displayName:i.string().min(1),logFilePattern:i.string().min(1).optional()}),m=i.object({id:i.string().min(1),label:i.string().min(1),description:i.string().optional(),icon:i.string().min(1).optional(),selectionMode:i.enum([`single`,`multi`]),messageRoles:i.array(i.enum([`user`,`assistant`])).readonly().optional()}),h=i.enum([`beforeCreate`,`beforeRevise`,`afterCreate`,`afterRevise`,`afterStatusChanged`,`afterObservationAdded`]),g=i.object({id:i.string().min(1),event:h,kind:i.string().min(1).optional(),schemaVersion:e.optional()}),_=i.object({tiles:i.boolean().optional(),widgets:i.boolean().optional(),pages:i.boolean().optional(),routes:i.boolean().optional()}),v={adapters:`adapter`,clients:`client`,providers:`provider`,hashTriggers:`hash trigger`,logImporters:`log importer`,sessionEventActions:`session event action`,artifactLifecycleHooks:`artifact lifecycle hook`};function y(e,t,n){e.addIssue({code:i.ZodIssueCode.custom,path:[t],message:`Duplicate ${v[t]} contribution identifier "${n}"`})}function b(e,t){let n=new Set,r=new Set,i=[];for(let a of e??[]){let e=t(a);if(n.has(e)){r.has(e)||(r.add(e),i.push(e));continue}n.add(e)}return i}const x=i.object({adapters:i.array(l).readonly().optional(),clients:i.array(u).readonly().optional(),providers:i.array(d).readonly().optional(),hashTriggers:i.array(f).readonly().optional(),logImporters:i.array(p).readonly().optional(),sessionEventActions:i.array(m).readonly().optional(),artifactLifecycleHooks:i.array(g).readonly().optional(),create:i.boolean().optional(),tools:i.boolean().optional(),bootstrap:i.boolean().optional(),namespace:i.boolean().optional(),configSchema:i.boolean().optional(),uiConfig:i.boolean().optional(),ui:_.optional()}).strict().superRefine((e,t)=>{for(let n of b(e.adapters,e=>e.name))y(t,`adapters`,n);for(let n of b(e.clients,e=>e.id))y(t,`clients`,n);for(let n of b(e.providers,e=>e.id))y(t,`providers`,n);for(let n of b(e.hashTriggers,e=>e.prefix))y(t,`hashTriggers`,n);for(let n of b(e.logImporters,e=>e.adapterName))y(t,`logImporters`,n);for(let n of b(e.sessionEventActions,e=>e.id))y(t,`sessionEventActions`,n);for(let n of b(e.artifactLifecycleHooks,e=>e.id))y(t,`artifactLifecycleHooks`,n)}),S=i.string().trim().min(1).transform(e=>e),C=i.object({name:i.string().min(1),required:i.boolean().optional()}),w=i.object({id:i.string(),style:i.enum([`tray-popover`,`utility`,`panel`]),width:i.number().optional(),height:i.number().optional(),singleton:i.boolean().optional(),params:i.array(C).readonly().optional()}).superRefine((e,t)=>{let n=new Set;for(let[r,a]of e.params?.entries()??[]){if(!n.has(a.name)){n.add(a.name);continue}t.addIssue({code:i.ZodIssueCode.custom,message:`Duplicate window param "${a.name}"`,path:[`params`,r,`name`]})}}),T=i.object({label:i.string(),section:i.enum([`utilities`,`tools`,`views`]).optional(),opensWindow:i.string().optional(),action:i.string().optional()}),E=i.object({name:i.string().min(1),description:i.string(),required:i.boolean().optional(),positional:i.boolean().optional(),short:i.string().regex(/^-[A-Za-z0-9]$/,`Expected a short flag like -p`).optional(),type:i.enum([`string`,`boolean`,`number`]).optional()}),D=i.object({name:i.string().min(1),description:i.string(),args:i.array(E).readonly().optional()}),O=i.object({name:i.string().min(1),description:i.string(),subcommands:i.array(D).readonly().optional(),hasInteractive:i.boolean().optional(),canProvideBus:i.boolean().optional()}),k=[`sqlite`,`postgres`];function A(e){if(e!==void 0)return typeof e==`string`?e:e.sqlite??Object.values(e).find(e=>e!==void 0)}function j(e){if(e===void 0)return[];if(typeof e==`string`)return[e];let t=new Set;for(let n of Object.values(e))n!==void 0&&t.add(n);return[...t]}const M=i.string().min(1).refine(e=>!/^(?:[\\/]|[A-Za-z]:)/.test(e),`Expected a relative path`).refine(e=>!e.split(/[\\/]/).some(e=>e===``||e===`.`||e===`..`),`Path must not contain empty or dot segments`),N=i.object({migrations:i.union([M,i.object({sqlite:M.optional(),postgres:M.optional()}).strict().refine(e=>Object.values(e).some(e=>e!==void 0),`Per-dialect storage.migrations must declare at least one chain`)]).optional(),migrationSourceId:i.string().min(1).optional()}),P=i.object({type:i.literal(`extension`),name:i.string().min(1),version:n,optional:i.boolean().optional()});function F(e,t=`>=0.1.0`,n){return n===void 0?{type:`extension`,name:e,version:t}:{type:`extension`,name:e,version:t,optional:n}}const I=i.discriminatedUnion(`type`,[i.object({type:i.literal(`host`),id:i.string().min(1)}),i.object({type:i.literal(`capability`),id:i.string().min(1),version:n.optional()})]),L=i.object({name:i.string().min(1).regex(/^(@[^/\\]+\/)?[^/\\]+$/,`Extension name must be a plain identifier or an npm-scoped name (@scope/pkg)`).refine(e=>(e.startsWith(`@`)?e.split(`/`):[e]).every(e=>e!==`.`&&e!==`..`),`Extension name must not be a dot-segment`),displayName:i.string().min(1),version:r,surface:i.enum([`interactive`,`headless`,`any`]).optional(),dependencies:i.array(P).readonly().optional(),requires:i.array(I).readonly().optional(),provides:i.array(S).readonly().optional(),windows:i.array(w).readonly().optional(),tray:T.optional(),cli:O.optional(),storage:N.optional(),browser:a.optional(),contributions:x.optional()});function R(e){return Object.freeze({name:e})}const z=i.object({command:i.string().min(1),args:i.array(i.string()).optional(),env:i.record(i.string(),i.string()).optional(),healthTimeoutMs:i.number().int().positive().optional(),shutdownTimeoutMs:i.number().int().positive().optional()}),B=i.enum([`none`,`on-crash`,`always`]),V=z.extend({restartPolicy:B.optional()}),H=i.discriminatedUnion(`type`,[V.extend({type:i.literal(`bus-stdio`)}),V.extend({type:i.literal(`bus-websocket`)}),z.extend({type:i.literal(`mcp-stdio`)})]);function U(e){if(e.includes(`\\`)||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`))return!1;let t=e.split(`/`),n=t.at(-1);return!n||n.includes(`.`)?!1:t.every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`src`&&e!==`dist`)}const W=i.union([i.literal(!0),i.string().min(1).refine(U,{message:`entrypoint stem must use forward-slash path stems, must not contain empty, . or .. segments, must not include a dotted final segment, and must not contain src or dist segments`})]),G=i.object({server:W.optional(),browser:W.optional(),cli:W.optional()}).refine(e=>e.server!==void 0||e.browser!==void 0||e.cli!==void 0,{message:`at least one entrypoint must be declared`});function K(e){return e.execution===`detached`}const q=L.extend({version:r,makaio:i.object({framework:n}).strict().readonly(),entrypoints:G.optional(),execution:i.enum([`embedded`,`detached`]).optional(),transport:H.optional(),prebundleDependencies:i.array(i.string().regex(/\S/,`prebundleDependencies entries must not be blank`)).readonly().optional(),config:i.object({defaults:i.record(i.string(),i.unknown()).optional()}).optional()}).superRefine((e,t)=>{e.prebundleDependencies!==void 0&&e.entrypoints?.browser===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`prebundleDependencies requires a browser entrypoint`,path:[`prebundleDependencies`]}),e.execution===`detached`?(e.transport===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must declare a 'transport' config`,path:[`transport`]}),e.entrypoints!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must not declare entrypoints`,path:[`entrypoints`]})):(e.entrypoints===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must declare at least one entrypoint`,path:[`entrypoints`]}),e.transport!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must not declare a transport config`,path:[`transport`]}))});function J(e){return e}function Y(e){return J(q.parse(e))}function X(e){let t=q.safeParse(e);return t.success?{success:!0,data:J(t.data)}:t}const Z=i.discriminatedUnion(`kind`,[i.object({kind:i.literal(`configure-integration`),clientId:i.string().min(1),bundle:i.string().min(1)}),i.object({kind:i.literal(`install-extension`),extensionName:i.string().min(1)}),i.object({kind:i.literal(`open-url`),url:i.string().url()}),i.object({kind:i.literal(`run-command`),command:i.string().min(1)})]),Q=i.enum([`info`,`recommended`,`degraded`]),$=i.object({severity:Q,title:i.string().min(1),message:i.string().min(1),action:Z.optional()});function ee(e){switch(e.kind){case`configure-integration`:return`Configure`;case`install-extension`:return`Install`;case`open-url`:return`Open`;case`run-command`:return`Run`}}const te=i.object({extensionName:i.string().min(1),warnings:i.array($)});function ne(e,t){return e.parse(t??{})}function re(e){return JSON.stringify([e.extensionId,e.type,e.name,e.filename])}export{c as A,d as B,T as C,F as D,j as E,x as F,_ as H,f as I,p as L,h as M,g as N,A as O,u as P,o as R,N as S,C as T,a as U,m as V,D as _,$ as a,I as b,H as c,K as d,Y as f,O as g,E as h,te as i,l as j,S as k,q as l,R as m,ne as n,Q as o,X as p,Z as r,ee as s,re as t,G as u,P as v,w,k as x,L as y,s as z};
@@ -0,0 +1 @@
1
+ import{wt as e,x as t}from"./handlers-CBbFzDHc.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{E as r,I as i,J as a,N as o,U as s,a as c,b as l,c as u,d,et as ee,i as te,k as ne,n as re,nt as ie,r as ae}from"./session-BDFNAcuY.mjs";import{r as f,t as oe}from"./namespace-BFlSY040.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-7CsXP86g.mjs";import{n as fe}from"./package-D4eLGGv4.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-DlUErRRt.mjs";import{d as he,f as ge,n as _e}from"./package-BUSXHPOT.mjs";import{t as ve}from"./tool-approval-service-rpV94znP.mjs";import{t as ye}from"./tray-menu-service-TWrmvXSo.mjs";import{r as p,t as be}from"./handler-BYQPNm8O.mjs";import{r as xe}from"./package-BiZ6ehWk.mjs";import{t as Se}from"./filesystem-service-yB8KhUGz.mjs";import{z as m}from"zod";import{createHash as Ce}from"node:crypto";import{getErrorString as h}from"@makaio/framework/utils";import{MakaioError as we,createMakaioContext as Te}from"@makaio/framework/core";import{MakaioBus as g}from"@makaio/framework/bus";import{AdapterSubjects as Ee,ArtifactSubjects as _,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as v,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as y,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as b,WorkflowSubjects as Ne,dep as x,extensionToken as S,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as C}from"@makaio/framework/contracts";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Fe,ClientSessionAccountObserveSchema as Ie,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Le,ToolErrorCodes as k,errorToToolResult as Re,toolError as A,toolSuccess as ze}from"@makaio/framework/tools";import{ConditionSchema as Be,evaluate as Ve}from"@makaio/framework/rules";import{evaluateSync as He}from"@makaio/framework/expression";import{GitService as Ue}from"@makaio/framework/git";var j=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function M(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function N(e){return e.priority??0}function We(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ge(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ke(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`evidence`in t?{evidence:t.evidence}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function qe(e,t){let{evidence:n,confidence:r,representations:i,...a}=e;return{...a,data:t.data,relations:[...t.relations],...t.evidence===void 0?{}:{evidence:t.evidence},...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var P=class extends w{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=We(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.evidence===void 0?{}:{evidence:n.evidence},...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Ke(s,e)}};if(await t.handler(a),n)throw new j(n.reason,t.id)}return{draft:qe(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,skipDefaultProjection:s,meta:c}=n,l=Ge(this.allHooks(),e,r),u=this.bus,d=!1;for(let n of l){if(s&&(n.priority??0)<0||d&&(n.priority??0)<0)continue;let l={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,bus:u,meta:c,preventDefault(){d=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await u.request(_.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(l)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function F(e){return structuredClone(e)}var I=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(F);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,F(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?F(t):void 0}onDestroy(){this.namespaces.clear()}},L=class extends we{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},R=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new L(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new L(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new L(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new L(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new L(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new L(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new L(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new L(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new L(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new L(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},z=class e extends w{constructor(e=g){super(e)}async onInit(){await this.bus.request(f.ensureReady,{});let e=new R(this.createDeps());this.registerHandler(De.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(f.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(f.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(f.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(f.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(f.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(f.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(f.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(f.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(me.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(f.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const B={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[x(oe)],critical:!1,create:e=>new z(e.bus)};var V=class extends w{definitionsByExtension=new Map;definitionsByKind=new Map;constructor(e){super(e)}onInit(){}onDestroy(){this.definitionsByExtension.clear(),this.definitionsByKind.clear()}register(e,t){let n=this.validateBatch(e,t),r=new Map(this.definitionsByExtension);n.length===0?r.delete(e):r.set(e,n);let i=new Map;for(let e of r.values())for(let t of e)i.set(t.descriptor.kind,t);this.definitionsByExtension=r,this.definitionsByKind=i}deregister(e){this.definitionsByExtension.has(e)&&this.register(e,[])}listDescriptors(){return Array.from(this.definitionsByKind.values(),({descriptor:e})=>structuredClone(e))}async invoke(e,t,n){let r=crypto.randomUUID(),i=this.definitionsByKind.get(e);if(!i)return this.failure(e,r,n.correlationId,`Reaction kind '${e}' is not registered`);if(n.hostSignal?.aborted)return this.failure(e,r,n.correlationId,`Reaction '${e}' host signal already aborted`);let a=Ye(n.deadlineEpochMs);if(a!==void 0&&a<=Date.now())return this.failure(e,r,n.correlationId,`Reaction '${e}' deadline already passed`);let o=Xe(n.hostSignal,a),s=Ze(r,o.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.failure(e,r,s.correlationId,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return n.success?(a!==void 0&&H(o.controller,a),o.controller.signal.aborted?this.failure(e,r,s.correlationId,`Reaction '${e}' cancelled before handler entry: ${h(o.controller.signal.reason)}`,o.controller.signal.reason):(await i.handler(n.data,s),{success:!0})):this.failure(e,r,s.correlationId,`Invalid parameters for Reaction '${e}': ${n.error.message}`)}catch(t){return this.logFailure(e,r,s.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{message:h(t)}}}finally{o.release()}}failure(e,t,n,r,i){return this.logFailure(e,t,n,r,i),{success:!1,error:{message:r}}}logFailure(e,t,n,r,i){let a=n===void 0?``:` (correlationId: ${n})`;console.error(`[ReactionRegistry] Reaction '${e}' invocation '${t}' failed${a}: ${r}`,...i===void 0?[]:[i])}validateBatch(e,t){let n=`${e}.`,r=new Set,i=new Set(this.definitionsByExtension.get(e)?.map(e=>e.descriptor.kind)),a=[];for(let o of t){if(!o.kind.startsWith(n)||o.kind.length===n.length)throw Error(`Reaction '${o.kind}' must be namespaced by extension '${n}'`);if(r.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' appears twice in batch from '${e}'`);if(this.definitionsByKind.has(o.kind)&&!i.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' is already registered`);r.add(o.kind);let t=je.parse(o.toDescriptor());if(t.kind!==o.kind)throw Error(`Reaction descriptor kind '${t.kind}' does not match definition kind '${o.kind}'`);a.push({parameterSchema:o.parameterSchema,handler:o.handler,descriptor:t})}return a}};const Je=()=>{};function Ye(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Xe(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:Je};let r=[];if(e){let t=()=>{n.abort(e.reason)};e.addEventListener(`abort`,t,{once:!0}),r.push(()=>{e.removeEventListener(`abort`,t)})}if(t!==void 0){let e,i=()=>{if(H(n,t)){e=void 0;return}let r=t-Date.now();e=setTimeout(i,Math.min(r,2147483647)),e.unref?.()};i(),r.push(()=>{clearTimeout(e)})}return{controller:n,release:()=>{for(let e of r)e()}}}function H(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Ze(e,t,n){return Object.freeze({invocationId:e,ruleRef:n.ruleRef,eventKind:n.eventKind,eventPayload:n.eventPayload,hostContext:n.hostContext,correlationId:n.correlationId,signal:t,deadlineEpochMs:n.deadlineEpochMs})}const U=S(`reaction-registry`),W={name:U.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)};function Qe(e){let t=Pe({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?A(k.VALIDATION_FAILED,n.message):ze(t.effectiveIdentity)}function $e(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function et(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function tt(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var G=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??g,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(y.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(y.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${y.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(y.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${y.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${y.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(y.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return A(k.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Qe(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=tt(),l=Date.now();await this.bus.emit(y.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=A(k.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(y.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(y.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(y.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Re(t);return await this.bus.emit(y.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=$e(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Le]:i}}let r=Te({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return A(k.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return A(k.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=m.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=m.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await et(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},nt=class extends w{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(b.list,e=>{e.setResult({steps:this.listSteps()})})}async register(e,t){let n=[],r=this.snapshotExtensionState(e),i=new Set;for(let e of this.stepsByExtension.values())for(let t of e)i.add(t.metadata.name);for(let r of t.steps??[])this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,i),i.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:C(r.configSchema),inputSchema:C(r.inputSchema),outputSchema:C(r.outputSchema),runs:structuredClone(r.runs)});if(n.length!==0){this.stepsByExtension.set(e,n),this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,r),t}}}async deregister(e){let t=this.snapshotExtensionState(e);if(this.stepsByExtension.delete(e)){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listSteps(){return this.getCache().steps.map(rt)}async emitChanged(e,t){await this.bus.emit(b.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function rt(e){return{metadata:it(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function it(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const K=`workflow.start`;function at(e){return()=>({async execute(t,n){let{input:r={}}=t,{workflowId:i}=r;if(typeof i!=`string`||i.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(Ne.start,{workflowId:i,input:ot(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType}})}})}function ot(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=He(n,st(t)),i=Ae.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function st(e){let t={...e};return{...t,ctx:t}}var ct=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(K,at(e)),this.factoriesBySource.set(`__builtin__`,[K])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},lt=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=Me.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:Be.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},ut=class extends w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(_.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(_.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(_.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(_.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(_.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=Ve(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function dt(e){return async t=>{let n=await ft(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=pt(t),o=await e.requestOptional(D.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await bt(e,r,i,s)}}}async function ft(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function pt(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:vt(e.payload)};return{observation:t,accountObserveRequest:mt(t)}}function mt(e){let t=e.payload,n=ht(t),r=gt(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:_t(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function ht(e){return yt(e.accountInfo)??e}function gt(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return m.array(Fe).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function _t(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function vt(e){return structuredClone(e)}function yt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function bt(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const xt=S(`session-storage`).name;var St=class extends w{constructor(e=g){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(Ie.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[x(xt),x(`makaio.clients-core`)],critical:!1,create:e=>new St(e.bus)},wt={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function Tt(e){let{harnesses:t}=await e.request(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of Oe){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends w{static storage={drizzle:be};constructor(e=g){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(v.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(v.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(v.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(v.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(v.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(v.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(v.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(ke);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(p.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(p.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(p.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(p.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(p.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(p.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(Ee.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${Ce(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const Dt={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T(be)},create:e=>new Et(e.bus)},Y=S(`session-storage`),X=S(`session-bridge`),Z=S(`session`),Ot=S(`session-orchestrator`),kt=S(`observed-session-ingestion`),Q=S(`tool-registry`),At=S(`tool-approval`),jt=S(`tray-menu`),Mt=S(`model-registry`),Nt=S(`workflow-block-registry`),Pt=S(`transition-pipeline`),Ft=S(`filesystem`),It=S(`git`),Lt=S(`artifact-lifecycle-hook-registry`),Rt=S(`facet-namespace-registry`),zt={name:Lt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new P(e.bus)},Bt={name:Rt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new I(e.bus)},$={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,i)=>{let s=[],d=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(ne(n,i)),s.push(e(n,i)),s.push(ee(n,i)),s.push(a(n,i)),s.push(t(n,i)),s.push(o(n,i)),s.push(r(n,i)),s.push(u(n,i)),s.push(l(n,i)),s.push(c(n,i)),s.push(te(n)),s.push(ae(n)),s.push(re(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},Vt={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[x(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[x(X.name)],critical:!0,create:e=>new ie(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Ut={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[x(Z.name),x(B.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Wt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[x(X.name)],critical:!1,create:e=>new d(e.bus)},Gt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new G({bus:e.bus})},Kt={name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[x(Q.name)],critical:!0,create:e=>new ve(e.bus)},qt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Jt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Yt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Xt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},Zt={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[x(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function Qt(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const $t=[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,Gt,Kt,qt,fe,Dt,B,wt,Jt,W,ge,he,_e,Yt,Zt,Xt];export{nt as A,P as B,Yt as C,lt as D,ut as E,B as F,z as I,R as L,U as M,W as N,ct as O,V as P,L as R,Gt as S,Jt as T,j as V,Vt as _,Ot as a,$ as b,At as c,jt as d,Nt as f,$t as g,Bt as h,X as i,G as j,K as k,Q as l,Qt as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Ut as v,qt as w,Kt as x,Ht as y,I as z};
@@ -574,18 +574,18 @@ declare const WorkerSchemas$1: {
574
574
  relations: z.ZodArray<z.ZodObject<{
575
575
  type: z.ZodString;
576
576
  target: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
577
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
577
+ refClass: z.ZodLiteral<"artifact">;
578
578
  kind: z.ZodString;
579
579
  id: z.ZodString;
580
580
  revision: z.ZodString;
581
- }, z.core.$strip>, z.ZodObject<{
581
+ }, z.core.$strict>, z.ZodObject<{
582
582
  refClass: z.ZodDefault<z.ZodLiteral<"local">>;
583
583
  artifact: z.ZodObject<{
584
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
584
+ refClass: z.ZodLiteral<"artifact">;
585
585
  kind: z.ZodString;
586
586
  id: z.ZodString;
587
587
  revision: z.ZodString;
588
- }, z.core.$strip>;
588
+ }, z.core.$strict>;
589
589
  localId: z.ZodString;
590
590
  }, z.core.$strip>, z.ZodObject<{
591
591
  refClass: z.ZodDefault<z.ZodLiteral<"evidence">>;
@@ -599,6 +599,50 @@ declare const WorkerSchemas$1: {
599
599
  id: z.ZodString;
600
600
  }, z.core.$strict>], "refClass">>;
601
601
  }, z.core.$strip>>;
602
+ evidence: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
603
+ source: z.ZodObject<{
604
+ kind: z.ZodLiteral<"git-file">;
605
+ repository: z.ZodString;
606
+ path: z.ZodString;
607
+ commit: z.ZodString;
608
+ }, z.core.$strict>;
609
+ location: z.ZodUnion<readonly [z.ZodObject<{
610
+ kind: z.ZodLiteral<"whole-source">;
611
+ }, z.core.$strict>, z.ZodObject<{
612
+ kind: z.ZodLiteral<"lines">;
613
+ startLine: z.ZodNumber;
614
+ lineCount: z.ZodNumber;
615
+ }, z.core.$strict>]>;
616
+ excerpt: z.ZodOptional<z.ZodString>;
617
+ }, z.core.$strict>, z.ZodObject<{
618
+ source: z.ZodObject<{
619
+ kind: z.ZodLiteral<"confluence-page">;
620
+ site: z.ZodString;
621
+ pageId: z.ZodString;
622
+ version: z.ZodNumber;
623
+ }, z.core.$strict>;
624
+ location: z.ZodObject<{
625
+ kind: z.ZodLiteral<"whole-source">;
626
+ }, z.core.$strict>;
627
+ excerpt: z.ZodOptional<z.ZodString>;
628
+ }, z.core.$strict>, z.ZodObject<{
629
+ source: z.ZodObject<{
630
+ kind: z.ZodLiteral<"artifact">;
631
+ reference: z.ZodObject<{
632
+ refClass: z.ZodLiteral<"artifact">;
633
+ kind: z.ZodString;
634
+ id: z.ZodString;
635
+ revision: z.ZodString;
636
+ }, z.core.$strict>;
637
+ }, z.core.$strict>;
638
+ location: z.ZodUnion<readonly [z.ZodObject<{
639
+ kind: z.ZodLiteral<"whole-source">;
640
+ }, z.core.$strict>, z.ZodObject<{
641
+ kind: z.ZodLiteral<"data-path">;
642
+ path: z.ZodString;
643
+ }, z.core.$strict>]>;
644
+ excerpt: z.ZodOptional<z.ZodString>;
645
+ }, z.core.$strict>]>>>;
602
646
  confidence: z.ZodOptional<z.ZodObject<{
603
647
  level: z.ZodEnum<{
604
648
  inferred: "inferred";
@@ -617,18 +661,18 @@ declare const WorkerSchemas$1: {
617
661
  timestamp: z.ZodNumber;
618
662
  detail: z.ZodOptional<z.ZodString>;
619
663
  evidenceRef: z.ZodOptional<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
620
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
664
+ refClass: z.ZodLiteral<"artifact">;
621
665
  kind: z.ZodString;
622
666
  id: z.ZodString;
623
667
  revision: z.ZodString;
624
- }, z.core.$strip>, z.ZodObject<{
668
+ }, z.core.$strict>, z.ZodObject<{
625
669
  refClass: z.ZodDefault<z.ZodLiteral<"local">>;
626
670
  artifact: z.ZodObject<{
627
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
671
+ refClass: z.ZodLiteral<"artifact">;
628
672
  kind: z.ZodString;
629
673
  id: z.ZodString;
630
674
  revision: z.ZodString;
631
- }, z.core.$strip>;
675
+ }, z.core.$strict>;
632
676
  localId: z.ZodString;
633
677
  }, z.core.$strip>, z.ZodObject<{
634
678
  refClass: z.ZodDefault<z.ZodLiteral<"evidence">>;
@@ -676,9 +720,9 @@ declare const WorkerSchemas$1: {
676
720
  }, z.core.$strict>;
677
721
  response: z.ZodObject<{
678
722
  decision: z.ZodEnum<{
723
+ fenced: "fenced";
679
724
  accepted: "accepted";
680
725
  duplicate: "duplicate";
681
- fenced: "fenced";
682
726
  conflict: "conflict";
683
727
  }>;
684
728
  }, z.core.$strict>;
@@ -1099,18 +1143,18 @@ declare const WorkerNamespace: _$_makaio_core0.BusNamespaceDefinition<"worker",
1099
1143
  relations: _$zod.ZodArray<_$zod.ZodObject<{
1100
1144
  type: _$zod.ZodString;
1101
1145
  target: _$zod.ZodPreprocess<_$zod.ZodDiscriminatedUnion<[_$zod.ZodObject<{
1102
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1146
+ refClass: _$zod.ZodLiteral<"artifact">;
1103
1147
  kind: _$zod.ZodString;
1104
1148
  id: _$zod.ZodString;
1105
1149
  revision: _$zod.ZodString;
1106
- }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1150
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1107
1151
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"local">>;
1108
1152
  artifact: _$zod.ZodObject<{
1109
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1153
+ refClass: _$zod.ZodLiteral<"artifact">;
1110
1154
  kind: _$zod.ZodString;
1111
1155
  id: _$zod.ZodString;
1112
1156
  revision: _$zod.ZodString;
1113
- }, _$zod_v4_core0.$strip>;
1157
+ }, _$zod_v4_core0.$strict>;
1114
1158
  localId: _$zod.ZodString;
1115
1159
  }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1116
1160
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"evidence">>;
@@ -1124,6 +1168,50 @@ declare const WorkerNamespace: _$_makaio_core0.BusNamespaceDefinition<"worker",
1124
1168
  id: _$zod.ZodString;
1125
1169
  }, _$zod_v4_core0.$strict>], "refClass">>;
1126
1170
  }, _$zod_v4_core0.$strip>>;
1171
+ evidence: _$zod.ZodOptional<_$zod.ZodArray<_$zod.ZodUnion<readonly [_$zod.ZodObject<{
1172
+ source: _$zod.ZodObject<{
1173
+ kind: _$zod.ZodLiteral<"git-file">;
1174
+ repository: _$zod.ZodString;
1175
+ path: _$zod.ZodString;
1176
+ commit: _$zod.ZodString;
1177
+ }, _$zod_v4_core0.$strict>;
1178
+ location: _$zod.ZodUnion<readonly [_$zod.ZodObject<{
1179
+ kind: _$zod.ZodLiteral<"whole-source">;
1180
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1181
+ kind: _$zod.ZodLiteral<"lines">;
1182
+ startLine: _$zod.ZodNumber;
1183
+ lineCount: _$zod.ZodNumber;
1184
+ }, _$zod_v4_core0.$strict>]>;
1185
+ excerpt: _$zod.ZodOptional<_$zod.ZodString>;
1186
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1187
+ source: _$zod.ZodObject<{
1188
+ kind: _$zod.ZodLiteral<"confluence-page">;
1189
+ site: _$zod.ZodString;
1190
+ pageId: _$zod.ZodString;
1191
+ version: _$zod.ZodNumber;
1192
+ }, _$zod_v4_core0.$strict>;
1193
+ location: _$zod.ZodObject<{
1194
+ kind: _$zod.ZodLiteral<"whole-source">;
1195
+ }, _$zod_v4_core0.$strict>;
1196
+ excerpt: _$zod.ZodOptional<_$zod.ZodString>;
1197
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1198
+ source: _$zod.ZodObject<{
1199
+ kind: _$zod.ZodLiteral<"artifact">;
1200
+ reference: _$zod.ZodObject<{
1201
+ refClass: _$zod.ZodLiteral<"artifact">;
1202
+ kind: _$zod.ZodString;
1203
+ id: _$zod.ZodString;
1204
+ revision: _$zod.ZodString;
1205
+ }, _$zod_v4_core0.$strict>;
1206
+ }, _$zod_v4_core0.$strict>;
1207
+ location: _$zod.ZodUnion<readonly [_$zod.ZodObject<{
1208
+ kind: _$zod.ZodLiteral<"whole-source">;
1209
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1210
+ kind: _$zod.ZodLiteral<"data-path">;
1211
+ path: _$zod.ZodString;
1212
+ }, _$zod_v4_core0.$strict>]>;
1213
+ excerpt: _$zod.ZodOptional<_$zod.ZodString>;
1214
+ }, _$zod_v4_core0.$strict>]>>>;
1127
1215
  confidence: _$zod.ZodOptional<_$zod.ZodObject<{
1128
1216
  level: _$zod.ZodEnum<{
1129
1217
  inferred: "inferred";
@@ -1142,18 +1230,18 @@ declare const WorkerNamespace: _$_makaio_core0.BusNamespaceDefinition<"worker",
1142
1230
  timestamp: _$zod.ZodNumber;
1143
1231
  detail: _$zod.ZodOptional<_$zod.ZodString>;
1144
1232
  evidenceRef: _$zod.ZodOptional<_$zod.ZodPreprocess<_$zod.ZodDiscriminatedUnion<[_$zod.ZodObject<{
1145
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1233
+ refClass: _$zod.ZodLiteral<"artifact">;
1146
1234
  kind: _$zod.ZodString;
1147
1235
  id: _$zod.ZodString;
1148
1236
  revision: _$zod.ZodString;
1149
- }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1237
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1150
1238
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"local">>;
1151
1239
  artifact: _$zod.ZodObject<{
1152
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1240
+ refClass: _$zod.ZodLiteral<"artifact">;
1153
1241
  kind: _$zod.ZodString;
1154
1242
  id: _$zod.ZodString;
1155
1243
  revision: _$zod.ZodString;
1156
- }, _$zod_v4_core0.$strip>;
1244
+ }, _$zod_v4_core0.$strict>;
1157
1245
  localId: _$zod.ZodString;
1158
1246
  }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1159
1247
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"evidence">>;
@@ -1201,9 +1289,9 @@ declare const WorkerNamespace: _$_makaio_core0.BusNamespaceDefinition<"worker",
1201
1289
  }, _$zod_v4_core0.$strict>;
1202
1290
  response: _$zod.ZodObject<{
1203
1291
  decision: _$zod.ZodEnum<{
1292
+ fenced: "fenced";
1204
1293
  accepted: "accepted";
1205
1294
  duplicate: "duplicate";
1206
- fenced: "fenced";
1207
1295
  conflict: "conflict";
1208
1296
  }>;
1209
1297
  }, _$zod_v4_core0.$strict>;
@@ -1547,18 +1635,18 @@ declare const WorkerSubjects$1: _$_makaio_core0.BusSubjects<_$_makaio_core0.Flat
1547
1635
  relations: _$zod.ZodArray<_$zod.ZodObject<{
1548
1636
  type: _$zod.ZodString;
1549
1637
  target: _$zod.ZodPreprocess<_$zod.ZodDiscriminatedUnion<[_$zod.ZodObject<{
1550
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1638
+ refClass: _$zod.ZodLiteral<"artifact">;
1551
1639
  kind: _$zod.ZodString;
1552
1640
  id: _$zod.ZodString;
1553
1641
  revision: _$zod.ZodString;
1554
- }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1642
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1555
1643
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"local">>;
1556
1644
  artifact: _$zod.ZodObject<{
1557
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1645
+ refClass: _$zod.ZodLiteral<"artifact">;
1558
1646
  kind: _$zod.ZodString;
1559
1647
  id: _$zod.ZodString;
1560
1648
  revision: _$zod.ZodString;
1561
- }, _$zod_v4_core0.$strip>;
1649
+ }, _$zod_v4_core0.$strict>;
1562
1650
  localId: _$zod.ZodString;
1563
1651
  }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1564
1652
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"evidence">>;
@@ -1572,6 +1660,50 @@ declare const WorkerSubjects$1: _$_makaio_core0.BusSubjects<_$_makaio_core0.Flat
1572
1660
  id: _$zod.ZodString;
1573
1661
  }, _$zod_v4_core0.$strict>], "refClass">>;
1574
1662
  }, _$zod_v4_core0.$strip>>;
1663
+ evidence: _$zod.ZodOptional<_$zod.ZodArray<_$zod.ZodUnion<readonly [_$zod.ZodObject<{
1664
+ source: _$zod.ZodObject<{
1665
+ kind: _$zod.ZodLiteral<"git-file">;
1666
+ repository: _$zod.ZodString;
1667
+ path: _$zod.ZodString;
1668
+ commit: _$zod.ZodString;
1669
+ }, _$zod_v4_core0.$strict>;
1670
+ location: _$zod.ZodUnion<readonly [_$zod.ZodObject<{
1671
+ kind: _$zod.ZodLiteral<"whole-source">;
1672
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1673
+ kind: _$zod.ZodLiteral<"lines">;
1674
+ startLine: _$zod.ZodNumber;
1675
+ lineCount: _$zod.ZodNumber;
1676
+ }, _$zod_v4_core0.$strict>]>;
1677
+ excerpt: _$zod.ZodOptional<_$zod.ZodString>;
1678
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1679
+ source: _$zod.ZodObject<{
1680
+ kind: _$zod.ZodLiteral<"confluence-page">;
1681
+ site: _$zod.ZodString;
1682
+ pageId: _$zod.ZodString;
1683
+ version: _$zod.ZodNumber;
1684
+ }, _$zod_v4_core0.$strict>;
1685
+ location: _$zod.ZodObject<{
1686
+ kind: _$zod.ZodLiteral<"whole-source">;
1687
+ }, _$zod_v4_core0.$strict>;
1688
+ excerpt: _$zod.ZodOptional<_$zod.ZodString>;
1689
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1690
+ source: _$zod.ZodObject<{
1691
+ kind: _$zod.ZodLiteral<"artifact">;
1692
+ reference: _$zod.ZodObject<{
1693
+ refClass: _$zod.ZodLiteral<"artifact">;
1694
+ kind: _$zod.ZodString;
1695
+ id: _$zod.ZodString;
1696
+ revision: _$zod.ZodString;
1697
+ }, _$zod_v4_core0.$strict>;
1698
+ }, _$zod_v4_core0.$strict>;
1699
+ location: _$zod.ZodUnion<readonly [_$zod.ZodObject<{
1700
+ kind: _$zod.ZodLiteral<"whole-source">;
1701
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1702
+ kind: _$zod.ZodLiteral<"data-path">;
1703
+ path: _$zod.ZodString;
1704
+ }, _$zod_v4_core0.$strict>]>;
1705
+ excerpt: _$zod.ZodOptional<_$zod.ZodString>;
1706
+ }, _$zod_v4_core0.$strict>]>>>;
1575
1707
  confidence: _$zod.ZodOptional<_$zod.ZodObject<{
1576
1708
  level: _$zod.ZodEnum<{
1577
1709
  inferred: "inferred";
@@ -1590,18 +1722,18 @@ declare const WorkerSubjects$1: _$_makaio_core0.BusSubjects<_$_makaio_core0.Flat
1590
1722
  timestamp: _$zod.ZodNumber;
1591
1723
  detail: _$zod.ZodOptional<_$zod.ZodString>;
1592
1724
  evidenceRef: _$zod.ZodOptional<_$zod.ZodPreprocess<_$zod.ZodDiscriminatedUnion<[_$zod.ZodObject<{
1593
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1725
+ refClass: _$zod.ZodLiteral<"artifact">;
1594
1726
  kind: _$zod.ZodString;
1595
1727
  id: _$zod.ZodString;
1596
1728
  revision: _$zod.ZodString;
1597
- }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1729
+ }, _$zod_v4_core0.$strict>, _$zod.ZodObject<{
1598
1730
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"local">>;
1599
1731
  artifact: _$zod.ZodObject<{
1600
- refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"artifact">>;
1732
+ refClass: _$zod.ZodLiteral<"artifact">;
1601
1733
  kind: _$zod.ZodString;
1602
1734
  id: _$zod.ZodString;
1603
1735
  revision: _$zod.ZodString;
1604
- }, _$zod_v4_core0.$strip>;
1736
+ }, _$zod_v4_core0.$strict>;
1605
1737
  localId: _$zod.ZodString;
1606
1738
  }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
1607
1739
  refClass: _$zod.ZodDefault<_$zod.ZodLiteral<"evidence">>;
@@ -1649,9 +1781,9 @@ declare const WorkerSubjects$1: _$_makaio_core0.BusSubjects<_$_makaio_core0.Flat
1649
1781
  }, _$zod_v4_core0.$strict>;
1650
1782
  response: _$zod.ZodObject<{
1651
1783
  decision: _$zod.ZodEnum<{
1784
+ fenced: "fenced";
1652
1785
  accepted: "accepted";
1653
1786
  duplicate: "duplicate";
1654
- fenced: "fenced";
1655
1787
  conflict: "conflict";
1656
1788
  }>;
1657
1789
  }, _$zod_v4_core0.$strict>;
@@ -18,8 +18,8 @@ import { ExtensionWarningEntry, ExtensionWarningEntrySchema } from "@makaio/fram
18
18
  * detail, not an externally observable state.
19
19
  */
20
20
  declare const ComponentStateSchema: z.ZodEnum<{
21
- failed: "failed";
22
21
  discovered: "discovered";
22
+ failed: "failed";
23
23
  active: "active";
24
24
  skipped: "skipped";
25
25
  stopped: "stopped";
@@ -47,8 +47,8 @@ declare const ComponentInfoSchema: z.ZodObject<{
47
47
  name: z.ZodString;
48
48
  displayName: z.ZodString;
49
49
  state: z.ZodEnum<{
50
- failed: "failed";
51
50
  discovered: "discovered";
51
+ failed: "failed";
52
52
  active: "active";
53
53
  skipped: "skipped";
54
54
  stopped: "stopped";
@@ -68,8 +68,8 @@ declare const ServiceInfoSchema: z.ZodObject<{
68
68
  name: z.ZodString;
69
69
  displayName: z.ZodString;
70
70
  state: z.ZodEnum<{
71
- failed: "failed";
72
71
  discovered: "discovered";
72
+ failed: "failed";
73
73
  active: "active";
74
74
  skipped: "skipped";
75
75
  stopped: "stopped";
@@ -90,8 +90,8 @@ declare const ExtensionInfoSchema: z.ZodObject<{
90
90
  name: z.ZodString;
91
91
  displayName: z.ZodString;
92
92
  state: z.ZodEnum<{
93
- failed: "failed";
94
93
  discovered: "discovered";
94
+ failed: "failed";
95
95
  active: "active";
96
96
  skipped: "skipped";
97
97
  stopped: "stopped";
@@ -138,16 +138,16 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
138
138
  name: z.ZodString;
139
139
  displayName: z.ZodString;
140
140
  from: z.ZodEnum<{
141
- failed: "failed";
142
141
  discovered: "discovered";
142
+ failed: "failed";
143
143
  active: "active";
144
144
  skipped: "skipped";
145
145
  stopped: "stopped";
146
146
  initializing: "initializing";
147
147
  }>;
148
148
  to: z.ZodEnum<{
149
- failed: "failed";
150
149
  discovered: "discovered";
150
+ failed: "failed";
151
151
  active: "active";
152
152
  skipped: "skipped";
153
153
  stopped: "stopped";
@@ -181,8 +181,8 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
181
181
  name: z.ZodString;
182
182
  displayName: z.ZodString;
183
183
  state: z.ZodEnum<{
184
- failed: "failed";
185
184
  discovered: "discovered";
185
+ failed: "failed";
186
186
  active: "active";
187
187
  skipped: "skipped";
188
188
  stopped: "stopped";
@@ -219,8 +219,8 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
219
219
  name: z.ZodString;
220
220
  displayName: z.ZodString;
221
221
  state: z.ZodEnum<{
222
- failed: "failed";
223
222
  discovered: "discovered";
223
+ failed: "failed";
224
224
  active: "active";
225
225
  skipped: "skipped";
226
226
  stopped: "stopped";
@@ -641,16 +641,16 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
641
641
  name: z.ZodString;
642
642
  displayName: z.ZodString;
643
643
  from: z.ZodEnum<{
644
- failed: "failed";
645
644
  discovered: "discovered";
645
+ failed: "failed";
646
646
  active: "active";
647
647
  skipped: "skipped";
648
648
  stopped: "stopped";
649
649
  initializing: "initializing";
650
650
  }>;
651
651
  to: z.ZodEnum<{
652
- failed: "failed";
653
652
  discovered: "discovered";
653
+ failed: "failed";
654
654
  active: "active";
655
655
  skipped: "skipped";
656
656
  stopped: "stopped";
@@ -684,8 +684,8 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
684
684
  name: z.ZodString;
685
685
  displayName: z.ZodString;
686
686
  state: z.ZodEnum<{
687
- failed: "failed";
688
687
  discovered: "discovered";
688
+ failed: "failed";
689
689
  active: "active";
690
690
  skipped: "skipped";
691
691
  stopped: "stopped";
@@ -722,8 +722,8 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
722
722
  name: z.ZodString;
723
723
  displayName: z.ZodString;
724
724
  state: z.ZodEnum<{
725
- failed: "failed";
726
725
  discovered: "discovered";
726
+ failed: "failed";
727
727
  active: "active";
728
728
  skipped: "skipped";
729
729
  stopped: "stopped";
@@ -38,14 +38,15 @@ declare class PiscinaCodeExecutionProvider implements ICodeExecutionProvider {
38
38
  readonly trust: CodeExecutionTrustLevel;
39
39
  private readonly workerEntry;
40
40
  private readonly workerExecArgv;
41
+ private readonly workerLoaderPaths;
41
42
  /**
42
- * Environment the resolved worker entry's own loader requires.
43
+ * Environment the resolved worker entry's TypeScript loaders require.
43
44
  *
44
45
  * Kept apart from the host-configured {@link environment} because the two
45
- * answer to different owners: this one configures the loader named by
46
- * {@link workerExecArgv}, so it travels with those arguments and is applied
47
- * *after* the host's values — a host must not be able to reconfigure the
48
- * loader that bounds which packages a submitted program can resolve.
46
+ * answer to different owners: this one travels with the entry and its
47
+ * {@link workerExecArgv}, configuring the source entry loader when present
48
+ * and the scoped loader every worker registers for submitted programs. It is
49
+ * applied *after* host values so the host cannot change those launch semantics.
49
50
  */
50
51
  private readonly workerLoaderEnv;
51
52
  private readonly environment;
@@ -425,12 +426,10 @@ declare class PiscinaCodeExecutionProvider implements ICodeExecutionProvider {
425
426
  * target is a provider failure for that invocation; a retargeted symlink after
426
427
  * this snapshot cannot alter later materialization.
427
428
  *
428
- * The loader environment is submitted as worker *paths* rather than as
429
- * environment values, because every value in it names a host file the worker
430
- * is launched against and a startup failure quotes it as a path. Passing a
431
- * value that turned out not to be one costs nothing: path expansion absorbs
432
- * its own failures and falls back to the value itself, which is what the
433
- * environment branch would have redacted anyway.
429
+ * The resolved worker entry identifies which loader settings name host paths.
430
+ * Those paths are always redacted because startup failures can quote them;
431
+ * other loader settings remain ordinary configuration values and must not be
432
+ * interpreted as paths that can match unrelated diagnostic text.
434
433
  * @returns Pinned package targets and matching bus-diagnostic redactions.
435
434
  */
436
435
  private resolveRuntimeConfiguration;
@@ -443,10 +442,9 @@ declare class PiscinaCodeExecutionProvider implements ICodeExecutionProvider {
443
442
  * zero because the pool's own default keeps at least one thread alive
444
443
  * forever, which would make the configured idle timeout unobservable.
445
444
  *
446
- * The worker entry's own loader environment is applied last, so a host cannot
447
- * reconfigure the loader through {@link PiscinaCodeExecutionProviderOptions.environment} —
448
- * that loader is what holds the package map to being the whole truth about
449
- * which ordinary packages a submitted program resolves.
445
+ * The worker entry's loader environment is applied last, so a host cannot
446
+ * re-enable the transform disk cache or replace the source entry loader's
447
+ * pinned tsconfig through {@link PiscinaCodeExecutionProviderOptions.environment}.
450
448
  *
451
449
  * Laziness is also what makes retirement cheap: a retired generation simply
452
450
  * clears this field, and the next invocation builds its successor on exactly