@makaio/framework 1.0.0-dev-1787949057928 → 1.0.0-dev-1788511348215

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 (79) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/attempt-record-codec-dC9LSFUE.mjs +1 -0
  3. package/dist/authority-state-bootstrap-eitx6Ukn.mjs +1 -0
  4. package/dist/bus/index.mjs +1 -1
  5. package/dist/capabilities-DEvmD9VJ.mjs +1 -0
  6. package/dist/contracts/artifact/index.d.mts +1 -1
  7. package/dist/contracts/capabilities/index.d.mts +2 -2
  8. package/dist/contracts/capabilities/index.mjs +1 -1
  9. package/dist/contracts/client/index.d.mts +1 -1
  10. package/dist/contracts/extension/index.d.mts +2 -2
  11. package/dist/contracts/index.d.mts +12 -12
  12. package/dist/contracts/index.mjs +1 -1
  13. package/dist/contracts/worker/index.d.mts +2 -0
  14. package/dist/contracts/worker/index.mjs +1 -0
  15. package/dist/contracts/workflow/index.d.mts +1 -1
  16. package/dist/contracts/workflow/index.mjs +1 -1
  17. package/dist/{execution-attempt-repository-BJ2W6wwx.d.mts → execution-attempt-repository-DY4KTptE.d.mts} +359 -57
  18. package/dist/{index-8NdPPzUh2.d.mts → index-6trZYnUP2.d.mts} +12 -12
  19. package/dist/{index-CPi0UpRh.d.mts → index-B_8bA2JW.d.mts} +1 -1
  20. package/dist/{index-DfUpqwBa2.d.mts → index-BmilK-co2.d.mts} +53 -53
  21. package/dist/{index-CMekqu_D.d.mts → index-C6aSnO8m.d.mts} +42 -42
  22. package/dist/{index-BUwDmh1I.d.mts → index-CDud4NAm.d.mts} +10 -10
  23. package/dist/{index-CYjgoYeX.d.mts → index-DHH-93YD.d.mts} +1 -1
  24. package/dist/{index-B9io6JAL.d.mts → index-DI2lS7VT.d.mts} +1 -1
  25. package/dist/{index-cLB38AWX.d.mts → index-DNI6UF9h.d.mts} +60 -60
  26. package/dist/{index-NUByQvlg.d.mts → index-DXtQRehh.d.mts} +14 -14
  27. package/dist/{index-CVNbBtA-.d.mts → index-Wbd_syN2.d.mts} +112 -112
  28. package/dist/kernel/extension/index.d.mts +1 -1
  29. package/dist/kernel/index.d.mts +2 -2
  30. package/dist/kernel/observability/index.d.mts +1 -1
  31. package/dist/{namespace-C06lJSuj.d.mts → namespace-K23m4b0n.d.mts} +6 -6
  32. package/dist/package-Cgjpm9om.mjs +7 -0
  33. package/dist/{package-BNFTUFLB.d.mts → package-efR90JGe.d.mts} +59 -30
  34. package/dist/package.json +1 -1
  35. package/dist/runtime-node/index.d.mts +1 -1
  36. package/dist/runtime-node/index.mjs +1 -1
  37. package/dist/runtime-node/makaio-config.d.mts +2 -2
  38. package/dist/runtime-node/makaio-config.mjs +1 -1
  39. package/dist/runtime-node/workflow-execution-bus-access.mjs +1 -1
  40. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  41. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  42. package/dist/{schemas-OWvBn7AH.d.mts → schemas-BCXvEWyF.d.mts} +4 -4
  43. package/dist/{schemas-BAv9RB9M.d.mts → schemas-D7EeKBDJ.d.mts} +3 -3
  44. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  45. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  46. package/dist/services/filesystem/namespace.d.mts +6 -6
  47. package/dist/services/filesystem/schemas.d.mts +3 -3
  48. package/dist/services/index.d.mts +9 -9
  49. package/dist/services/provider-context/index.d.mts +1 -1
  50. package/dist/services/session/index.d.mts +1 -1
  51. package/dist/services/settings/namespace.d.mts +2 -2
  52. package/dist/services/subagent-template/index.d.mts +1 -1
  53. package/dist/services/subagent-template/schemas.d.mts +1 -1
  54. package/dist/worker-CARV52hT.mjs +1 -0
  55. package/dist/worker-CLsRbzpk.mjs +1 -0
  56. package/dist/workflow-BomH9DBB.mjs +1 -0
  57. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  58. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  59. package/dist/workflow-engine/index.d.mts +178 -23
  60. package/dist/workflow-engine/index.mjs +1 -1
  61. package/dist/workflow-engine/package.d.mts +1 -1
  62. package/dist/workflow-engine/package.mjs +1 -1
  63. package/dist/workflow-engine/testing/index.d.mts +30 -9
  64. package/dist/workflow-engine/testing/index.mjs +1 -1
  65. package/dist/workflow-engine/testing/sqlite.d.mts +3 -2
  66. package/dist/workflow-engine/testing/sqlite.mjs +20 -20
  67. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  68. package/dist/workflow-worker-Dul-wcOR.mjs +1 -0
  69. package/package.json +4 -4
  70. package/dist/attempt-record-codec-BYfYkj4M.mjs +0 -1
  71. package/dist/authority-state-bootstrap-CLYus369.mjs +0 -1
  72. package/dist/capabilities-BUwuA7XX.mjs +0 -1
  73. package/dist/contracts/worker-node/index.d.mts +0 -2
  74. package/dist/contracts/worker-node/index.mjs +0 -1
  75. package/dist/package-B01gmu75.mjs +0 -7
  76. package/dist/worker-node-CjuQb9hl.mjs +0 -1
  77. package/dist/worker-node-Dtf9ilsR.mjs +0 -1
  78. package/dist/workflow-C4mck_NW.mjs +0 -1
  79. package/dist/workflow-worker-aNbdgqml.mjs +0 -1
@@ -1,4 +1,4 @@
1
- import{i as e,o as t,t as n}from"../chunk-DTipWd-i.mjs";import{t as r}from"../semver-BI7kTNsY.mjs";import{A as i,C as a,D as o,E as s,F as c,M as l,N as u,O as d,P as f,S as p,T as m,a as h,c as g,d as _,f as v,j as y,k as b,l as x,n as S,r as C,t as w,w as T}from"../workflow-worker-aNbdgqml.mjs";import{createNodeClientBinaryStrategyDependencies as E}from"./client-binary-strategy-dependencies.mjs";import{RuntimeNamespace as ee,RuntimeSubjects as D}from"./bus/runtime/namespace.mjs";import{ExplicitDescriptorDiscovery as O,FilesystemDescriptorDiscovery as k,MergedDescriptorDiscovery as te}from"./extension-discovery.mjs";import{MAKAIO_CONFIG_FILE_ENV as ne,MAKAIO_HOME_ENV as re,buildConfiguredRuntimeOptions as A,createMakaioConfigDiscovery as ie,defineMakaioConfig as j,loadMakaioConfig as ae,parseMakaioConfig as oe,resolveMakaioConfigPath as M,resolveMakaioHome as se,shouldIncludeExtension as ce}from"./makaio-config.mjs";import{n as le}from"../extension-package-provenance-aYrZuS4W.mjs";import{t as ue}from"../descriptor-to-package-CcjdoWP4.mjs";import{a as de,c as fe,i as pe,l as N,n as P,o as me,r as F,s as he,t as I}from"../load-extensions-DG5LvPyM.mjs";import{a as ge,c as _e,i as ve,n as ye,o as be,r as xe,s as Se,t as Ce}from"../types-Cwza95hS.mjs";import{t as we}from"../code-execution-CweDSWco.mjs";import{createRequire as Te}from"node:module";import{z as L}from"zod";import{execFile as Ee}from"node:child_process";import{promisify as De}from"node:util";import{fileURLToPath as Oe,pathToFileURL as R}from"node:url";import*as z from"node:fs/promises";import*as B from"node:path";import V from"node:path";import*as ke from"node:crypto";import{createHash as Ae}from"node:crypto";import*as H from"node:fs";import{existsSync as je,readFileSync as Me,statSync as Ne}from"node:fs";import{isRecord as Pe}from"@makaio/framework/utils";import{createBusNamespace as Fe}from"@makaio/framework/core";import{ChannelClosedError as Ie,MakaioBus as Le,openChannel as Re,projectSubjectTelemetryFacts as ze}from"@makaio/framework/bus";import{AIModelSchema as Be,BUILT_IN_THIN_WORKFLOW_PROVIDER_ID as Ve,ConfigSchema as He,ConfigSubjects as Ue,CredentialSubjects as We,FrameworkContractNamespaces as Ge,FrameworkStorageNamespaces as Ke,SubjectTelemetrySubjects as qe,isDetachedDescriptor as Je,registerWorkerNodeProvider as Ye,safeParseExtensionDescriptor as Xe,unregisterWorkerNodeProvider as Ze,versionSatisfies as Qe}from"@makaio/framework/contracts";import{DispatchingAuth as $e,E2EAuth as et,HmacAuth as tt,WebSocketClientTransport as nt}from"@makaio/framework/node/transports";import{BootNamespace as rt,ExtensionCoordinator as it,ExtensionNamespace as at,KernelNamespace as ot,createShutdownSequence as st}from"@makaio/framework/kernel";import{BaseService as ct}from"@makaio/framework/service-base";import{uniqueIndex as lt}from"drizzle-orm/sqlite-core";import{uniqueIndex as ut}from"drizzle-orm/pg-core";import{STORAGE_ENGINE_URL_HINTS as dt,defineDialectSchema as ft,defineDualTable as pt,findStorageEngine as mt,getDatabaseDialect as ht,getRawSqlExecutor as gt,getStorageEngine as _t,registerDrizzleHandlers as vt,registerStorageEngine as yt,resolveSchema as bt,resolveStorageEngine as xt,resolveStorageEngineForUrl as St}from"@makaio/framework/storage/drizzle";import{and as Ct,eq as U,sql as W}from"drizzle-orm";import{parseStoredCredentialRef as wt}from"@makaio/framework/contracts/config";import*as Tt from"node:os";import{ProviderStorageSubjects as Et}from"@makaio/framework/services/settings/storage";import{FrameworkServicesCoreNamespaces as Dt,createArtifactKindContributionProcessor as Ot,createArtifactLifecycleHookContributionProcessor as kt,createFacetNamespaceContributionProcessor as At,createModelRegistryPackage as jt,createReactionContributionProcessor as Mt,createToolContributionProcessor as Nt,createTransitionContributionProcessor as Pt,createWorkflowBlockContributionProcessor as Ft}from"@makaio/framework/services";import{CachedRegistryFetcher as It,FallbackRegistryFetcher as Lt,ModelRegistrySchema as Rt,ProviderModelOverrideSchema as zt,mergeModelMetadata as Bt}from"@makaio/framework/services/model-registry";import{createClientsCorePackage as Vt}from"@makaio/framework/clients";import{createDatabaseClient as Ht}from"@makaio/framework/storage/drizzle/client";import{AdapterRuntimeSnapshotError as Ut,resolveAdapterRuntimeSnapshot as Wt,resolveBoundProviderAuth as Gt,resolveConnectorCredentials as Kt,resolveCredentialRef as qt}from"@makaio/framework/adapters/config";import{DefinitionSubjects as Jt}from"@makaio/framework/services/definition";import{ProviderRuntimeSubjects as Yt}from"@makaio/framework/services/provider-runtime";import{SettingsSubjects as Xt}from"@makaio/framework/services/settings/namespace";import{AdapterSubsystemToken as Zt,FileAdapterConfigRepository as Qt,orderAfterAdapterSubsystem as $t}from"@makaio/framework/adapter-subsystem";import{loadOrCreateMachineIdentity as en,loadOrCreateMachineIdentity as tn,machineKeysExist as nn,validateMachineKeys as rn}from"@makaio/framework/node/machine-identity";import{resolveWorkspaceRoot as an}from"@makaio/framework/utils/workspace-root";import{Hono as on}from"hono";import{CliNamespace as sn}from"@makaio/framework/kernel/cli";import{startBusServer as cn}from"@makaio/framework/node/bus-server";import{WebSocketServer as ln}from"ws";import{ConfigProvider as un}from"@makaio/framework/providers";import{KernelSubjects as G}from"@makaio/framework/kernel/namespace";import{createAutomationTriggerContributionProcessor as dn,selectAutomationCronSchedulerPackage as fn}from"@makaio/framework/services/automation-trigger";import{createArtifactViewBuilderContributionProcessor as pn,createSurfaceBindingContributionProcessor as mn}from"@makaio/framework/services/materialization";import{createLogImportContributionProcessor as hn,logImportRegistryPackage as gn}from"@makaio/framework/services/log-import";import{WorkflowEngineToken as _n,createWorkflowEnginePackage as vn}from"@makaio/framework/workflow-engine/package";import{PreferenceValueSchema as yn,PreferencesSubjects as bn}from"@makaio/framework/services/preferences";import{parseWorkspaceGlobs as xn}from"@makaio/framework/utils/workspace-packages";import{serveStatic as Sn}from"@hono/node-server/serve-static";var Cn=class extends Error{constructor(){super(`Live model discovery requires an adapter/provider protocol declaration.`),this.name=`ProviderModelFetchProtocolError`}};function wn(e){let t=e.providerProtocol;if(t===void 0)throw new Cn;return e.snapshot.context.endpointOverrides?.[t]??e.snapshot.definition.endpoints?.[t]}function Tn(e){let t,n=!1;for(let r=e.length-1;r>=0;--r){let i=e[r];try{i()}catch(e){n||=(t=e,!0)}}if(e.length=0,n)throw t}function En(e,t){try{return t()}catch(t){try{Tn(e)}catch{}throw t}}function Dn(e,t){for(let n of e){let e=n.providers.find(e=>e.definition.id===t);if(e)return e}}function On(e){let{$schema:t,...n}=e;return n}function kn(e){let t=e.definition,n=Date.now();return{id:t.id,packageName:e.providerPackageName,name:t.name,description:t.description,endpoints:t.endpoints,defaultModel:t.defaultModel,fastModel:t.fastModel,availableModels:t.availableModels??[],defaultModelFilterMode:`show-all`,authMethods:t.authMethods,capabilities:t.capabilities,enabled:!0,createdAt:n,updatedAt:n}}function An(e,t,n,r){let i=[];return En(i,()=>(i.push(e.on(Xt.adapter.getConfigSchema,({payload:e,setResult:n})=>{let r=t().find(t=>t.name===e.adapterName);if(!r?.adapterConfigSchema){n({hasSchema:!1,schema:null});return}n({hasSchema:!0,schema:L.toJSONSchema(r.adapterConfigSchema)})})),i.push(e.on(Jt.getConfigSchema,({payload:e,setResult:n})=>{let r=Dn(t(),e.definitionId)?.configSchema;if(r){n({hasSchema:!0,schema:L.toJSONSchema(r)});return}n({hasSchema:!1,schema:null})})),r&&i.push(e.on(Xt.extension.getConfigSchema,({payload:e,setResult:t})=>{let n=r(e.extensionName);if(!n?.configSchema){t({hasSchema:!1,schema:null,uiConfig:null});return}t({hasSchema:!0,schema:On(L.toJSONSchema(n.configSchema)),uiConfig:n.uiConfig??null})})),i.push(e.on(Et.get,({payload:e,setResult:n})=>{for(let r of t()){let t=r.providers.find(t=>t.definition.id===e.id);if(t){n({provider:kn(t)});return}}n({provider:null})},{priority:-1})),i.push(e.on(Et.list,({setResult:e})=>{let n=[],r=new Set;for(let e of t())for(let t of e.providers)r.has(t.definition.id)||(r.add(t.definition.id),n.push(kn(t)));e({providers:n})},{priority:-1})),i.push(e.on(Yt.listModelFetchAdapters,async({payload:r,setResult:i})=>{let a=[];for(let i of t()){let t=i.options.adapterId,o=t?n().get(t):void 0;if(!(!o||!(`fetchModels`in o)||typeof o.fetchModels!=`function`))try{await Wt(e,{adapterName:i.name,providerConfigId:r.providerConfigId}),a.push(i.name)}catch(e){if(!(e instanceof Ut))throw e}}a.sort((e,t)=>e.localeCompare(t)),i({adapterNames:a})})),i.push(e.on(Yt.fetchModels,async({payload:r,setResult:i})=>{let a=t().find(e=>e.name===r.adapterName);if(!a)throw Error(`Adapter '${r.adapterName}' is not loaded for live model discovery`);let o=await Wt(e,{adapterName:a.name,providerConfigId:r.providerConfigId}),s=a.options.adapterId,c=s?n().get(s):void 0;if(!s||!c)throw Error(`Adapter instance for '${a.name}' not initialized`);if(!(`fetchModels`in c)||typeof c.fetchModels!=`function`)throw Error(`Adapter '${a.name}' does not support model fetching`);let l=wn(o),u=await Gt(o.boundProviderAuth,t=>Kt(e,t));i({models:await c.fetchModels(l,u)})})),()=>{Tn(i)}))}function jn(e=`sqlite`){let{migrations:t}=_t(e);return t.resolveSourceChainDir?.()??V.resolve(import.meta.dirname,`..`,t.chainDirName)}var Mn=class extends Error{expectedDialect;journalDialect;constructor(e,t,n,r){super(`Migration journal at ${r} declares dialect '${n??`unknown`}', but the target database speaks '${e}'. Point the runner at a migrations directory generated for '${e}' (journal dialect '${t}').`),this.name=`MigrationDialectMismatchError`,this.expectedDialect=e,this.journalDialect=n}};function Nn(e={}){let t=typeof e==`string`?void 0:e.expectedDialect,n=typeof e==`string`?e:e.migrationsDir??jn(t),r=V.join(n,`meta`,`_journal.json`);if(!je(r))throw Error(`Cannot find migrations journal at ${r}`);let i=JSON.parse(Me(r,`utf-8`));if(t!==void 0){let e=_t(t).migrations.journalDialect;if(i.dialect!==e)throw new Mn(t,e,i.dialect,r)}return i.entries.map(e=>{let t=Me(V.join(n,`${e.tag}.sql`),`utf-8`);return{tag:e.tag,sql:t.split(`--> statement-breakpoint`),folderMillis:e.when,hash:Ae(`sha256`).update(t).digest(`hex`),bps:e.breakpoints}})}function Pn(e){return e.replace(/--.*$/gm,``).trim()}async function Fn(e,t){try{await e.run(W.raw(`ROLLBACK`))}catch(e){console.error(`[storage-migrations] Failed to roll back migration transaction`,{...t,rollbackError:e})}}async function In(e){let{migrations:t}=e.engine;if(await e.session.run(W.raw(t.beginTransactionStatement)),t.acquireTransactionLock)try{await t.acquireTransactionLock(e.session,e.tableName)}catch(t){throw await Fn(e.session,{migrationsTable:e.tableName}),t}}async function Ln(e){let t=e.engine.migrations.acquireTransactionLock!==void 0;t&&await In(e);try{await e.session.run(W.raw(e.engine.migrations.buildLedgerDdl(e.tableName)));let n=await e.session.all(W`SELECT hash FROM ${e.tableId}`);return t&&await e.session.run(W.raw(`COMMIT`)),new Set(n.map(e=>e.hash))}catch(n){throw t&&await Fn(e.session,{migrationsTable:e.tableName}),n}}async function Rn(e,t){try{await e.session.run(W`INSERT INTO ${e.tableId} ("hash", "created_at") VALUES (${t.hash}, ${t.folderMillis})`),await e.session.run(W.raw(`COMMIT`))}catch(e){throw console.error(`[storage-migrations] Failed to finalize migration`,{hash:t.hash,folderMillis:t.folderMillis,error:e}),e}}async function zn(e,t){return e.engine.migrations.acquireTransactionLock===void 0||(await e.session.all(W`SELECT hash FROM ${e.tableId} WHERE hash = ${t.hash}`)).length===0?!1:(console.warn(`[storage-migrations] Migration already recorded by a concurrent runner, skipping`,{hash:t.hash,folderMillis:t.folderMillis}),await e.session.run(W.raw(`COMMIT`)),!0)}async function Bn(e,t){await e.session.run(W.raw(`ROLLBACK`)),await In(e),!await zn(e,t)&&await Rn(e,t)}async function Vn(e,t){await In(e);try{if(await zn(e,t))return;for(let[n,r]of t.sql.entries())if(Pn(r))try{await e.session.run(W.raw(r))}catch(i){if(n===0&&/^\s*CREATE\s/i.test(r)&&e.engine.errors.isDuplicateObjectError(i)){if(t.sql.length>1)throw Error(`Cannot adopt multi-statement migration '${t.tag}' because its first schema object already exists. Reset the database or provide an incremental migration.`,{cause:i});console.warn(`[storage-migrations] Schema object already exists, adopting into ledger`,{hash:t.hash,folderMillis:t.folderMillis,statementIndex:n}),await Bn(e,t);return}throw console.error(`[storage-migrations] Failed to apply migration statement`,{hash:t.hash,folderMillis:t.folderMillis,statementIndex:n,statement:r,error:i}),i}await Rn(e,t)}catch(n){throw await Fn(e.session,{hash:t.hash,folderMillis:t.folderMillis}),n}}async function Hn(e,t,n){let r=e.engine.migrations.constraintSuspension;if(!r?.isRequestedBy(t.sql)){await n();return}await e.session.run(W.raw(r.suspendStatement));try{await n()}finally{await e.session.run(W.raw(r.restoreStatement))}}async function Un(e,t,n){let r=gt(e),i=_t(r.dialect),a=n??i.migrations.defaultLedgerTable;await r.withSession(async e=>{let n={session:e,engine:i,tableName:a,tableId:W.identifier(a)},r=await Ln(n);for(let e of t)r.has(e.hash)||(await Hn(n,e,()=>Vn(n,e)),r.add(e.hash))})}async function Wn(e,t={}){await Un(e,Nn({migrationsDir:t.migrationsDir,expectedDialect:ht(e)})),await xt(e).fts.provisionSearchIndex(e)}var Gn=class{configPath;constructor(e){this.configPath=B.join(e,`config.json`)}async getConfig(){try{let e=await z.readFile(this.configPath,`utf-8`);return He.parse(JSON.parse(e))}catch(e){if(e.code===`ENOENT`)return He.parse({});if(e instanceof SyntaxError||e instanceof Error&&e.name===`ZodError`)return console.warn(`[FileConfigStorage] Failed to parse config, falling back to defaults:`,e),He.parse({});throw e}}async saveConfig(e){let t=B.dirname(this.configPath);await z.mkdir(t,{recursive:!0}),await z.writeFile(this.configPath,JSON.stringify(e,null,2),{encoding:`utf-8`,mode:384}),await z.chmod(this.configPath,384)}};function Kn(e){try{let t=an(e);return[B.resolve(t,`framework/static/model-registry.yaml`),B.resolve(t,`static/model-registry.yaml`)].find(e=>{try{return Ne(e).isFile()}catch{return!1}})}catch{return}}async function qn(e,t){await new Promise((n,r)=>{if(e.address()){n();return}let i=e=>{if(o(),e.code===`EADDRINUSE`){r(Error(`Port ${t} is already in use`));return}r(e)},a=()=>{o(),n()},o=()=>{e.off(`error`,i),e.off(`listening`,a)};e.once(`error`,i),e.once(`listening`,a)}),e.on(`error`,e=>{console.error(`[HttpServer] Post-bind error:`,e)})}function Jn(e){let t=e.address();if(typeof t==`object`&&t&&`port`in t)return t.port;throw Error(`HTTP server is not bound to a TCP address`)}function Yn(e,t){let n=e,r=!1;return{fetch:(e,i,a)=>{if(!r)return new Response(`Makaio runtime is booting`,{status:503,headers:{"Retry-After":`1`}});let{pathname:o}=new URL(e.url);return t?.health&&e.method===`GET`&&o===`/health`?Response.json(t.health()):e.method===`GET`&&o===`/bus`?new Response(`WebSocket endpoint`,{status:426,headers:{Upgrade:`websocket`}}):n.fetch(e,i,a)},markReady(){r=!0},replaceApp(e){n=e}}}const Xn=[`extension`,`static-fallback`];function Zn(e){let t=[];function n(e){let t=new on,n=[...e].sort((e,t)=>Xn.indexOf(e.phase)-Xn.indexOf(t.phase));for(let e of n)e.mount(t);return t}function r(){return n(t)}function i(r){e&&e.replaceApp(n(r)),t=r}return{add(e){i([...t,e])},remove(e){let n=t.filter(t=>t.owner!==e);n.length!==t.length&&i(n)},build:r,get contributions(){return[...t]}}}function Qn(e){let t=e.url?.split(`?`)[0]??``;return t===`/bus`?!0:(t===`/`||t===``)&&e.headers.origin===void 0}function $n(e,t){return(n,r,i)=>{if(!Qn(n))return;let a=e();if(!a||!t()){r.destroy();return}a.handleUpgrade(n,r,i,e=>{a.emit(`connection`,e,n)})}}var er=class{options;busServer=null;websocketServer=null;upgradeHandlerServer=null;upgradeHandler=null;busReady=!1;connecting=!1;constructor(e){this.options=e}get dispatchingAuth(){return this.options.auth instanceof $e?this.options.auth:void 0}async connect(e,t){if(this.connecting||this.busServer||this.websocketServer)throw Error(`[BusServerTransport] connect() called while transport is already connected or connecting`);if(this.options.httpServer.address()===null)throw Error(`[BusServerTransport] httpServer must already be listening before connect() is called`);this.connecting=!0;try{let t=new ln({noServer:!0});this.websocketServer=t;let n=$n(()=>this.websocketServer,()=>this.busReady);this.options.httpServer.on(`upgrade`,n),this.upgradeHandlerServer=this.options.httpServer,this.upgradeHandler=n,this.busServer=await cn({websocket:t,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`node`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`shutdown`)}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}detachUpgradeHandler(){this.upgradeHandlerServer&&this.upgradeHandler&&this.upgradeHandlerServer.off(`upgrade`,this.upgradeHandler),this.upgradeHandlerServer=null,this.upgradeHandler=null}async stopWebSocketServer(e){this.websocketServer&&=(await new Promise((e,t)=>{this.websocketServer.close(n=>n?t(n):e())}).catch(t=>{t instanceof Error&&t.message===`The server is not running`||console.error(`[BusServerTransport] Failed to close WebSocket server during ${e}:`,t)}),null)}},tr=class extends un{keysDir;constructor(e,t){super(e),this.keysDir=B.join(t,`keys`)}async getConfig(e){let t=await super.getConfig(e);return t.bus?.remote&&!t.bus.remote.secret&&(t.bus.remote.secret=this.generateSecret(),(await this.getStoredConfig()).bus?.remote?.url===t.bus.remote.url&&await this.saveConfig(await this.prepareConfigForPersistence(t))),t}generateSecret(){return ke.randomBytes(32).toString(`base64`)}async getMachineId(){return(await tn(this.keysDir)).machineId}getEnv(e){return process.env[e]}};function nr(e,t){return{extensions:e.discovery??new k(void 0,{extensionsDir:V.join(t,`extensions`),nodeModulesDir:V.join(t,`node_modules`)})}}function rr(e){return je(V.join(e,`meta`,`_journal.json`))}function ir(e,t={}){let{moduleDir:n=import.meta.dirname,getMigrationsFolder:r=jn}=t,i=_t(e).migrations.chainDirName,a=[],o=V.resolve(n,`..`,i);if(rr(o))return o;a.push(o);try{let t=r(e);if(rr(t))return t;a.push(t)}catch(t){a.push(`getMigrationsFolder('${e}') unavailable: ${t instanceof Error?t.message:String(t)}`)}throw Error(`resolveBundledMigrationsDir: no '${e}' migrations directory with meta/_journal.json found. Probed: ${a.join(`; `)}. Pass an explicit migrations directory (boot option 'centralMigrationsDir' or InitializeNodeDatabaseOptions.migrationsDir) when migrations are staged elsewhere.`)}function ar(e){if(process.platform===`win32`)return!0;let t=e?.code;return t===`ENOSYS`||t===`EINVAL`}function or(e){return e===void 0||e.trim()===``?void 0:e}function sr(e){try{let t=new URL(e);if(t.host!==``)return`${t.protocol}//${t.host}${t.pathname}`}catch{}let t=e.indexOf(`:`);return t===-1?`<unparseable database URL>`:`${e.slice(0,t+1)}…`}async function cr(e,t,n){let r;try{r=await import(R(Te(B.resolve(t,`package.json`)).resolve(e.packageName)).href)}catch(t){throw Error(`initializeNodeDatabase: the database URL from ${n} targets the '${e.dialect}' storage engine, but '${e.packageName}' could not be loaded. Install ${e.packageName} in the host application, or pass its already-loaded storageEngine via the 'database.engines' boot option.`,{cause:t})}let i=r.storageEngine;if(i===void 0||i.dialect!==e.dialect)throw Error(`initializeNodeDatabase: '${e.packageName}' does not provide a storage engine for dialect '${e.dialect}'. Auto-resolved engine packages must export 'storageEngine: StorageEngine' with a matching dialect.`);mt(e.dialect)===void 0&&yt(i)}async function lr(e){let t=or(e.database?.url),n=t??or(process.env.MAKAIO_DATABASE_URL);if(n!==void 0){let r=t===void 0?`the MAKAIO_DATABASE_URL environment variable`:`the 'database.url' boot option`,i=St(n);if(i.kind===`missing-engine`&&(await cr(i,e.database?.enginePackageImportBasePath??process.cwd(),r),i=St(n)),i.kind!==`engine`){let e=dt.map(e=>e.packageName).join(`, `);throw Error(`initializeNodeDatabase: unsupported database URL '${sr(n)}' from ${r}. URL targets require a storage engine that claims the URL (e.g. postgres:// / postgresql:// via ${e}); SQLite targets are configured via the dbPath option or MAKAIO_DATABASE_PATH.`)}return{kind:`url`,url:n,dialect:i.engine.dialect}}let r=B.resolve(or(e.dbPath)??or(process.env.MAKAIO_DATABASE_PATH)??B.join(e.makaioHome,`makaio.db`));return{kind:`file`,dbPath:r,url:R(r).href}}async function ur(e){for(let t of e.database?.engines??[])yt(t);let t=await lr(e);if(t.kind===`url`){let n=await Ht({url:t.url,postgres:{poolMax:e.database?.poolMax}});try{let r=e.migrationsDir??ir(t.dialect);return await Wn(n.db,{migrationsDir:r}),{databaseClient:n}}catch(e){throw await n.close(),e}}let{dbPath:n}=t,r=B.dirname(n);await H.promises.mkdir(r,{recursive:!0});let i=await Ht({url:t.url});try{await Wn(i.db,{migrationsDir:e.migrationsDir});try{await H.promises.chmod(n,384)}catch(e){if(!ar(e))throw e;console.warn(`[initializeNodeDatabase] Failed to set SQLite file permissions (continuing; this may be unsupported on Windows):`,e)}return{databaseClient:i,dbPath:n}}catch(e){throw await i.close(),e}}const dr=L.object({npmName:L.string(),version:L.string(),source:L.enum([`new`,`upgraded`,`already-present`])}),fr=L.object({npmName:L.string(),reason:L.string()}),pr=L.object({success:L.boolean(),packageName:L.string(),version:L.string().optional(),restartRequired:L.boolean(),error:L.string().optional(),installed:L.array(dr).optional(),skipped:L.array(fr).optional(),warnings:L.array(L.string()).optional()}),mr=L.object({success:L.boolean(),packageName:L.string(),error:L.string().optional(),restartRequired:L.boolean()}),hr=L.object({name:L.string(),version:L.string(),description:L.string().optional(),hasDescriptor:L.boolean().default(!1),serverImportPath:L.string().min(1).optional()}),gr=L.object({packageName:L.string(),latestVersion:L.string(),success:L.boolean(),error:L.string().optional()}),_r=L.object({name:L.string(),displayName:L.string(),description:L.string(),icon:L.string().optional(),tags:L.array(L.string()).optional(),descriptorName:L.string().min(1).optional()}),vr=L.object({$schema:L.string(),updatedAt:L.string(),adapters:L.array(_r),extensions:L.array(_r)}),yr=L.object({name:L.string(),currentVersion:L.string(),latestVersion:L.string(),description:L.string().optional()}),br=Fe(`packages`,{list:{request:L.object({}),response:L.object({packages:L.array(hr)})},install:{request:L.object({packageName:L.string().optional(),packageNames:L.array(L.string()).min(1).optional(),source:L.enum([`npm`,`local`]).optional(),force:L.boolean().optional()}).refine(e=>e.packageName!==void 0||e.packageNames!==void 0,{message:`Expected packageName or packageNames`}),response:pr},uninstall:{request:L.object({packageName:L.string()}),response:mr},getLatestVersion:{request:L.object({packageName:L.string()}),response:gr},getRegistry:{request:L.object({}),response:vr},checkUpdates:{request:L.object({}),response:L.object({updates:L.array(yr)})},installed:L.object({packageName:L.string(),version:L.string()}),uninstalled:L.object({packageName:L.string()})}),K=br.subjects;async function xr(e,t,n){if(!B.isAbsolute(e))return;let r;try{r=await z.realpath(e)}catch{return}let i=Sr(t,n),a=[B.resolve(r,`src`,`${i}.ts`),B.resolve(r,`dist`,`${i}.mjs`)];for(let e of a){let t=await Cr(e);if(t!==void 0&&wr(t,r))return t}}function Sr(e,t){return t===!0?e:t}async function Cr(e){try{return await z.realpath(e)}catch{return}}function wr(e,t){let n=B.relative(t,e);return n.length>0&&!n.startsWith(`..`)&&!B.isAbsolute(n)}var Tr=class{extensionsDir;constructor(e){this.extensionsDir=B.resolve(e)}async install(e){try{let t=B.resolve(e.endsWith(`descriptor.json`)?B.dirname(e):e),n=await z.realpath(t),r=await this.readDescriptor(n);Je(r)||await this.validateEntrypoints(n,r.entrypoints);let i=this.linkPathFor(r.name);await z.mkdir(B.dirname(i),{recursive:!0});try{if((await z.lstat(i)).isSymbolicLink())await z.unlink(i);else throw Error(`${i} already exists and is not a symlink`)}catch(e){if(e.code!==`ENOENT`)throw e}let a=process.platform===`win32`?`junction`:`dir`;return await z.symlink(n,i,a),{success:!0,packageName:r.name,version:r.version,restartRequired:!0}}catch(e){return{success:!1,packageName:``,error:e instanceof Error?e.message:String(e),restartRequired:!1}}}async uninstall(e){try{let t=this.linkPathFor(e);if(await z.unlink(t),e.startsWith(`@`)){let e=B.dirname(t);(await z.readdir(e).catch(()=>null))?.length===0&&await z.rmdir(e).catch(()=>{})}return{success:!0,packageName:e,restartRequired:!0}}catch(t){return{success:!1,packageName:e,error:t instanceof Error?t.message:String(t),restartRequired:!1}}}async list(){try{await z.access(this.extensionsDir)}catch{return[]}let e=await z.readdir(this.extensionsDir),t=[];for(let n of e){let e=B.join(this.extensionsDir,n);if(n.startsWith(`@`)){let n=await z.readdir(e).catch(()=>[]);for(let r of n){let n=B.join(e,r),i=await this.readLocalEntry(n);i!==null&&t.push(i)}}else{let n=await this.readLocalEntry(e);n!==null&&t.push(n)}}return t}async readLocalEntry(e){try{if(!(await z.lstat(e)).isSymbolicLink())return null;let t=await z.readlink(e),n=await z.realpath(B.resolve(B.dirname(e),t)),r=B.join(n,`descriptor.json`),i=await z.readFile(r,`utf-8`),a=Xe(JSON.parse(i));if(!a.success)return null;let o=a.data.entrypoints?.server,s=o===void 0?void 0:await xr(n,`server`,o);return{name:a.data.name,version:a.data.version,sourcePath:n,source:`local`,...s!==void 0&&{serverImportPath:s}}}catch{return null}}async readDescriptor(e){let t=B.join(e,`descriptor.json`),n=await z.readFile(t,`utf-8`).catch(()=>{throw Error(`descriptor.json not found at ${t}`)}),r=Xe(JSON.parse(n));if(!r.success)throw Error(`Invalid descriptor.json: ${r.error.message}`);return r.data}async validateEntrypoints(e,t){await Promise.all(Object.entries(t).map(async([t,n])=>{if(n!==void 0&&await xr(e,t,n)===void 0){let e=Sr(t,n);throw Error(`${t} entrypoint "${e}" has no resolvable candidate: neither src/${e}.ts nor dist/${e}.mjs exists within the extension root`)}}))}linkPathFor(e){let t=B.resolve(this.extensionsDir,...e.split(`/`)),n=B.relative(this.extensionsDir,t);if(n===``||n.startsWith(`..`)||B.isAbsolute(n))throw Error(`Invalid extension name: ${e}`);return t}};const Er=`nodeLinker: node-modules`,Dr=/^[A-Za-z]:[\\/]/;let Or=null;function q(){return Or||(Or=Promise.all([import(`../lib-BpGvHZye.mjs`).then(e=>t(e.t(),1)),import(`../lib-BqV8hYtk.mjs`).then(e=>t(e.t(),1)),import(`../lib-Cm-uEoC1.mjs`).then(e=>t(e.default,1))]).then(([e,t,n])=>({Configuration:e.Configuration,Project:e.Project,Cache:e.Cache,StreamReport:e.StreamReport,structUtils:e.structUtils,ppath:t.ppath,npath:t.npath,xfs:t.xfs,getPluginConfiguration:n.getPluginConfiguration})),Or)}var kr=class{makaioHome;constructor(e){this.makaioHome=e}async initialize(){try{let{npath:e,ppath:t,xfs:n}=await q(),r=e.toPortablePath(this.makaioHome),i=t.join(r,`package.json`);if(await n.mkdirpPromise(r),await this.ensureYarnRc(r,n,t),await n.existsPromise(i))return;await n.writeJsonPromise(i,{name:`makaio-packages`,version:`1.0.0`,private:!0,description:`Makaio installed packages`,dependencies:{}}),console.info(`[YarnPackageManager] Created package.json at %s`,i)}catch(e){throw Error(`Failed to initialize package.json`,{cause:e})}}async ensureYarnRc(e,t,n){let r=n.join(e,`.yarnrc.yml`),i=await t.existsPromise(r)?await t.readFilePromise(r,`utf8`):``,a=Pr(i);i!==a&&(await t.writeFilePromise(r,a),console.info(`[YarnPackageManager] Wrote .yarnrc.yml at %s`,r))}async loadYarnState(){let{Configuration:e,Project:t,Cache:n,npath:r,getPluginConfiguration:i}=await q(),a=r.toPortablePath(this.makaioHome),o=await e.find(a,i()),{project:s}=await t.find(o,a);return{configuration:o,project:s,cache:await n.find(o)}}async runProjectInstall(e,t,n){let{StreamReport:r}=await q();if((await r.start({configuration:e,stdout:process.stdout},async e=>{await t.install({cache:n,report:e})})).hasErrors())throw Error(`Yarn install failed with errors`)}async parsePackageDescriptor(e){let{structUtils:t}=await q(),n=t.parseDescriptor(e);return n.range===`unknown`?t.makeDescriptor(n,`latest`):n}async installPackage(e){try{let{structUtils:t}=await q(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=await this.parsePackageDescriptor(e),o=t.stringifyIdent(a),s=r.topLevelWorkspace.manifest.dependencies.get(a.identHash);r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i);let c=r.storedResolutions.get(a.descriptorHash);if(!c)throw Error(`Package resolution not found after installation`);let l=r.storedPackages.get(c);if(!l)throw Error(`Package not found after installation`);let u=l.version??`unknown`;if(!(await this.readInstalledDescriptor(o)).hasDescriptor)throw s?r.topLevelWorkspace.manifest.dependencies.set(a.identHash,s):r.topLevelWorkspace.manifest.dependencies.delete(a.identHash),await this.runProjectInstall(n,r,i),Error(`Installed package ${o} does not contain a valid descriptor.json`);return console.info(`[YarnPackageManager] Installed %s@%s`,o,u),u}catch(t){throw Error(`Failed to install ${e}`,{cause:t})}}async uninstallPackage(e){try{let{structUtils:t}=await q(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=t.parseIdent(e);if(!r.topLevelWorkspace.manifest.dependencies.delete(a.identHash))throw Error(`Package ${e} not found in dependencies`);await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Uninstalled %s`,e)}catch(t){throw Error(`Failed to uninstall ${e}`,{cause:t})}}async listPackages(){try{let{xfs:e,npath:t,ppath:n,structUtils:r}=await q(),i=t.toPortablePath(this.makaioHome),a=n.join(i,`package.json`);if(!await e.existsPromise(a))return[];let{project:o}=await this.loadYarnState(),s=[];for(let[,e]of o.topLevelWorkspace.manifest.dependencies){let t=r.stringifyIdent(e),n=o.storedResolutions.get(e.descriptorHash),i=(n?o.storedPackages.get(n):void 0)?.version??r.parseRange(e.range).selector,a=await this.readInstalledDescriptor(t);a.hasDescriptor&&s.push({name:t,version:i,hasDescriptor:!0,...a.serverImportPath!==void 0&&{serverImportPath:a.serverImportPath}})}return s}catch(e){throw Error(`Failed to list packages`,{cause:e})}}async ensureFrameworkDependency(e){let t=Mr(e);try{let{structUtils:e}=await q(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=e.makeDescriptor(e.parseIdent(`@makaio/framework`),t);if(r.topLevelWorkspace.manifest.dependencies.get(a.identHash)?.range===t)return;r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Ensured @makaio/framework@%s`,t)}catch(e){throw Error(`Failed to ensure @makaio/framework@${t}`,{cause:e})}}async getLatestVersion(e){return this.resolvePackageVersion(e)}async readInstalledDescriptor(e){let t=await this.readInstalledExtensionDescriptor(e);if(t===null)return{hasDescriptor:!1};let n=await this.resolveInstalledServerEntrypoint(e,t);return{hasDescriptor:!0,...n!==void 0&&{serverImportPath:n}}}async resolveInstalledServerEntrypoint(e,t){let n=t.entrypoints?.server;if(n!==void 0)return xr(B.join(this.makaioHome,`node_modules`,...e.split(`/`)),`server`,n)}async readInstalledExtensionDescriptor(e){let t=B.join(this.makaioHome,`node_modules`,...e.split(`/`),`descriptor.json`),n;try{let e=await z.readFile(t,`utf-8`);n=JSON.parse(e)}catch(e){if(e instanceof SyntaxError||Fr(e))return null;throw e}let r=Xe(n);return r.success?r.data:null}async listInstalledExtensionDescriptors(){let e=B.join(this.makaioHome,`package.json`),t;try{let n=await z.readFile(e,`utf-8`);t=JSON.parse(n)}catch(e){if(Fr(e))return[];throw e}let n=Object.keys(t.dependencies??{});return(await Promise.all(n.map(async e=>{let t=await this.readInstalledExtensionDescriptor(e);return t===null?null:{npmName:e,version:await this.readInstalledPackageVersion(e),descriptor:t}}))).filter(e=>e!==null)}async readInstalledPackageVersion(e){let t=B.join(this.makaioHome,`node_modules`,...e.split(`/`),`package.json`);try{let e=await z.readFile(t,`utf-8`),n=JSON.parse(e);return typeof n.version==`string`?n.version:`unknown`}catch{return`unknown`}}async readManifestSnapshot(){let e=B.join(this.makaioHome,`package.json`),t=await z.readFile(e,`utf-8`);return JSON.parse(t)}async writeManifestAndReinstall(e){let t=B.join(this.makaioHome,`package.json`);await z.writeFile(t,`${JSON.stringify(e,null,2)}\n`,`utf-8`);let{configuration:n,project:r,cache:i}=await this.loadYarnState();await this.runProjectInstall(n,r,i)}async resolvePackageVersion(e){try{let{StreamReport:t}=await q(),{configuration:n,project:r}=await this.loadYarnState(),i=await this.parsePackageDescriptor(e),a=`unknown`;return await t.start({configuration:n,stdout:process.stdout},async e=>{let t=n.makeResolver(),o=await t.getCandidates(i,{},{project:r,resolver:t,report:e});if(o.length>0){let e=o[0];a=e.reference.match(/^npm:(.+)$/)?.[1]??e.reference}}),a}catch(t){throw Error(`Failed to resolve version for ${e}`,{cause:t})}}};function Ar(e,t){return!t||t===`latest`?e:`${e}@${t}`}function jr(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return e;let n=e.indexOf(`@`,t+1);return n===-1?e:e.slice(0,n)}let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function Mr(e){return e.localPackagePath?`portal:${Nr(e.localPackagePath)}`:e.versionRange}function Nr(e){let t=(Dr.test(e)?e:B.resolve(e)).replace(/\\/g,`/`);return Dr.test(t)?`/${t}`:t}function Pr(e){let t=e.split(/\r?\n/),n=!1,r=t.map(e=>/^\s*nodeLinker\s*:/.test(e)?(n=!0,Er):e);if(!n){let t=e.trimEnd();return`${t}${t.length>0?`
1
+ import{i as e,o as t,t as n}from"../chunk-DTipWd-i.mjs";import{t as r}from"../semver-BI7kTNsY.mjs";import{A as i,C as a,D as o,E as s,F as c,M as l,N as u,O as d,P as f,S as p,T as m,a as h,c as g,d as _,f as v,j as y,k as b,l as x,n as S,r as C,t as w,w as T}from"../workflow-worker-Dul-wcOR.mjs";import{createNodeClientBinaryStrategyDependencies as E}from"./client-binary-strategy-dependencies.mjs";import{RuntimeNamespace as ee,RuntimeSubjects as D}from"./bus/runtime/namespace.mjs";import{ExplicitDescriptorDiscovery as O,FilesystemDescriptorDiscovery as k,MergedDescriptorDiscovery as te}from"./extension-discovery.mjs";import{MAKAIO_CONFIG_FILE_ENV as ne,MAKAIO_HOME_ENV as re,buildConfiguredRuntimeOptions as A,createMakaioConfigDiscovery as ie,defineMakaioConfig as j,loadMakaioConfig as ae,parseMakaioConfig as oe,resolveMakaioConfigPath as M,resolveMakaioHome as se,shouldIncludeExtension as ce}from"./makaio-config.mjs";import{n as le}from"../extension-package-provenance-aYrZuS4W.mjs";import{t as ue}from"../descriptor-to-package-CcjdoWP4.mjs";import{a as de,c as fe,i as pe,l as N,n as P,o as me,r as F,s as he,t as I}from"../load-extensions-DG5LvPyM.mjs";import{a as ge,c as _e,i as ve,n as ye,o as be,r as xe,s as Se,t as Ce}from"../types-Cwza95hS.mjs";import{t as we}from"../code-execution-CweDSWco.mjs";import{createRequire as Te}from"node:module";import{z as L}from"zod";import{execFile as Ee}from"node:child_process";import{promisify as De}from"node:util";import{fileURLToPath as Oe,pathToFileURL as R}from"node:url";import*as z from"node:fs/promises";import*as B from"node:path";import V from"node:path";import*as ke from"node:crypto";import{createHash as Ae}from"node:crypto";import*as H from"node:fs";import{existsSync as je,readFileSync as Me,statSync as Ne}from"node:fs";import{isRecord as Pe}from"@makaio/framework/utils";import{createBusNamespace as Fe}from"@makaio/framework/core";import{ChannelClosedError as Ie,MakaioBus as Le,openChannel as Re,projectSubjectTelemetryFacts as ze}from"@makaio/framework/bus";import{AIModelSchema as Be,BUILT_IN_THIN_WORKFLOW_PROVIDER_ID as Ve,ConfigSchema as He,ConfigSubjects as Ue,CredentialSubjects as We,FrameworkContractNamespaces as Ge,FrameworkStorageNamespaces as Ke,SubjectTelemetrySubjects as qe,isDetachedDescriptor as Je,registerWorkerProvider as Ye,safeParseExtensionDescriptor as Xe,unregisterWorkerProvider as Ze,versionSatisfies as Qe}from"@makaio/framework/contracts";import{DispatchingAuth as $e,E2EAuth as et,HmacAuth as tt,WebSocketClientTransport as nt}from"@makaio/framework/node/transports";import{BootNamespace as rt,ExtensionCoordinator as it,ExtensionNamespace as at,KernelNamespace as ot,createShutdownSequence as st}from"@makaio/framework/kernel";import{BaseService as ct}from"@makaio/framework/service-base";import{uniqueIndex as lt}from"drizzle-orm/sqlite-core";import{uniqueIndex as ut}from"drizzle-orm/pg-core";import{STORAGE_ENGINE_URL_HINTS as dt,defineDialectSchema as ft,defineDualTable as pt,findStorageEngine as mt,getDatabaseDialect as ht,getRawSqlExecutor as gt,getStorageEngine as _t,registerDrizzleHandlers as vt,registerStorageEngine as yt,resolveSchema as bt,resolveStorageEngine as xt,resolveStorageEngineForUrl as St}from"@makaio/framework/storage/drizzle";import{and as Ct,eq as U,sql as W}from"drizzle-orm";import{parseStoredCredentialRef as wt}from"@makaio/framework/contracts/config";import*as Tt from"node:os";import{ProviderStorageSubjects as Et}from"@makaio/framework/services/settings/storage";import{FrameworkServicesCoreNamespaces as Dt,createArtifactKindContributionProcessor as Ot,createArtifactLifecycleHookContributionProcessor as kt,createFacetNamespaceContributionProcessor as At,createModelRegistryPackage as jt,createReactionContributionProcessor as Mt,createToolContributionProcessor as Nt,createTransitionContributionProcessor as Pt,createWorkflowBlockContributionProcessor as Ft}from"@makaio/framework/services";import{CachedRegistryFetcher as It,FallbackRegistryFetcher as Lt,ModelRegistrySchema as Rt,ProviderModelOverrideSchema as zt,mergeModelMetadata as Bt}from"@makaio/framework/services/model-registry";import{createClientsCorePackage as Vt}from"@makaio/framework/clients";import{createDatabaseClient as Ht}from"@makaio/framework/storage/drizzle/client";import{AdapterRuntimeSnapshotError as Ut,resolveAdapterRuntimeSnapshot as Wt,resolveBoundProviderAuth as Gt,resolveConnectorCredentials as Kt,resolveCredentialRef as qt}from"@makaio/framework/adapters/config";import{DefinitionSubjects as Jt}from"@makaio/framework/services/definition";import{ProviderRuntimeSubjects as Yt}from"@makaio/framework/services/provider-runtime";import{SettingsSubjects as Xt}from"@makaio/framework/services/settings/namespace";import{AdapterSubsystemToken as Zt,FileAdapterConfigRepository as Qt,orderAfterAdapterSubsystem as $t}from"@makaio/framework/adapter-subsystem";import{loadOrCreateMachineIdentity as en,loadOrCreateMachineIdentity as tn,machineKeysExist as nn,validateMachineKeys as rn}from"@makaio/framework/node/machine-identity";import{resolveWorkspaceRoot as an}from"@makaio/framework/utils/workspace-root";import{Hono as on}from"hono";import{CliNamespace as sn}from"@makaio/framework/kernel/cli";import{startBusServer as cn}from"@makaio/framework/node/bus-server";import{WebSocketServer as ln}from"ws";import{ConfigProvider as un}from"@makaio/framework/providers";import{KernelSubjects as G}from"@makaio/framework/kernel/namespace";import{createAutomationTriggerContributionProcessor as dn,selectAutomationCronSchedulerPackage as fn}from"@makaio/framework/services/automation-trigger";import{createArtifactViewBuilderContributionProcessor as pn,createSurfaceBindingContributionProcessor as mn}from"@makaio/framework/services/materialization";import{createLogImportContributionProcessor as hn,logImportRegistryPackage as gn}from"@makaio/framework/services/log-import";import{WorkflowEngineToken as _n,createWorkflowEnginePackage as vn}from"@makaio/framework/workflow-engine/package";import{PreferenceValueSchema as yn,PreferencesSubjects as bn}from"@makaio/framework/services/preferences";import{parseWorkspaceGlobs as xn}from"@makaio/framework/utils/workspace-packages";import{serveStatic as Sn}from"@hono/node-server/serve-static";var Cn=class extends Error{constructor(){super(`Live model discovery requires an adapter/provider protocol declaration.`),this.name=`ProviderModelFetchProtocolError`}};function wn(e){let t=e.providerProtocol;if(t===void 0)throw new Cn;return e.snapshot.context.endpointOverrides?.[t]??e.snapshot.definition.endpoints?.[t]}function Tn(e){let t,n=!1;for(let r=e.length-1;r>=0;--r){let i=e[r];try{i()}catch(e){n||=(t=e,!0)}}if(e.length=0,n)throw t}function En(e,t){try{return t()}catch(t){try{Tn(e)}catch{}throw t}}function Dn(e,t){for(let n of e){let e=n.providers.find(e=>e.definition.id===t);if(e)return e}}function On(e){let{$schema:t,...n}=e;return n}function kn(e){let t=e.definition,n=Date.now();return{id:t.id,packageName:e.providerPackageName,name:t.name,description:t.description,endpoints:t.endpoints,defaultModel:t.defaultModel,fastModel:t.fastModel,availableModels:t.availableModels??[],defaultModelFilterMode:`show-all`,authMethods:t.authMethods,capabilities:t.capabilities,enabled:!0,createdAt:n,updatedAt:n}}function An(e,t,n,r){let i=[];return En(i,()=>(i.push(e.on(Xt.adapter.getConfigSchema,({payload:e,setResult:n})=>{let r=t().find(t=>t.name===e.adapterName);if(!r?.adapterConfigSchema){n({hasSchema:!1,schema:null});return}n({hasSchema:!0,schema:L.toJSONSchema(r.adapterConfigSchema)})})),i.push(e.on(Jt.getConfigSchema,({payload:e,setResult:n})=>{let r=Dn(t(),e.definitionId)?.configSchema;if(r){n({hasSchema:!0,schema:L.toJSONSchema(r)});return}n({hasSchema:!1,schema:null})})),r&&i.push(e.on(Xt.extension.getConfigSchema,({payload:e,setResult:t})=>{let n=r(e.extensionName);if(!n?.configSchema){t({hasSchema:!1,schema:null,uiConfig:null});return}t({hasSchema:!0,schema:On(L.toJSONSchema(n.configSchema)),uiConfig:n.uiConfig??null})})),i.push(e.on(Et.get,({payload:e,setResult:n})=>{for(let r of t()){let t=r.providers.find(t=>t.definition.id===e.id);if(t){n({provider:kn(t)});return}}n({provider:null})},{priority:-1})),i.push(e.on(Et.list,({setResult:e})=>{let n=[],r=new Set;for(let e of t())for(let t of e.providers)r.has(t.definition.id)||(r.add(t.definition.id),n.push(kn(t)));e({providers:n})},{priority:-1})),i.push(e.on(Yt.listModelFetchAdapters,async({payload:r,setResult:i})=>{let a=[];for(let i of t()){let t=i.options.adapterId,o=t?n().get(t):void 0;if(!(!o||!(`fetchModels`in o)||typeof o.fetchModels!=`function`))try{await Wt(e,{adapterName:i.name,providerConfigId:r.providerConfigId}),a.push(i.name)}catch(e){if(!(e instanceof Ut))throw e}}a.sort((e,t)=>e.localeCompare(t)),i({adapterNames:a})})),i.push(e.on(Yt.fetchModels,async({payload:r,setResult:i})=>{let a=t().find(e=>e.name===r.adapterName);if(!a)throw Error(`Adapter '${r.adapterName}' is not loaded for live model discovery`);let o=await Wt(e,{adapterName:a.name,providerConfigId:r.providerConfigId}),s=a.options.adapterId,c=s?n().get(s):void 0;if(!s||!c)throw Error(`Adapter instance for '${a.name}' not initialized`);if(!(`fetchModels`in c)||typeof c.fetchModels!=`function`)throw Error(`Adapter '${a.name}' does not support model fetching`);let l=wn(o),u=await Gt(o.boundProviderAuth,t=>Kt(e,t));i({models:await c.fetchModels(l,u)})})),()=>{Tn(i)}))}function jn(e=`sqlite`){let{migrations:t}=_t(e);return t.resolveSourceChainDir?.()??V.resolve(import.meta.dirname,`..`,t.chainDirName)}var Mn=class extends Error{expectedDialect;journalDialect;constructor(e,t,n,r){super(`Migration journal at ${r} declares dialect '${n??`unknown`}', but the target database speaks '${e}'. Point the runner at a migrations directory generated for '${e}' (journal dialect '${t}').`),this.name=`MigrationDialectMismatchError`,this.expectedDialect=e,this.journalDialect=n}};function Nn(e={}){let t=typeof e==`string`?void 0:e.expectedDialect,n=typeof e==`string`?e:e.migrationsDir??jn(t),r=V.join(n,`meta`,`_journal.json`);if(!je(r))throw Error(`Cannot find migrations journal at ${r}`);let i=JSON.parse(Me(r,`utf-8`));if(t!==void 0){let e=_t(t).migrations.journalDialect;if(i.dialect!==e)throw new Mn(t,e,i.dialect,r)}return i.entries.map(e=>{let t=Me(V.join(n,`${e.tag}.sql`),`utf-8`);return{tag:e.tag,sql:t.split(`--> statement-breakpoint`),folderMillis:e.when,hash:Ae(`sha256`).update(t).digest(`hex`),bps:e.breakpoints}})}function Pn(e){return e.replace(/--.*$/gm,``).trim()}async function Fn(e,t){try{await e.run(W.raw(`ROLLBACK`))}catch(e){console.error(`[storage-migrations] Failed to roll back migration transaction`,{...t,rollbackError:e})}}async function In(e){let{migrations:t}=e.engine;if(await e.session.run(W.raw(t.beginTransactionStatement)),t.acquireTransactionLock)try{await t.acquireTransactionLock(e.session,e.tableName)}catch(t){throw await Fn(e.session,{migrationsTable:e.tableName}),t}}async function Ln(e){let t=e.engine.migrations.acquireTransactionLock!==void 0;t&&await In(e);try{await e.session.run(W.raw(e.engine.migrations.buildLedgerDdl(e.tableName)));let n=await e.session.all(W`SELECT hash FROM ${e.tableId}`);return t&&await e.session.run(W.raw(`COMMIT`)),new Set(n.map(e=>e.hash))}catch(n){throw t&&await Fn(e.session,{migrationsTable:e.tableName}),n}}async function Rn(e,t){try{await e.session.run(W`INSERT INTO ${e.tableId} ("hash", "created_at") VALUES (${t.hash}, ${t.folderMillis})`),await e.session.run(W.raw(`COMMIT`))}catch(e){throw console.error(`[storage-migrations] Failed to finalize migration`,{hash:t.hash,folderMillis:t.folderMillis,error:e}),e}}async function zn(e,t){return e.engine.migrations.acquireTransactionLock===void 0||(await e.session.all(W`SELECT hash FROM ${e.tableId} WHERE hash = ${t.hash}`)).length===0?!1:(console.warn(`[storage-migrations] Migration already recorded by a concurrent runner, skipping`,{hash:t.hash,folderMillis:t.folderMillis}),await e.session.run(W.raw(`COMMIT`)),!0)}async function Bn(e,t){await e.session.run(W.raw(`ROLLBACK`)),await In(e),!await zn(e,t)&&await Rn(e,t)}async function Vn(e,t){await In(e);try{if(await zn(e,t))return;for(let[n,r]of t.sql.entries())if(Pn(r))try{await e.session.run(W.raw(r))}catch(i){if(n===0&&/^\s*CREATE\s/i.test(r)&&e.engine.errors.isDuplicateObjectError(i)){if(t.sql.length>1)throw Error(`Cannot adopt multi-statement migration '${t.tag}' because its first schema object already exists. Reset the database or provide an incremental migration.`,{cause:i});console.warn(`[storage-migrations] Schema object already exists, adopting into ledger`,{hash:t.hash,folderMillis:t.folderMillis,statementIndex:n}),await Bn(e,t);return}throw console.error(`[storage-migrations] Failed to apply migration statement`,{hash:t.hash,folderMillis:t.folderMillis,statementIndex:n,statement:r,error:i}),i}await Rn(e,t)}catch(n){throw await Fn(e.session,{hash:t.hash,folderMillis:t.folderMillis}),n}}async function Hn(e,t,n){let r=e.engine.migrations.constraintSuspension;if(!r?.isRequestedBy(t.sql)){await n();return}await e.session.run(W.raw(r.suspendStatement));try{await n()}finally{await e.session.run(W.raw(r.restoreStatement))}}async function Un(e,t,n){let r=gt(e),i=_t(r.dialect),a=n??i.migrations.defaultLedgerTable;await r.withSession(async e=>{let n={session:e,engine:i,tableName:a,tableId:W.identifier(a)},r=await Ln(n);for(let e of t)r.has(e.hash)||(await Hn(n,e,()=>Vn(n,e)),r.add(e.hash))})}async function Wn(e,t={}){await Un(e,Nn({migrationsDir:t.migrationsDir,expectedDialect:ht(e)})),await xt(e).fts.provisionSearchIndex(e)}var Gn=class{configPath;constructor(e){this.configPath=B.join(e,`config.json`)}async getConfig(){try{let e=await z.readFile(this.configPath,`utf-8`);return He.parse(JSON.parse(e))}catch(e){if(e.code===`ENOENT`)return He.parse({});if(e instanceof SyntaxError||e instanceof Error&&e.name===`ZodError`)return console.warn(`[FileConfigStorage] Failed to parse config, falling back to defaults:`,e),He.parse({});throw e}}async saveConfig(e){let t=B.dirname(this.configPath);await z.mkdir(t,{recursive:!0}),await z.writeFile(this.configPath,JSON.stringify(e,null,2),{encoding:`utf-8`,mode:384}),await z.chmod(this.configPath,384)}};function Kn(e){try{let t=an(e);return[B.resolve(t,`framework/static/model-registry.yaml`),B.resolve(t,`static/model-registry.yaml`)].find(e=>{try{return Ne(e).isFile()}catch{return!1}})}catch{return}}async function qn(e,t){await new Promise((n,r)=>{if(e.address()){n();return}let i=e=>{if(o(),e.code===`EADDRINUSE`){r(Error(`Port ${t} is already in use`));return}r(e)},a=()=>{o(),n()},o=()=>{e.off(`error`,i),e.off(`listening`,a)};e.once(`error`,i),e.once(`listening`,a)}),e.on(`error`,e=>{console.error(`[HttpServer] Post-bind error:`,e)})}function Jn(e){let t=e.address();if(typeof t==`object`&&t&&`port`in t)return t.port;throw Error(`HTTP server is not bound to a TCP address`)}function Yn(e,t){let n=e,r=!1;return{fetch:(e,i,a)=>{if(!r)return new Response(`Makaio runtime is booting`,{status:503,headers:{"Retry-After":`1`}});let{pathname:o}=new URL(e.url);return t?.health&&e.method===`GET`&&o===`/health`?Response.json(t.health()):e.method===`GET`&&o===`/bus`?new Response(`WebSocket endpoint`,{status:426,headers:{Upgrade:`websocket`}}):n.fetch(e,i,a)},markReady(){r=!0},replaceApp(e){n=e}}}const Xn=[`extension`,`static-fallback`];function Zn(e){let t=[];function n(e){let t=new on,n=[...e].sort((e,t)=>Xn.indexOf(e.phase)-Xn.indexOf(t.phase));for(let e of n)e.mount(t);return t}function r(){return n(t)}function i(r){e&&e.replaceApp(n(r)),t=r}return{add(e){i([...t,e])},remove(e){let n=t.filter(t=>t.owner!==e);n.length!==t.length&&i(n)},build:r,get contributions(){return[...t]}}}function Qn(e){let t=e.url?.split(`?`)[0]??``;return t===`/bus`?!0:(t===`/`||t===``)&&e.headers.origin===void 0}function $n(e,t){return(n,r,i)=>{if(!Qn(n))return;let a=e();if(!a||!t()){r.destroy();return}a.handleUpgrade(n,r,i,e=>{a.emit(`connection`,e,n)})}}var er=class{options;busServer=null;websocketServer=null;upgradeHandlerServer=null;upgradeHandler=null;busReady=!1;connecting=!1;constructor(e){this.options=e}get dispatchingAuth(){return this.options.auth instanceof $e?this.options.auth:void 0}async connect(e,t){if(this.connecting||this.busServer||this.websocketServer)throw Error(`[BusServerTransport] connect() called while transport is already connected or connecting`);if(this.options.httpServer.address()===null)throw Error(`[BusServerTransport] httpServer must already be listening before connect() is called`);this.connecting=!0;try{let t=new ln({noServer:!0});this.websocketServer=t;let n=$n(()=>this.websocketServer,()=>this.busReady);this.options.httpServer.on(`upgrade`,n),this.upgradeHandlerServer=this.options.httpServer,this.upgradeHandler=n,this.busServer=await cn({websocket:t,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`node`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`shutdown`)}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}detachUpgradeHandler(){this.upgradeHandlerServer&&this.upgradeHandler&&this.upgradeHandlerServer.off(`upgrade`,this.upgradeHandler),this.upgradeHandlerServer=null,this.upgradeHandler=null}async stopWebSocketServer(e){this.websocketServer&&=(await new Promise((e,t)=>{this.websocketServer.close(n=>n?t(n):e())}).catch(t=>{t instanceof Error&&t.message===`The server is not running`||console.error(`[BusServerTransport] Failed to close WebSocket server during ${e}:`,t)}),null)}},tr=class extends un{keysDir;constructor(e,t){super(e),this.keysDir=B.join(t,`keys`)}async getConfig(e){let t=await super.getConfig(e);return t.bus?.remote&&!t.bus.remote.secret&&(t.bus.remote.secret=this.generateSecret(),(await this.getStoredConfig()).bus?.remote?.url===t.bus.remote.url&&await this.saveConfig(await this.prepareConfigForPersistence(t))),t}generateSecret(){return ke.randomBytes(32).toString(`base64`)}async getMachineId(){return(await tn(this.keysDir)).machineId}getEnv(e){return process.env[e]}};function nr(e,t){return{extensions:e.discovery??new k(void 0,{extensionsDir:V.join(t,`extensions`),nodeModulesDir:V.join(t,`node_modules`)})}}function rr(e){return je(V.join(e,`meta`,`_journal.json`))}function ir(e,t={}){let{moduleDir:n=import.meta.dirname,getMigrationsFolder:r=jn}=t,i=_t(e).migrations.chainDirName,a=[],o=V.resolve(n,`..`,i);if(rr(o))return o;a.push(o);try{let t=r(e);if(rr(t))return t;a.push(t)}catch(t){a.push(`getMigrationsFolder('${e}') unavailable: ${t instanceof Error?t.message:String(t)}`)}throw Error(`resolveBundledMigrationsDir: no '${e}' migrations directory with meta/_journal.json found. Probed: ${a.join(`; `)}. Pass an explicit migrations directory (boot option 'centralMigrationsDir' or InitializeNodeDatabaseOptions.migrationsDir) when migrations are staged elsewhere.`)}function ar(e){if(process.platform===`win32`)return!0;let t=e?.code;return t===`ENOSYS`||t===`EINVAL`}function or(e){return e===void 0||e.trim()===``?void 0:e}function sr(e){try{let t=new URL(e);if(t.host!==``)return`${t.protocol}//${t.host}${t.pathname}`}catch{}let t=e.indexOf(`:`);return t===-1?`<unparseable database URL>`:`${e.slice(0,t+1)}…`}async function cr(e,t,n){let r;try{r=await import(R(Te(B.resolve(t,`package.json`)).resolve(e.packageName)).href)}catch(t){throw Error(`initializeNodeDatabase: the database URL from ${n} targets the '${e.dialect}' storage engine, but '${e.packageName}' could not be loaded. Install ${e.packageName} in the host application, or pass its already-loaded storageEngine via the 'database.engines' boot option.`,{cause:t})}let i=r.storageEngine;if(i===void 0||i.dialect!==e.dialect)throw Error(`initializeNodeDatabase: '${e.packageName}' does not provide a storage engine for dialect '${e.dialect}'. Auto-resolved engine packages must export 'storageEngine: StorageEngine' with a matching dialect.`);mt(e.dialect)===void 0&&yt(i)}async function lr(e){let t=or(e.database?.url),n=t??or(process.env.MAKAIO_DATABASE_URL);if(n!==void 0){let r=t===void 0?`the MAKAIO_DATABASE_URL environment variable`:`the 'database.url' boot option`,i=St(n);if(i.kind===`missing-engine`&&(await cr(i,e.database?.enginePackageImportBasePath??process.cwd(),r),i=St(n)),i.kind!==`engine`){let e=dt.map(e=>e.packageName).join(`, `);throw Error(`initializeNodeDatabase: unsupported database URL '${sr(n)}' from ${r}. URL targets require a storage engine that claims the URL (e.g. postgres:// / postgresql:// via ${e}); SQLite targets are configured via the dbPath option or MAKAIO_DATABASE_PATH.`)}return{kind:`url`,url:n,dialect:i.engine.dialect}}let r=B.resolve(or(e.dbPath)??or(process.env.MAKAIO_DATABASE_PATH)??B.join(e.makaioHome,`makaio.db`));return{kind:`file`,dbPath:r,url:R(r).href}}async function ur(e){for(let t of e.database?.engines??[])yt(t);let t=await lr(e);if(t.kind===`url`){let n=await Ht({url:t.url,postgres:{poolMax:e.database?.poolMax}});try{let r=e.migrationsDir??ir(t.dialect);return await Wn(n.db,{migrationsDir:r}),{databaseClient:n}}catch(e){throw await n.close(),e}}let{dbPath:n}=t,r=B.dirname(n);await H.promises.mkdir(r,{recursive:!0});let i=await Ht({url:t.url});try{await Wn(i.db,{migrationsDir:e.migrationsDir});try{await H.promises.chmod(n,384)}catch(e){if(!ar(e))throw e;console.warn(`[initializeNodeDatabase] Failed to set SQLite file permissions (continuing; this may be unsupported on Windows):`,e)}return{databaseClient:i,dbPath:n}}catch(e){throw await i.close(),e}}const dr=L.object({npmName:L.string(),version:L.string(),source:L.enum([`new`,`upgraded`,`already-present`])}),fr=L.object({npmName:L.string(),reason:L.string()}),pr=L.object({success:L.boolean(),packageName:L.string(),version:L.string().optional(),restartRequired:L.boolean(),error:L.string().optional(),installed:L.array(dr).optional(),skipped:L.array(fr).optional(),warnings:L.array(L.string()).optional()}),mr=L.object({success:L.boolean(),packageName:L.string(),error:L.string().optional(),restartRequired:L.boolean()}),hr=L.object({name:L.string(),version:L.string(),description:L.string().optional(),hasDescriptor:L.boolean().default(!1),serverImportPath:L.string().min(1).optional()}),gr=L.object({packageName:L.string(),latestVersion:L.string(),success:L.boolean(),error:L.string().optional()}),_r=L.object({name:L.string(),displayName:L.string(),description:L.string(),icon:L.string().optional(),tags:L.array(L.string()).optional(),descriptorName:L.string().min(1).optional()}),vr=L.object({$schema:L.string(),updatedAt:L.string(),adapters:L.array(_r),extensions:L.array(_r)}),yr=L.object({name:L.string(),currentVersion:L.string(),latestVersion:L.string(),description:L.string().optional()}),br=Fe(`packages`,{list:{request:L.object({}),response:L.object({packages:L.array(hr)})},install:{request:L.object({packageName:L.string().optional(),packageNames:L.array(L.string()).min(1).optional(),source:L.enum([`npm`,`local`]).optional(),force:L.boolean().optional()}).refine(e=>e.packageName!==void 0||e.packageNames!==void 0,{message:`Expected packageName or packageNames`}),response:pr},uninstall:{request:L.object({packageName:L.string()}),response:mr},getLatestVersion:{request:L.object({packageName:L.string()}),response:gr},getRegistry:{request:L.object({}),response:vr},checkUpdates:{request:L.object({}),response:L.object({updates:L.array(yr)})},installed:L.object({packageName:L.string(),version:L.string()}),uninstalled:L.object({packageName:L.string()})}),K=br.subjects;async function xr(e,t,n){if(!B.isAbsolute(e))return;let r;try{r=await z.realpath(e)}catch{return}let i=Sr(t,n),a=[B.resolve(r,`src`,`${i}.ts`),B.resolve(r,`dist`,`${i}.mjs`)];for(let e of a){let t=await Cr(e);if(t!==void 0&&wr(t,r))return t}}function Sr(e,t){return t===!0?e:t}async function Cr(e){try{return await z.realpath(e)}catch{return}}function wr(e,t){let n=B.relative(t,e);return n.length>0&&!n.startsWith(`..`)&&!B.isAbsolute(n)}var Tr=class{extensionsDir;constructor(e){this.extensionsDir=B.resolve(e)}async install(e){try{let t=B.resolve(e.endsWith(`descriptor.json`)?B.dirname(e):e),n=await z.realpath(t),r=await this.readDescriptor(n);Je(r)||await this.validateEntrypoints(n,r.entrypoints);let i=this.linkPathFor(r.name);await z.mkdir(B.dirname(i),{recursive:!0});try{if((await z.lstat(i)).isSymbolicLink())await z.unlink(i);else throw Error(`${i} already exists and is not a symlink`)}catch(e){if(e.code!==`ENOENT`)throw e}let a=process.platform===`win32`?`junction`:`dir`;return await z.symlink(n,i,a),{success:!0,packageName:r.name,version:r.version,restartRequired:!0}}catch(e){return{success:!1,packageName:``,error:e instanceof Error?e.message:String(e),restartRequired:!1}}}async uninstall(e){try{let t=this.linkPathFor(e);if(await z.unlink(t),e.startsWith(`@`)){let e=B.dirname(t);(await z.readdir(e).catch(()=>null))?.length===0&&await z.rmdir(e).catch(()=>{})}return{success:!0,packageName:e,restartRequired:!0}}catch(t){return{success:!1,packageName:e,error:t instanceof Error?t.message:String(t),restartRequired:!1}}}async list(){try{await z.access(this.extensionsDir)}catch{return[]}let e=await z.readdir(this.extensionsDir),t=[];for(let n of e){let e=B.join(this.extensionsDir,n);if(n.startsWith(`@`)){let n=await z.readdir(e).catch(()=>[]);for(let r of n){let n=B.join(e,r),i=await this.readLocalEntry(n);i!==null&&t.push(i)}}else{let n=await this.readLocalEntry(e);n!==null&&t.push(n)}}return t}async readLocalEntry(e){try{if(!(await z.lstat(e)).isSymbolicLink())return null;let t=await z.readlink(e),n=await z.realpath(B.resolve(B.dirname(e),t)),r=B.join(n,`descriptor.json`),i=await z.readFile(r,`utf-8`),a=Xe(JSON.parse(i));if(!a.success)return null;let o=a.data.entrypoints?.server,s=o===void 0?void 0:await xr(n,`server`,o);return{name:a.data.name,version:a.data.version,sourcePath:n,source:`local`,...s!==void 0&&{serverImportPath:s}}}catch{return null}}async readDescriptor(e){let t=B.join(e,`descriptor.json`),n=await z.readFile(t,`utf-8`).catch(()=>{throw Error(`descriptor.json not found at ${t}`)}),r=Xe(JSON.parse(n));if(!r.success)throw Error(`Invalid descriptor.json: ${r.error.message}`);return r.data}async validateEntrypoints(e,t){await Promise.all(Object.entries(t).map(async([t,n])=>{if(n!==void 0&&await xr(e,t,n)===void 0){let e=Sr(t,n);throw Error(`${t} entrypoint "${e}" has no resolvable candidate: neither src/${e}.ts nor dist/${e}.mjs exists within the extension root`)}}))}linkPathFor(e){let t=B.resolve(this.extensionsDir,...e.split(`/`)),n=B.relative(this.extensionsDir,t);if(n===``||n.startsWith(`..`)||B.isAbsolute(n))throw Error(`Invalid extension name: ${e}`);return t}};const Er=`nodeLinker: node-modules`,Dr=/^[A-Za-z]:[\\/]/;let Or=null;function q(){return Or||(Or=Promise.all([import(`../lib-BpGvHZye.mjs`).then(e=>t(e.t(),1)),import(`../lib-BqV8hYtk.mjs`).then(e=>t(e.t(),1)),import(`../lib-Cm-uEoC1.mjs`).then(e=>t(e.default,1))]).then(([e,t,n])=>({Configuration:e.Configuration,Project:e.Project,Cache:e.Cache,StreamReport:e.StreamReport,structUtils:e.structUtils,ppath:t.ppath,npath:t.npath,xfs:t.xfs,getPluginConfiguration:n.getPluginConfiguration})),Or)}var kr=class{makaioHome;constructor(e){this.makaioHome=e}async initialize(){try{let{npath:e,ppath:t,xfs:n}=await q(),r=e.toPortablePath(this.makaioHome),i=t.join(r,`package.json`);if(await n.mkdirpPromise(r),await this.ensureYarnRc(r,n,t),await n.existsPromise(i))return;await n.writeJsonPromise(i,{name:`makaio-packages`,version:`1.0.0`,private:!0,description:`Makaio installed packages`,dependencies:{}}),console.info(`[YarnPackageManager] Created package.json at %s`,i)}catch(e){throw Error(`Failed to initialize package.json`,{cause:e})}}async ensureYarnRc(e,t,n){let r=n.join(e,`.yarnrc.yml`),i=await t.existsPromise(r)?await t.readFilePromise(r,`utf8`):``,a=Pr(i);i!==a&&(await t.writeFilePromise(r,a),console.info(`[YarnPackageManager] Wrote .yarnrc.yml at %s`,r))}async loadYarnState(){let{Configuration:e,Project:t,Cache:n,npath:r,getPluginConfiguration:i}=await q(),a=r.toPortablePath(this.makaioHome),o=await e.find(a,i()),{project:s}=await t.find(o,a);return{configuration:o,project:s,cache:await n.find(o)}}async runProjectInstall(e,t,n){let{StreamReport:r}=await q();if((await r.start({configuration:e,stdout:process.stdout},async e=>{await t.install({cache:n,report:e})})).hasErrors())throw Error(`Yarn install failed with errors`)}async parsePackageDescriptor(e){let{structUtils:t}=await q(),n=t.parseDescriptor(e);return n.range===`unknown`?t.makeDescriptor(n,`latest`):n}async installPackage(e){try{let{structUtils:t}=await q(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=await this.parsePackageDescriptor(e),o=t.stringifyIdent(a),s=r.topLevelWorkspace.manifest.dependencies.get(a.identHash);r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i);let c=r.storedResolutions.get(a.descriptorHash);if(!c)throw Error(`Package resolution not found after installation`);let l=r.storedPackages.get(c);if(!l)throw Error(`Package not found after installation`);let u=l.version??`unknown`;if(!(await this.readInstalledDescriptor(o)).hasDescriptor)throw s?r.topLevelWorkspace.manifest.dependencies.set(a.identHash,s):r.topLevelWorkspace.manifest.dependencies.delete(a.identHash),await this.runProjectInstall(n,r,i),Error(`Installed package ${o} does not contain a valid descriptor.json`);return console.info(`[YarnPackageManager] Installed %s@%s`,o,u),u}catch(t){throw Error(`Failed to install ${e}`,{cause:t})}}async uninstallPackage(e){try{let{structUtils:t}=await q(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=t.parseIdent(e);if(!r.topLevelWorkspace.manifest.dependencies.delete(a.identHash))throw Error(`Package ${e} not found in dependencies`);await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Uninstalled %s`,e)}catch(t){throw Error(`Failed to uninstall ${e}`,{cause:t})}}async listPackages(){try{let{xfs:e,npath:t,ppath:n,structUtils:r}=await q(),i=t.toPortablePath(this.makaioHome),a=n.join(i,`package.json`);if(!await e.existsPromise(a))return[];let{project:o}=await this.loadYarnState(),s=[];for(let[,e]of o.topLevelWorkspace.manifest.dependencies){let t=r.stringifyIdent(e),n=o.storedResolutions.get(e.descriptorHash),i=(n?o.storedPackages.get(n):void 0)?.version??r.parseRange(e.range).selector,a=await this.readInstalledDescriptor(t);a.hasDescriptor&&s.push({name:t,version:i,hasDescriptor:!0,...a.serverImportPath!==void 0&&{serverImportPath:a.serverImportPath}})}return s}catch(e){throw Error(`Failed to list packages`,{cause:e})}}async ensureFrameworkDependency(e){let t=Mr(e);try{let{structUtils:e}=await q(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=e.makeDescriptor(e.parseIdent(`@makaio/framework`),t);if(r.topLevelWorkspace.manifest.dependencies.get(a.identHash)?.range===t)return;r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Ensured @makaio/framework@%s`,t)}catch(e){throw Error(`Failed to ensure @makaio/framework@${t}`,{cause:e})}}async getLatestVersion(e){return this.resolvePackageVersion(e)}async readInstalledDescriptor(e){let t=await this.readInstalledExtensionDescriptor(e);if(t===null)return{hasDescriptor:!1};let n=await this.resolveInstalledServerEntrypoint(e,t);return{hasDescriptor:!0,...n!==void 0&&{serverImportPath:n}}}async resolveInstalledServerEntrypoint(e,t){let n=t.entrypoints?.server;if(n!==void 0)return xr(B.join(this.makaioHome,`node_modules`,...e.split(`/`)),`server`,n)}async readInstalledExtensionDescriptor(e){let t=B.join(this.makaioHome,`node_modules`,...e.split(`/`),`descriptor.json`),n;try{let e=await z.readFile(t,`utf-8`);n=JSON.parse(e)}catch(e){if(e instanceof SyntaxError||Fr(e))return null;throw e}let r=Xe(n);return r.success?r.data:null}async listInstalledExtensionDescriptors(){let e=B.join(this.makaioHome,`package.json`),t;try{let n=await z.readFile(e,`utf-8`);t=JSON.parse(n)}catch(e){if(Fr(e))return[];throw e}let n=Object.keys(t.dependencies??{});return(await Promise.all(n.map(async e=>{let t=await this.readInstalledExtensionDescriptor(e);return t===null?null:{npmName:e,version:await this.readInstalledPackageVersion(e),descriptor:t}}))).filter(e=>e!==null)}async readInstalledPackageVersion(e){let t=B.join(this.makaioHome,`node_modules`,...e.split(`/`),`package.json`);try{let e=await z.readFile(t,`utf-8`),n=JSON.parse(e);return typeof n.version==`string`?n.version:`unknown`}catch{return`unknown`}}async readManifestSnapshot(){let e=B.join(this.makaioHome,`package.json`),t=await z.readFile(e,`utf-8`);return JSON.parse(t)}async writeManifestAndReinstall(e){let t=B.join(this.makaioHome,`package.json`);await z.writeFile(t,`${JSON.stringify(e,null,2)}\n`,`utf-8`);let{configuration:n,project:r,cache:i}=await this.loadYarnState();await this.runProjectInstall(n,r,i)}async resolvePackageVersion(e){try{let{StreamReport:t}=await q(),{configuration:n,project:r}=await this.loadYarnState(),i=await this.parsePackageDescriptor(e),a=`unknown`;return await t.start({configuration:n,stdout:process.stdout},async e=>{let t=n.makeResolver(),o=await t.getCandidates(i,{},{project:r,resolver:t,report:e});if(o.length>0){let e=o[0];a=e.reference.match(/^npm:(.+)$/)?.[1]??e.reference}}),a}catch(t){throw Error(`Failed to resolve version for ${e}`,{cause:t})}}};function Ar(e,t){return!t||t===`latest`?e:`${e}@${t}`}function jr(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return e;let n=e.indexOf(`@`,t+1);return n===-1?e:e.slice(0,n)}let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function Mr(e){return e.localPackagePath?`portal:${Nr(e.localPackagePath)}`:e.versionRange}function Nr(e){let t=(Dr.test(e)?e:B.resolve(e)).replace(/\\/g,`/`);return Dr.test(t)?`/${t}`:t}function Pr(e){let t=e.split(/\r?\n/),n=!1,r=t.map(e=>/^\s*nodeLinker\s*:/.test(e)?(n=!0,Er):e);if(!n){let t=e.trimEnd();return`${t}${t.length>0?`
2
2
  `:``}${Er}\n`}return`${r.join(`
3
3
  `).trimEnd()}\n`}function Fr(e){if(typeof e!=`object`||!e||!(`code`in e))return!1;let t=e.code;return t===`ENOENT`||t===`ENOTDIR`}function Ir(e){if(e.startsWith(`git+`))return{kind:`git`,raw:e,resolved:e};let t=e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`);if(e.startsWith(`~`)&&!t)throw Error(`Unsupported home-relative path syntax: ${e}`);return e.startsWith(`.`)||B.isAbsolute(e)||B.win32.isAbsolute(e)||t?{kind:`local`,raw:e,resolved:t?B.resolve(Tt.homedir(),e===`~`?`.`:e.slice(2)):B.resolve(e)}:{kind:`npm`,raw:e,resolved:e}}var Lr=class{packages;names;constructor(e,t){this.packages=e,this.names=t}async resolve(e,t={}){let n=t.snapshot!==null,r=n?t.snapshot===void 0?await this.packages.readManifestSnapshot():t.snapshot:null;try{return await this.runBfs(e,t.force===!0)}catch(e){if(n)try{await this.packages.writeManifestAndReinstall(r)}catch(t){throw AggregateError([e,t],`Dependency resolution failed and rollback failed: ${Br(e)}`)}throw e}}async runBfs(e,t){let n=await this.readInstalledIndex(),r=e.map(e=>{let t=zr(e),n=Rr(t.npmName);return{npmName:t.npmName,...n?{expectedDescriptorName:n}:{},...t.requiredRange?{requiredRange:t.requiredRange}:{},optional:!1,path:[t.npmName],root:!0}}),i=new Set,a=[],o=[],s=[];for(;r.length>0;){let e=r.shift(),s=i.has(e.npmName),c=n.byNpmName.get(e.npmName);if(s){if(c&&this.assertDescriptorMatches(e,c.descriptor),c&&this.descriptorRangeSatisfied(c.descriptor,e.requiredRange))continue;if(!c)throw Error(`Package ${e.npmName} was resolved but is missing from the installed index`)}if(c&&this.assertDescriptorMatches(e,c.descriptor),c&&this.shouldUseCurrentDescriptor(c.descriptor,e)){a.push({npmName:e.npmName,version:c.version,source:`already-present`}),await this.enqueueDependencies(r,e,c.descriptor),i.add(e.npmName);continue}let l=Ar(e.npmName,e.requiredRange),u,d;try{u=await this.packages.installPackage(l);let r=await this.packages.readInstalledExtensionDescriptor(e.npmName);if(!r)throw Error(`Installed package ${e.npmName} does not contain a valid descriptor.json`);this.assertDescriptorMatches(e,r),this.assertDescriptorVersionSatisfies(e,r),await this.assertDependentsCompatible(e.npmName,r.version,n,t),d=r}catch(t){if(e.optional){o.push({npmName:e.npmName,reason:t instanceof Error?t.message:String(t)});continue}throw t}a.push({npmName:e.npmName,version:u,source:c?`upgraded`:`new`}),c={npmName:e.npmName,version:u,descriptor:d},n.byNpmName.set(e.npmName,c),await this.enqueueDependencies(r,e,d),i.add(e.npmName)}return{installed:a,skipped:o,warnings:s}}async readInstalledIndex(){let e=await this.packages.listInstalledExtensionDescriptors();return{byNpmName:new Map(e.map(e=>[e.npmName,e]))}}descriptorRangeSatisfied(e,t){return t===void 0||Qe(e.version,t)}shouldUseCurrentDescriptor(e,t){return t.root&&t.requiredRange===void 0?!1:this.descriptorRangeSatisfied(e,t.requiredRange)}assertDescriptorMatches(e,t){if(!(e.expectedDescriptorName===void 0||t.name===e.expectedDescriptorName))throw Error(`Installed package ${e.npmName} declares descriptor name "${t.name}", expected "${e.expectedDescriptorName}"`)}assertDescriptorVersionSatisfies(e,t){if(!this.descriptorRangeSatisfied(t,e.requiredRange))throw Error(`Installed package ${e.npmName} descriptor version ${t.version} does not satisfy ${t.name} ${e.requiredRange}`)}async assertDependentsCompatible(e,t,n,r){if(r)return;let i=[];for(let r of n.byNpmName.values())for(let n of r.descriptor.dependencies??[])await this.names.resolveNpmPackageName(n.name)===e&&!Qe(t,n.version)&&i.push(`${r.npmName} requires ${n.name} ${n.version}`);if(i.length>0)throw Error(`Cannot install ${e}; existing dependencies would be violated:\n${i.join(`
4
4
  `)}`)}async enqueueDependencies(e,t,n){for(let r of n.dependencies??[]){let n=await this.names.resolveNpmPackageName(r.name);if(t.path.includes(n))throw Error(`Circular dependency detected: ${[...t.path,n].join(` -> `)}`);e.push({npmName:n,expectedDescriptorName:r.name,requiredRange:r.version,optional:r.optional===!0,path:[...t.path,n],root:!1})}}};function Rr(e){return e.startsWith(`@`)?void 0:e}function zr(e){let t=jr(e);if(t.length===e.length)return{npmName:t};let n=e.slice(t.length+1);return n===`latest`?{npmName:t}:{npmName:t,requiredRange:n}}function Br(e){return e instanceof Error?e.message:String(e)}var Vr=class{registryClient;lookupMapPromise=null;constructor(e){this.registryClient=e}async resolveNpmPackageName(e){if(e.startsWith(`@`))return e;let t;try{t=await this.getLookupMap()}catch(t){throw Error(`Cannot resolve descriptor name "${e}": package registry is unavailable`,{cause:t})}return t.get(e)||`@makaio/${e}`}getLookupMap(){if(this.lookupMapPromise)return this.lookupMapPromise;let e=this.registryClient.getRegistry().then(e=>{let t=new Map;for(let n of[...e.adapters,...e.extensions])n.descriptorName&&t.set(n.descriptorName,n.name);return t}).catch(t=>{throw this.lookupMapPromise===e&&(this.lookupMapPromise=null),t});return this.lookupMapPromise=e,this.lookupMapPromise}},Hr=class{inner;portalMap;constructor(e,t){this.inner=e,this.portalMap=t}async installPackage(e){let t=jr(e),n=this.portalMap.get(t);if(n!==void 0){let e=`${t}@portal:${Nr(n)}`;return this.inner.installPackage(e)}return this.inner.installPackage(e)}readInstalledExtensionDescriptor(e){return this.inner.readInstalledExtensionDescriptor(e)}listInstalledExtensionDescriptors(){return this.inner.listInstalledExtensionDescriptors()}readManifestSnapshot(){return this.inner.readManifestSnapshot()}writeManifestAndReinstall(e){return this.inner.writeManifestAndReinstall(e)}},Ur=class{cache=null;inFlightFetch=null;registryUrl;cacheTtlMs;fetchTimeoutMs;fetchImpl;constructor(e={}){this.registryUrl=e.registryUrl??`https://raw.githubusercontent.com/makaio-ai/makaio/develop/registry/packages.json`,this.cacheTtlMs=e.cacheTtlMs??36e5,this.fetchTimeoutMs=e.fetchTimeoutMs??1e4,this.fetchImpl=e.fetchImpl??fetch}async getRegistry(){if(this.cache&&Date.now()-this.cache.timestamp<this.cacheTtlMs)return this.cache.data;this.inFlightFetch??=this.fetchAndCacheRegistry();try{return await this.inFlightFetch}finally{this.inFlightFetch=null}}async fetchAndCacheRegistry(){let e=new AbortController,t=setTimeout(()=>e.abort(),this.fetchTimeoutMs);try{let t=await this.fetchImpl(this.registryUrl,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.json(),r=vr.parse(n);return this.cache={data:r,timestamp:Date.now()},r}catch(e){let t=e instanceof Error?e:Error(String(e));throw Error(`Failed to fetch package registry`,{cause:t})}finally{clearTimeout(t)}}clearCache(){this.cache=null}},Wr=t(r(),1),Gr=`1.0.0`;function Kr(){let e=Gr;if(typeof e!=`string`||e.length===0)throw Error(`Package manager package metadata must include a string version.`);return`^${e}`}const qr=Kr();var Jr=class extends ct{yarnManager;registryService;localInstaller;dependencyResolver;frameworkPeerRange;frameworkPackagePath;constructor(e,t,n={}){super(e),this.yarnManager=n.yarnManager??new kr(t),this.registryService=n.registryService??new Ur,this.localInstaller=n.localInstaller??new Tr(B.join(t,`extensions`)),this.frameworkPeerRange=n.frameworkPeerRange??qr,this.frameworkPackagePath=n.frameworkPackagePath;let r=n.devPortalPackages?.size?new Hr(this.yarnManager,n.devPortalPackages):this.yarnManager;this.dependencyResolver=n.dependencyResolver??new Lr(r,new Vr(this.registryService))}async onInit(){await this.yarnManager.initialize(),console.info(`[PackageManagerService] Initialized`),this.registerPackageHandlers(),this.registerRegistryHandlers()}normalizePackageName(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}validatePackageNamePayload(e,t){return this.normalizePackageName(e)||(t(),null)}createInvalidPackageNameResult(e){return e?{success:!1,packageName:``,latestVersion:e.latestVersion,error:`Invalid packageName`}:{success:!1,packageName:``,error:`Invalid packageName`,restartRequired:!1}}async emitInstalled(e,t){try{await this.bus.emit(K.installed,{packageName:e,version:t})}catch(e){console.error(`[PackageManagerService] installed emit failed:`,e)}}async emitUninstalled(e){try{await this.bus.emit(K.uninstalled,{packageName:e})}catch(e){console.error(`[PackageManagerService] uninstalled emit failed:`,e)}}registerPackageHandlers(){this.registerListHandler(),this.registerInstallHandler(),this.registerUninstallHandler()}registerListHandler(){this.registerHandler(K.list,async e=>{try{let[t,n]=await Promise.all([this.yarnManager.listPackages(),this.localInstaller.list()]),r=[...t,...n.map(e=>({name:e.name,version:e.version,hasDescriptor:!0,...e.serverImportPath!==void 0&&{serverImportPath:e.serverImportPath}}))];e.setResult({packages:r})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] List failed:`,n),e.setResult({packages:[]})}})}async ensureFrameworkPeer(){try{await this.yarnManager.ensureFrameworkDependency({versionRange:this.frameworkPeerRange,...this.frameworkPackagePath?{localPackagePath:this.frameworkPackagePath}:{}})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to ensure @makaio/framework dependency ${this.frameworkPeerRange}: ${t}`,{cause:e})}}async installNpmPackages(e,t){let n=await this.yarnManager.readManifestSnapshot(),r;try{await this.ensureFrameworkPeer(),r=await this.dependencyResolver.resolve(e,{force:t,snapshot:null})}catch(e){try{await this.yarnManager.writeManifestAndReinstall(n)}catch(t){let n=e instanceof Error?e.message:String(e);throw AggregateError([e,t],`Package install failed and rollback failed: ${n}`)}throw e}for(let e of r.installed)e.source!==`already-present`&&await this.emitInstalled(e.npmName,e.version);let i=r.installed[0];return{success:!0,packageName:i?.npmName??e[0]??``,version:i?.version,restartRequired:!0,installed:[...r.installed],skipped:[...r.skipped],warnings:[...r.warnings]}}registerInstallHandler(){this.registerHandler(K.install,async e=>{let t=e.payload.packageNames??(e.payload.packageName===void 0?[]:[e.payload.packageName]),n=t.map(e=>this.normalizePackageName(e)).filter(e=>e!==null);if(n.length!==t.length||n.length===0){e.setResult(this.createInvalidPackageNameResult());return}let r;if(e.payload.source!==void 0)r={kind:e.payload.source};else{let t=n.map(e=>Ir(e));r=t[0];let i=t.find(e=>e.kind!==r.kind);if(i){e.setResult({success:!1,packageName:``,error:`Cannot mix install sources: ${r.kind} and ${i.kind}`,restartRequired:!1});return}}if(r.kind===`git`){e.setResult({success:!1,packageName:n[0],error:`Git URL installs are not yet supported`,restartRequired:!1});return}if(r.kind===`local`){if(n.length>1){e.setResult({success:!1,packageName:``,error:`Local installs only support a single path`,restartRequired:!1});return}let t=await this.localInstaller.install(n[0]);t.success&&await this.emitInstalled(t.packageName,t.version??`unknown`),e.setResult(t);return}try{e.setResult(await this.installNpmPackages(n,e.payload.force))}catch(t){let r=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Install failed:`,r),e.setResult({success:!1,packageName:n[0]??``,error:r,restartRequired:!1})}})}registerUninstallHandler(){this.registerHandler(K.uninstall,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult())});if(t){if((await this.localInstaller.list()).find(e=>e.name===t)){let n=await this.localInstaller.uninstall(t);n.success&&await this.emitUninstalled(t),e.setResult(n);return}try{await this.yarnManager.uninstallPackage(t),await this.emitUninstalled(t),e.setResult({success:!0,packageName:t,restartRequired:!0})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Uninstall failed:`,r),e.setResult({success:!1,packageName:t,error:r,restartRequired:!1})}}})}registerRegistryHandlers(){this.registerHandler(K.getLatestVersion,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult({latestVersion:`unknown`}))});if(t)try{let n=await this.yarnManager.getLatestVersion(t);e.setResult({success:!0,packageName:t,latestVersion:n})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Version check failed:`,r),e.setResult({success:!1,packageName:t,latestVersion:`unknown`,error:r})}}),this.registerHandler(K.getRegistry,async e=>{try{let t=await this.registryService.getRegistry();e.setResult(t)}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Registry fetch failed:`,n),e.setResult({$schema:`makaio/package-registry/v1`,updatedAt:new Date().toISOString(),adapters:[],extensions:[]})}}),this.registerHandler(K.checkUpdates,async e=>{try{let t=await this.checkForUpdates();e.setResult({updates:t})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Update check failed:`,n),e.setResult({updates:[]})}})}async checkForUpdates(){try{let e=await this.yarnManager.listPackages(),t=[];return await Promise.all(e.map(async e=>{try{let n=await this.yarnManager.getLatestVersion(e.name);Wr.valid(e.version)&&Wr.valid(n)&&Wr.gt(n,e.version)&&t.push({name:e.name,currentVersion:e.version,latestVersion:n,description:e.description})}catch(t){console.warn(`[PackageManagerService] Failed to check updates for %s:`,e.name,t)}})),console.info(`[PackageManagerService] Found %d package updates`,t.length),t}catch(e){throw Error(`Failed to check for updates`,{cause:e})}}};function Yr(e={}){return{name:`makaio.package-manager`,displayName:`Package Manager`,version:`0.1.0`,critical:!0,namespaces:[br],create:t=>new Jr(t.bus,t.makaioHome,{registryService:e.registryService,dependencyResolver:e.dependencyResolver,frameworkPeerRange:e.frameworkPeerRange,frameworkPackagePath:e.frameworkPackagePath,devPortalPackages:e.devPortalPackages})}}function Xr(e){return{filter:e=>!!e.http,async processActivated(t,n){e.add({owner:t,phase:`extension`,mount:e=>n.http.mount(e)})},async processStopped(t){e.remove(t)}}}const Zr={resolve(e,t){return!e&&!t?null:e?t?e.updatedAt>t.updatedAt?e:t:e:t}};function Qr(e){return{scope:e.scope,surface:e.surface??`any`,context:e.context??`any`,viewport:e.viewport??`any`}}function $r(e){return{scope:e.scope,surface:e.surface===`any`?void 0:e.surface,context:e.context===`any`?void 0:e.context,viewport:e.viewport===`any`?void 0:e.viewport}}function ei(e,t){return[`makaio:prefs`,e.scope,e.surface||`any`,e.context||`any`,e.viewport||`any`,t].join(`:`)}function ti(e){return typeof e==`object`&&!!e&&`value`in e&&`updatedAt`in e&&typeof e.value==`string`&&typeof e.updatedAt==`number`}function ni(e){try{let t=JSON.parse(e);return ti(t)?t:{value:JSON.stringify(t),updatedAt:0}}catch{return null}}const ri=pt(`preferences`,e=>({scope:e.text(`scope`).notNull(),surface:e.text(`surface`).notNull().default(`any`),context:e.text(`context`).notNull().default(`any`),viewport:e.text(`viewport`).notNull().default(`any`),category:e.text(`category`).notNull(),value:e.text(`value`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()}),{sqlite:e=>[lt(`preferences_pk`).on(e.scope,e.surface,e.context,e.viewport,e.category)],postgres:e=>[ut(`preferences_pk`).on(e.scope,e.surface,e.context,e.viewport,e.category)]}),ii=ri.sqlite,ai=ri.postgres,oi=ft({preferences:ii},{preferences:ai});function si(e,t,n){let r=[];return n!==void 0&&r.push(U(e.category,n)),t&&(t.scope!==void 0&&r.push(U(e.scope,t.scope)),t.surface!==void 0&&r.push(U(e.surface,t.surface)),t.context!==void 0&&r.push(U(e.context,t.context)),t.viewport!==void 0&&r.push(U(e.viewport,t.viewport))),r}async function ci(e,t,n){let{preferences:r}=bt(e,oi),i=si(r,t,n);return(i.length>0?await e.select().from(r).where(Ct(...i)):await e.select().from(r)).map(e=>{let t;try{t=JSON.parse(e.value)}catch{t=null}let n=yn.safeParse(t);return{key:$r(e),category:e.category,value:n.success?n.data:null,updatedAt:e.updatedAt}})}async function li(e,t,n){let{preferences:r}=bt(e,oi),i=Qr(t),[a]=await e.select().from(r).where(Ct(U(r.scope,i.scope),U(r.surface,i.surface),U(r.context,i.context),U(r.viewport,i.viewport),U(r.category,n))).limit(1);return a}var ui=class{db;conflictResolver;constructor(e){this.db=e.db,this.conflictResolver=e.conflictResolver??Zr}async get(e,t){let n=await this.readFromDb(e,t),r=this.readFromLocalStorage(e,t),i=r?.updatedAt===0?r:null;!n&&r&&!i&&this.removeFromLocalStorage(e,t);let a=this.conflictResolver.resolve(i,n);if(!a)return null;let o;try{o=JSON.parse(a.value)}catch{return null}let s=yn.safeParse(o);return s.success?(await this.syncResolvedPreference(e,t,a,r,n),s.data):null}async set(e,t,n){let r=Date.now(),i=JSON.stringify(n??null);this.writeToLocalStorage(e,t,{value:i,updatedAt:r}),await this.writeToDb(e,t,i,r)}async delete(e,t){this.removeFromLocalStorage(e,t),await this.deleteFromDb(e,t)}async list(e,t){return ci(this.db,e,t)}async writeToDb(e,t,n,r){let{preferences:i}=bt(this.db,oi),a=Qr(e);await this.db.insert(i).values({...a,category:t,value:n,updatedAt:r}).onConflictDoUpdate({target:[i.scope,i.surface,i.context,i.viewport,i.category],set:{value:n,updatedAt:r}})}readFromLocalStorage(e,t){let n=ei(e,t),r=globalThis.localStorage?.getItem(n);return r?ni(r):null}writeToLocalStorage(e,t,n){let r=ei(e,t);try{globalThis.localStorage?.setItem(r,JSON.stringify(n))}catch(e){console.warn(`[StorageCoordinator] localStorage write failed:`,e)}}removeFromLocalStorage(e,t){let n=ei(e,t);try{globalThis.localStorage?.removeItem(n)}catch(e){console.warn(`[StorageCoordinator] localStorage delete failed:`,e)}}async syncResolvedPreference(e,t,n,r,i){this.isSameStoredPreference(n,i)||await this.writeToDb(e,t,n.value,n.updatedAt),r&&!this.isSameStoredPreference(n,r)&&this.writeToLocalStorage(e,t,n)}isSameStoredPreference(e,t){return!e||!t?!1:e.value===t.value&&e.updatedAt===t.updatedAt}async readFromDb(e,t){let n=await li(this.db,e,t);return n?{value:n.value,updatedAt:n.updatedAt}:null}async deleteFromDb(e,t){let{preferences:n}=bt(this.db,oi),r=Qr(e);await this.db.delete(n).where(Ct(U(n.scope,r.scope),U(n.surface,r.surface),U(n.context,r.context),U(n.viewport,r.viewport),U(n.category,t)))}};function di(e,t,n){let r=new ui({db:t}),i=e.on(bn.get,async e=>{let{key:t,category:n}=e.payload,i=await r.get(t,n);e.setResult({value:i})}),a=e.on(bn.set,async e=>{let{key:t,category:n,value:i}=e.payload;await r.set(t,n,i),e.setResult({success:!0})}),o=e.on(bn.delete,async e=>{let{key:t,category:n}=e.payload;await r.delete(t,n),e.setResult({success:!0})}),s=e.on(bn.list,async e=>{let{key:t,category:n}=e.payload,i=await r.list(t,n);e.setResult({items:i})});return()=>{i(),a(),o(),s()}}const fi={name:`preferences-storage`,displayName:`Preferences Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:vt(di)}};function pi(e,t){let n=new Map;for(let[r,i]of e)t.has(r)&&n.set(r,i);return n}function mi(...e){let t=new Map;for(let n of e)for(let[e,r]of n)t.set(e,{...t.get(e)??{},...r});return t}function hi(e,t){let n=[e.on(Ue.get,async e=>{let n=await t.getConfig();e.setResult({config:n})}),e.on(Ue.update,async e=>{let n=He.parse(e.payload.config),r=await t.prepareConfigForPersistence(n);await t.saveConfig(r),e.setResult({success:!0})})];return()=>{for(let e of n)e()}}var J=n((e=>{let t=Symbol.for(`yaml.alias`),n=Symbol.for(`yaml.document`),r=Symbol.for(`yaml.map`),i=Symbol.for(`yaml.pair`),a=Symbol.for(`yaml.scalar`),o=Symbol.for(`yaml.seq`),s=Symbol.for(`yaml.node.type`),c=e=>!!e&&typeof e==`object`&&e[s]===t,l=e=>!!e&&typeof e==`object`&&e[s]===n,u=e=>!!e&&typeof e==`object`&&e[s]===r,d=e=>!!e&&typeof e==`object`&&e[s]===i,f=e=>!!e&&typeof e==`object`&&e[s]===a,p=e=>!!e&&typeof e==`object`&&e[s]===o;function m(e){if(e&&typeof e==`object`)switch(e[s]){case r:case o:return!0}return!1}function h(e){if(e&&typeof e==`object`)switch(e[s]){case t:case r:case a:case o:return!0}return!1}e.ALIAS=t,e.DOC=n,e.MAP=r,e.NODE_TYPE=s,e.PAIR=i,e.SCALAR=a,e.SEQ=o,e.hasAnchor=e=>(f(e)||m(e))&&!!e.anchor,e.isAlias=c,e.isCollection=m,e.isDocument=l,e.isMap=u,e.isNode=h,e.isPair=d,e.isScalar=f,e.isSeq=p})),gi=n((e=>{var t=J();let n=Symbol(`break visit`),r=Symbol(`skip children`),i=Symbol(`remove node`);function a(e,n){let r=l(n);t.isDocument(e)?o(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):o(null,e,r,Object.freeze([]))}a.BREAK=n,a.SKIP=r,a.REMOVE=i;function o(e,r,a,s){let c=u(e,r,a,s);if(t.isNode(c)||t.isPair(c))return d(e,s,c),o(e,c,a,s);if(typeof c!=`symbol`){if(t.isCollection(r)){s=Object.freeze(s.concat(r));for(let e=0;e<r.items.length;++e){let t=o(e,r.items[e],a,s);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){s=Object.freeze(s.concat(r));let e=o(`key`,r.key,a,s);if(e===n)return n;e===i&&(r.key=null);let t=o(`value`,r.value,a,s);if(t===n)return n;t===i&&(r.value=null)}}return c}async function s(e,n){let r=l(n);t.isDocument(e)?await c(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):await c(null,e,r,Object.freeze([]))}s.BREAK=n,s.SKIP=r,s.REMOVE=i;async function c(e,r,a,o){let s=await u(e,r,a,o);if(t.isNode(s)||t.isPair(s))return d(e,o,s),c(e,s,a,o);if(typeof s!=`symbol`){if(t.isCollection(r)){o=Object.freeze(o.concat(r));for(let e=0;e<r.items.length;++e){let t=await c(e,r.items[e],a,o);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){o=Object.freeze(o.concat(r));let e=await c(`key`,r.key,a,o);if(e===n)return n;e===i&&(r.key=null);let t=await c(`value`,r.value,a,o);if(t===n)return n;t===i&&(r.value=null)}}return s}function l(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function u(e,n,r,i){if(typeof r==`function`)return r(e,n,i);if(t.isMap(n))return r.Map?.(e,n,i);if(t.isSeq(n))return r.Seq?.(e,n,i);if(t.isPair(n))return r.Pair?.(e,n,i);if(t.isScalar(n))return r.Scalar?.(e,n,i);if(t.isAlias(n))return r.Alias?.(e,n,i)}function d(e,n,r){let i=n[n.length-1];if(t.isCollection(i))i.items[e]=r;else if(t.isPair(i))e===`key`?i.key=r:i.value=r;else if(t.isDocument(i))i.contents=r;else{let e=t.isAlias(i)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}e.visit=a,e.visitAsync=s})),_i=n((e=>{var t=J(),n=gi();let r={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},i=e=>e.replace(/[!,[\]{}]/g,e=>r[e]);var a=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+i(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],i=Object.entries(this.tags),a;if(e&&i.length>0&&t.isNode(e.contents)){let r={};n.visit(e.contents,(e,n)=>{t.isNode(n)&&n.tag&&(r[n.tag]=!0)}),a=Object.keys(r)}else a=[];for(let[t,n]of i)t===`!!`&&n===`tag:yaml.org,2002:`||(!e||a.some(e=>e.startsWith(n)))&&r.push(`%TAG ${t} ${n}`);return r.join(`
@@ -18,7 +18,7 @@ interface ConfiguredDiscoveryRoot {
18
18
  declare const WorkflowRunnerConfigSchema: z.ZodObject<{
19
19
  mode: z.ZodOptional<z.ZodEnum<{
20
20
  piscina: "piscina";
21
- "worker-node": "worker-node";
21
+ worker: "worker";
22
22
  "in-process": "in-process";
23
23
  }>>;
24
24
  maxConcurrency: z.ZodOptional<z.ZodNumber>;
@@ -35,7 +35,7 @@ declare const MakaioConfigSchema: z.ZodObject<{
35
35
  workflowRunner: z.ZodOptional<z.ZodObject<{
36
36
  mode: z.ZodOptional<z.ZodEnum<{
37
37
  piscina: "piscina";
38
- "worker-node": "worker-node";
38
+ worker: "worker";
39
39
  "in-process": "in-process";
40
40
  }>>;
41
41
  maxConcurrency: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- import{enumerateDescriptorPaths as e}from"./extension-discovery.mjs";import{n as t}from"../esm-i-S5TW72.mjs";import{z as n}from"zod";import{pathToFileURL as r}from"node:url";import*as i from"node:fs/promises";import*as a from"node:path";import{parseExtensionDescriptor as o}from"@makaio/framework/contracts";import*as s from"node:os";const c=`MAKAIO_CONFIG_FILE`,l=`MAKAIO_HOME`,u=[`makaio.config.ts`,`makaio.config.js`,`makaio.config.json`],d=n.object({mode:n.enum([`in-process`,`piscina`,`worker-node`]).optional(),maxConcurrency:n.number().int().positive().optional(),idleTimeoutMs:n.number().int().positive().optional()}).strict(),f=n.object({extensions:n.object({autoDiscover:n.boolean().optional(),discoveryPaths:n.array(n.string().min(1)).optional(),include:n.array(n.string().min(1)).optional(),exclude:n.array(n.string().min(1)).optional()}).optional(),launcherCommand:n.string().min(1).optional(),workflowRunner:d.optional(),packageConfigDefaults:n.record(n.string().min(1),n.record(n.string(),n.unknown())).optional()}).strict();function p(e){return e}function m(e=process.env){let t=e[l]?.trim();return t&&t.length>0?a.resolve(t):a.join(s.homedir(),`.makaio`)}function h(e,t){let n=f.safeParse(e??{});if(!n.success)throw O(`Invalid Makaio runtime config`,t.source,n.error);let r=n.data,i=r.extensions??{},a=g(i.discoveryPaths,t);return{extensions:{autoDiscover:i.autoDiscover??!0,discoveryPaths:a.map(e=>e.path),discoveryRoots:a,include:i.include??[],exclude:i.exclude??[]},launcherCommand:r.launcherCommand??`makaio`,workflowRunner:r.workflowRunner,packageConfigDefaults:new Map(Object.entries(r.packageConfigDefaults??{}))}}function g(e,t){return e===void 0?[{path:a.join(t.makaioHome,`extensions`),source:`installed`},{path:a.join(t.makaioHome,`node_modules`),source:`global-npm`}]:e.map(e=>({path:_(e,t.baseDir),source:`local`}))}function _(e,t){return a.isAbsolute(e)?e:a.resolve(t,e)}async function v(e){let t=e.env?.[c]?.trim(),n=e.configPath??(t||void 0);if(n!==void 0){let e=a.resolve(n);return await A(e,`runtime config`),e}for(let t of u){let n=a.join(e.makaioHome,t);if(await k(n))return n}if(process.env.NODE_ENV!==`production`){let t=process.cwd();if(t!==e.makaioHome)for(let e of u){let n=a.join(t,e);if(await k(n))return n}}}async function y(e){let t=await v(e);if(t===void 0)return{config:h({},{baseDir:e.makaioHome,makaioHome:e.makaioHome})};let n;try{n=await D(t)}catch(e){throw O(`Failed to load Makaio runtime config`,t,e)}return{configPath:t,config:h(n,{baseDir:a.dirname(t),makaioHome:e.makaioHome,source:t})}}async function b(e){let{config:t}=await y(e);return{launcherCommand:t.launcherCommand,discovery:x(t),workflowRunner:t.workflowRunner,packageConfigDefaults:t.packageConfigDefaults}}function x(e){return new S(e)}var S=class{config;constructor(e){this.config=e}async discover(){let e=new Map;for(let t of this.config.extensions.discoveryRoots)for(let n of await C(t))!e.has(n.descriptor.name)&&E(n.descriptor.name,this.config)&&e.set(n.descriptor.name,n);return[...e.values()]}};async function C(t){return w(await e(t.path),t.source)}async function w(e,t){let n=[];for(let r of e){let e=await T(r,t);e!==void 0&&n.push(e)}return n}async function T(e,t){try{let n=await i.readFile(e,`utf-8`);return{descriptor:o(JSON.parse(n)),extensionPath:a.dirname(e),source:t}}catch(t){console.warn(`[makaio-config] Skipping invalid descriptor at ${e}:`,t instanceof Error?t.message:t);return}}function E(e,n){let{autoDiscover:r,include:i,exclude:a}=n.extensions;return a.some(n=>t(e,n))?!1:i.length>0?i.some(n=>t(e,n)):r}async function D(e){if(e.endsWith(`.json`))return JSON.parse(await i.readFile(e,`utf-8`));let t=await import(r(e).href);return t.default??t}function O(e,t,n){let r=t===void 0?``:` at ${t}`,i=n instanceof Error?n.message:String(n);return Error(`${e}${r}: ${i}`,{cause:n})}async function k(e){return i.stat(e).then(e=>e.isFile()).catch(()=>!1)}async function A(e,t){if(!await k(e))throw Error(`Missing ${t}: ${e}`)}export{c as MAKAIO_CONFIG_FILE_ENV,l as MAKAIO_HOME_ENV,b as buildConfiguredRuntimeOptions,x as createMakaioConfigDiscovery,p as defineMakaioConfig,y as loadMakaioConfig,h as parseMakaioConfig,v as resolveMakaioConfigPath,m as resolveMakaioHome,E as shouldIncludeExtension};
1
+ import{enumerateDescriptorPaths as e}from"./extension-discovery.mjs";import{n as t}from"../esm-i-S5TW72.mjs";import{z as n}from"zod";import{pathToFileURL as r}from"node:url";import*as i from"node:fs/promises";import*as a from"node:path";import{parseExtensionDescriptor as o}from"@makaio/framework/contracts";import*as s from"node:os";const c=`MAKAIO_CONFIG_FILE`,l=`MAKAIO_HOME`,u=[`makaio.config.ts`,`makaio.config.js`,`makaio.config.json`],d=n.object({mode:n.enum([`in-process`,`piscina`,`worker`]).optional(),maxConcurrency:n.number().int().positive().optional(),idleTimeoutMs:n.number().int().positive().optional()}).strict(),f=n.object({extensions:n.object({autoDiscover:n.boolean().optional(),discoveryPaths:n.array(n.string().min(1)).optional(),include:n.array(n.string().min(1)).optional(),exclude:n.array(n.string().min(1)).optional()}).optional(),launcherCommand:n.string().min(1).optional(),workflowRunner:d.optional(),packageConfigDefaults:n.record(n.string().min(1),n.record(n.string(),n.unknown())).optional()}).strict();function p(e){return e}function m(e=process.env){let t=e[l]?.trim();return t&&t.length>0?a.resolve(t):a.join(s.homedir(),`.makaio`)}function h(e,t){let n=f.safeParse(e??{});if(!n.success)throw O(`Invalid Makaio runtime config`,t.source,n.error);let r=n.data,i=r.extensions??{},a=g(i.discoveryPaths,t);return{extensions:{autoDiscover:i.autoDiscover??!0,discoveryPaths:a.map(e=>e.path),discoveryRoots:a,include:i.include??[],exclude:i.exclude??[]},launcherCommand:r.launcherCommand??`makaio`,workflowRunner:r.workflowRunner,packageConfigDefaults:new Map(Object.entries(r.packageConfigDefaults??{}))}}function g(e,t){return e===void 0?[{path:a.join(t.makaioHome,`extensions`),source:`installed`},{path:a.join(t.makaioHome,`node_modules`),source:`global-npm`}]:e.map(e=>({path:_(e,t.baseDir),source:`local`}))}function _(e,t){return a.isAbsolute(e)?e:a.resolve(t,e)}async function v(e){let t=e.env?.[c]?.trim(),n=e.configPath??(t||void 0);if(n!==void 0){let e=a.resolve(n);return await A(e,`runtime config`),e}for(let t of u){let n=a.join(e.makaioHome,t);if(await k(n))return n}if(process.env.NODE_ENV!==`production`){let t=process.cwd();if(t!==e.makaioHome)for(let e of u){let n=a.join(t,e);if(await k(n))return n}}}async function y(e){let t=await v(e);if(t===void 0)return{config:h({},{baseDir:e.makaioHome,makaioHome:e.makaioHome})};let n;try{n=await D(t)}catch(e){throw O(`Failed to load Makaio runtime config`,t,e)}return{configPath:t,config:h(n,{baseDir:a.dirname(t),makaioHome:e.makaioHome,source:t})}}async function b(e){let{config:t}=await y(e);return{launcherCommand:t.launcherCommand,discovery:x(t),workflowRunner:t.workflowRunner,packageConfigDefaults:t.packageConfigDefaults}}function x(e){return new S(e)}var S=class{config;constructor(e){this.config=e}async discover(){let e=new Map;for(let t of this.config.extensions.discoveryRoots)for(let n of await C(t))!e.has(n.descriptor.name)&&E(n.descriptor.name,this.config)&&e.set(n.descriptor.name,n);return[...e.values()]}};async function C(t){return w(await e(t.path),t.source)}async function w(e,t){let n=[];for(let r of e){let e=await T(r,t);e!==void 0&&n.push(e)}return n}async function T(e,t){try{let n=await i.readFile(e,`utf-8`);return{descriptor:o(JSON.parse(n)),extensionPath:a.dirname(e),source:t}}catch(t){console.warn(`[makaio-config] Skipping invalid descriptor at ${e}:`,t instanceof Error?t.message:t);return}}function E(e,n){let{autoDiscover:r,include:i,exclude:a}=n.extensions;return a.some(n=>t(e,n))?!1:i.length>0?i.some(n=>t(e,n)):r}async function D(e){if(e.endsWith(`.json`))return JSON.parse(await i.readFile(e,`utf-8`));let t=await import(r(e).href);return t.default??t}function O(e,t,n){let r=t===void 0?``:` at ${t}`,i=n instanceof Error?n.message:String(n);return Error(`${e}${r}: ${i}`,{cause:n})}async function k(e){return i.stat(e).then(e=>e.isFile()).catch(()=>!1)}async function A(e,t){if(!await k(e))throw Error(`Missing ${t}: ${e}`)}export{c as MAKAIO_CONFIG_FILE_ENV,l as MAKAIO_HOME_ENV,b as buildConfiguredRuntimeOptions,x as createMakaioConfigDiscovery,p as defineMakaioConfig,y as loadMakaioConfig,h as parseMakaioConfig,v as resolveMakaioConfigPath,m as resolveMakaioHome,E as shouldIncludeExtension};
@@ -1 +1 @@
1
- import{randomBytes as e}from"node:crypto";import{getFullSubjectForSubjectDefinition as t}from"@makaio/framework/core";import{ArtifactSubjects as n,SubagentSubjects as r,WorkerNodeSubjects as i,WorkflowSubjects as a}from"@makaio/framework/contracts";import{registerHmacIdentitySecret as o,resolveHmacIdentityPeer as s,resolveHmacIdentitySecret as c,rotateHmacIdentitySecret as l}from"@makaio/framework/node/transports";import{AdapterSubsystemSubjects as u}from"@makaio/framework/services/adapter-subsystem";import{WorkflowStorageSubjects as d}from"@makaio/framework/workflow-engine";const f=[i.control[`attempt-ready`],i.control.outcome.submit,a.getRunContext,u.listAdapters,a.bootstrapAuthorityState,a.finalizeDelegateResult,d.getExecution,d.setFrame,d.setSpan,d.listFrames,d.getGateInstance,d.setGateInstance,a.frame.started,a.frame.completed,a.frame.failed,a.frame.sessionLinked,a.execution.progress,a.gate.suspended,a.gate.resumed,a.gate.resolved,a.gate.respond,a.state.get,a.state.patch,a.resolveAgent,a.resolveRole,n.query,n.create,n.revise,a.artifact.updated,r.spawn,r.await,r.getStatus,r.kill];function p(e){return[...f.map(t),`workflow.${e}.cancel`]}function m(e){let{executionAttemptId:t,executionId:n,secret:r}=e,i=e.allowedSubjects??p(n);return{secret:r,cleanup:o(t,r,{peerKind:`workflow-execution-attempt`,claims:{executionId:n},allowedSubjects:i})}}function h(t){let n=e(32).toString(`hex`);return m({...t,secret:n})}function g(t){let{executionAttemptId:n,executionId:r}=t,i=s(n);if(i?.kind!==`workflow-execution-attempt`||i.claims?.executionId!==r)throw Error(`Cannot rotate workflow execution bus secret: attempt "${n}" is not registered for execution "${r}"`);let a=e(32).toString(`hex`);return{secret:a,cleanup:l(n,a)}}function _(e){return c(e.executionAttemptId)===null?h(e):g(e)}function v(e){return c(e)??void 0}export{p as buildExecutionAttemptAllowedSubjects,_ as mintOrRotateWorkflowExecutionBusSecret,h as mintWorkflowExecutionBusSecret,m as registerWorkflowExecutionBusSecret,v as resolveWorkflowExecutionBusSecret,g as rotateWorkflowExecutionBusSecret};
1
+ import{randomBytes as e}from"node:crypto";import{getFullSubjectForSubjectDefinition as t}from"@makaio/framework/core";import{ArtifactSubjects as n,SubagentSubjects as r,WorkerSubjects as i,WorkflowSubjects as a}from"@makaio/framework/contracts";import{registerHmacIdentitySecret as o,resolveHmacIdentityPeer as s,resolveHmacIdentitySecret as c,rotateHmacIdentitySecret as l}from"@makaio/framework/node/transports";import{AdapterSubsystemSubjects as u}from"@makaio/framework/services/adapter-subsystem";import{WorkflowStorageSubjects as d}from"@makaio/framework/workflow-engine";const f=[i.control[`attempt-ready`],i.control.outcome.submit,a.getRunContext,u.listAdapters,a.bootstrapAuthorityState,a.finalizeDelegateResult,d.getExecution,d.setFrame,d.setSpan,d.listFrames,d.getGateInstance,d.setGateInstance,a.frame.started,a.frame.completed,a.frame.failed,a.frame.sessionLinked,a.execution.progress,a.gate.suspended,a.gate.resumed,a.gate.resolved,a.gate.respond,a.state.get,a.state.patch,a.resolveAgent,a.resolveRole,n.query,n.create,n.revise,a.artifact.updated,r.spawn,r.await,r.getStatus,r.kill];function p(e){return[...f.map(t),`workflow.${e}.cancel`]}function m(e){let{executionAttemptId:t,executionId:n,secret:r}=e,i=e.allowedSubjects??p(n);return{secret:r,cleanup:o(t,r,{peerKind:`workflow-execution-attempt`,claims:{executionId:n},allowedSubjects:i})}}function h(t){let n=e(32).toString(`hex`);return m({...t,secret:n})}function g(t){let{executionAttemptId:n,executionId:r}=t,i=s(n);if(i?.kind!==`workflow-execution-attempt`||i.claims?.executionId!==r)throw Error(`Cannot rotate workflow execution bus secret: attempt "${n}" is not registered for execution "${r}"`);let a=e(32).toString(`hex`);return{secret:a,cleanup:l(n,a)}}function _(e){return c(e.executionAttemptId)===null?h(e):g(e)}function v(e){return c(e)??void 0}export{p as buildExecutionAttemptAllowedSubjects,_ as mintOrRotateWorkflowExecutionBusSecret,h as mintWorkflowExecutionBusSecret,m as registerWorkflowExecutionBusSecret,v as resolveWorkflowExecutionBusSecret,g as rotateWorkflowExecutionBusSecret};
@@ -1,2 +1,2 @@
1
- import { $ as WorkspaceRootResolver, A as submitOutcomeWithAck, B as ThinWorkflowPiscinaRunnerOptions, C as PiscinaThinWorkflowProvider, D as OutcomeReconnect, E as OutcomeDeliveryError, F as createNodeWorkflowRunner, I as createNodeWorkflowRunnerPackageOptions, L as ThinWorkflowPiscinaRunner, M as WorkerNodeRunnerOptions, N as CreateNodeWorkflowRunnerPackageOptionsParams, O as OutcomeSubmitPayload, P as NodeWorkflowRunnerPackageOptions, Q as ParsedSriIntegrity, R as IWorkflowRunner, S as InProcessWorkflowRunnerOptions, T as DELIVERED_DECISIONS, V as WorkflowRunResult, X as LocalDirectoryMaterializerOptions, Z as MaterializationError, _ as IsolatedWorkflowRuntimeContext, a as HeadlessWorkerBootstrapCredentials, at as materializeLocalDirectory, b as createIsolatedWorkflowRuntime, c as HeadlessWorkerExecutor, ct as WorkflowWorkerEntryMode, d as HeadlessWorkflowWorkerDeps, et as assertContainedIn, f as HeadlessWorkflowWorkerResult, g as IsolatedWorkflowRuntime, h as CreateIsolatedWorkflowRuntimeOptions, i as HeadlessWorkerBootstrap, it as computeFileDigest, j as WorkerNodeRunner, k as OutcomeSubmitRetryConfig, l as HeadlessWorkerMaterializer, lt as WorkflowWorkerEntryResolverOptions, m as runHeadlessWorkflowWorker, n as loadWorkflowModules, nt as computeContributionPackageDigest, o as HeadlessWorkerBusConnector, ot as parseSriIntegrity, p as MaterializedWorkspace, r as loadWorkflowFromConfig, rt as computeDirectoryDigest, s as HeadlessWorkerContributionLoader, st as verifyContribution, t as loadWorkflowModule, tt as assertNoSymlinkEscape, u as HeadlessWorkerPostCommitObserver, ut as resolveWorkflowWorkerEntry, v as WorkflowRuntimeAuthorityConnector, w as PiscinaThinWorkflowProviderOptions, x as InProcessWorkflowRunner, y as WorkflowRuntimeContributionLoader, z as RuntimeLoadedWorkflow } from "../../index-CMekqu_D.mjs";
2
- export { CreateIsolatedWorkflowRuntimeOptions, CreateNodeWorkflowRunnerPackageOptionsParams, DELIVERED_DECISIONS, HeadlessWorkerBootstrap, HeadlessWorkerBootstrapCredentials, HeadlessWorkerBusConnector, HeadlessWorkerContributionLoader, HeadlessWorkerExecutor, HeadlessWorkerMaterializer, HeadlessWorkerPostCommitObserver, HeadlessWorkflowWorkerDeps, HeadlessWorkflowWorkerResult, IWorkflowRunner, InProcessWorkflowRunner, InProcessWorkflowRunnerOptions, IsolatedWorkflowRuntime, IsolatedWorkflowRuntimeContext, LocalDirectoryMaterializerOptions, MaterializationError, MaterializedWorkspace, NodeWorkflowRunnerPackageOptions, OutcomeDeliveryError, OutcomeReconnect, OutcomeSubmitPayload, OutcomeSubmitRetryConfig, ParsedSriIntegrity, PiscinaThinWorkflowProvider, PiscinaThinWorkflowProviderOptions, RuntimeLoadedWorkflow, ThinWorkflowPiscinaRunner, ThinWorkflowPiscinaRunnerOptions, WorkerNodeRunner, WorkerNodeRunnerOptions, WorkflowRunResult, WorkflowRuntimeAuthorityConnector, WorkflowRuntimeContributionLoader, WorkflowWorkerEntryMode, WorkflowWorkerEntryResolverOptions, WorkspaceRootResolver, assertContainedIn, assertNoSymlinkEscape, computeContributionPackageDigest, computeDirectoryDigest, computeFileDigest, createIsolatedWorkflowRuntime, createNodeWorkflowRunner, createNodeWorkflowRunnerPackageOptions, loadWorkflowFromConfig, loadWorkflowModule, loadWorkflowModules, materializeLocalDirectory, parseSriIntegrity, resolveWorkflowWorkerEntry, runHeadlessWorkflowWorker, submitOutcomeWithAck, verifyContribution };
1
+ import { $ as WorkspaceRootResolver, A as submitOutcomeWithAck, B as ThinWorkflowPiscinaRunnerOptions, C as PiscinaThinWorkflowProvider, D as OutcomeReconnect, E as OutcomeDeliveryError, F as createNodeWorkflowRunner, I as createNodeWorkflowRunnerPackageOptions, L as ThinWorkflowPiscinaRunner, M as WorkerRunnerOptions, N as CreateNodeWorkflowRunnerPackageOptionsParams, O as OutcomeSubmitPayload, P as NodeWorkflowRunnerPackageOptions, Q as ParsedSriIntegrity, R as IWorkflowRunner, S as InProcessWorkflowRunnerOptions, T as DELIVERED_DECISIONS, V as WorkflowRunResult, X as LocalDirectoryMaterializerOptions, Z as MaterializationError, _ as IsolatedWorkflowRuntimeContext, a as HeadlessWorkerBootstrapCredentials, at as materializeLocalDirectory, b as createIsolatedWorkflowRuntime, c as HeadlessWorkerExecutor, ct as WorkflowWorkerEntryMode, d as HeadlessWorkflowWorkerDeps, et as assertContainedIn, f as HeadlessWorkflowWorkerResult, g as IsolatedWorkflowRuntime, h as CreateIsolatedWorkflowRuntimeOptions, i as HeadlessWorkerBootstrap, it as computeFileDigest, j as WorkerRunner, k as OutcomeSubmitRetryConfig, l as HeadlessWorkerMaterializer, lt as WorkflowWorkerEntryResolverOptions, m as runHeadlessWorkflowWorker, n as loadWorkflowModules, nt as computeContributionPackageDigest, o as HeadlessWorkerBusConnector, ot as parseSriIntegrity, p as MaterializedWorkspace, r as loadWorkflowFromConfig, rt as computeDirectoryDigest, s as HeadlessWorkerContributionLoader, st as verifyContribution, t as loadWorkflowModule, tt as assertNoSymlinkEscape, u as HeadlessWorkerPostCommitObserver, ut as resolveWorkflowWorkerEntry, v as WorkflowRuntimeAuthorityConnector, w as PiscinaThinWorkflowProviderOptions, x as InProcessWorkflowRunner, y as WorkflowRuntimeContributionLoader, z as RuntimeLoadedWorkflow } from "../../index-C6aSnO8m.mjs";
2
+ export { CreateIsolatedWorkflowRuntimeOptions, CreateNodeWorkflowRunnerPackageOptionsParams, DELIVERED_DECISIONS, HeadlessWorkerBootstrap, HeadlessWorkerBootstrapCredentials, HeadlessWorkerBusConnector, HeadlessWorkerContributionLoader, HeadlessWorkerExecutor, HeadlessWorkerMaterializer, HeadlessWorkerPostCommitObserver, HeadlessWorkflowWorkerDeps, HeadlessWorkflowWorkerResult, IWorkflowRunner, InProcessWorkflowRunner, InProcessWorkflowRunnerOptions, IsolatedWorkflowRuntime, IsolatedWorkflowRuntimeContext, LocalDirectoryMaterializerOptions, MaterializationError, MaterializedWorkspace, NodeWorkflowRunnerPackageOptions, OutcomeDeliveryError, OutcomeReconnect, OutcomeSubmitPayload, OutcomeSubmitRetryConfig, ParsedSriIntegrity, PiscinaThinWorkflowProvider, PiscinaThinWorkflowProviderOptions, RuntimeLoadedWorkflow, ThinWorkflowPiscinaRunner, ThinWorkflowPiscinaRunnerOptions, WorkerRunner, WorkerRunnerOptions, WorkflowRunResult, WorkflowRuntimeAuthorityConnector, WorkflowRuntimeContributionLoader, WorkflowWorkerEntryMode, WorkflowWorkerEntryResolverOptions, WorkspaceRootResolver, assertContainedIn, assertNoSymlinkEscape, computeContributionPackageDigest, computeDirectoryDigest, computeFileDigest, createIsolatedWorkflowRuntime, createNodeWorkflowRunner, createNodeWorkflowRunnerPackageOptions, loadWorkflowFromConfig, loadWorkflowModule, loadWorkflowModules, materializeLocalDirectory, parseSriIntegrity, resolveWorkflowWorkerEntry, runHeadlessWorkflowWorker, submitOutcomeWithAck, verifyContribution };
@@ -1 +1 @@
1
- import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../../workflow-worker-aNbdgqml.mjs";import{i as x,n as S,r as C}from"../../await-trigger-Bkg2BQfg.mjs";export{c as DELIVERED_DECISIONS,l as InProcessWorkflowRunner,p as MaterializationError,t as OutcomeDeliveryError,m as PiscinaThinWorkflowProvider,a as ThinWorkflowPiscinaRunner,_ as WorkerNodeRunner,u as assertContainedIn,s as assertNoSymlinkEscape,o as computeContributionPackageDigest,e as computeDirectoryDigest,v as computeFileDigest,d as createIsolatedWorkflowRuntime,h as createNodeWorkflowRunner,r as createNodeWorkflowRunnerPackageOptions,S as loadWorkflowFromConfig,C as loadWorkflowModule,x as loadWorkflowModules,b as materializeLocalDirectory,n as parseSriIntegrity,i as resolveWorkflowWorkerEntry,g as runHeadlessWorkflowWorker,f as submitOutcomeWithAck,y as verifyContribution};
1
+ import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../../workflow-worker-Dul-wcOR.mjs";import{i as x,n as S,r as C}from"../../await-trigger-Bkg2BQfg.mjs";export{c as DELIVERED_DECISIONS,l as InProcessWorkflowRunner,p as MaterializationError,t as OutcomeDeliveryError,m as PiscinaThinWorkflowProvider,a as ThinWorkflowPiscinaRunner,_ as WorkerRunner,u as assertContainedIn,s as assertNoSymlinkEscape,o as computeContributionPackageDigest,e as computeDirectoryDigest,v as computeFileDigest,d as createIsolatedWorkflowRuntime,h as createNodeWorkflowRunner,r as createNodeWorkflowRunnerPackageOptions,S as loadWorkflowFromConfig,C as loadWorkflowModule,x as loadWorkflowModules,b as materializeLocalDirectory,n as parseSriIntegrity,i as resolveWorkflowWorkerEntry,g as runHeadlessWorkflowWorker,f as submitOutcomeWithAck,y as verifyContribution};
@@ -18,8 +18,8 @@ declare const AdapterSubsystemSchemas: {
18
18
  config: z.ZodNullable<z.ZodObject<{
19
19
  description: z.ZodOptional<z.ZodString>;
20
20
  displayName: z.ZodOptional<z.ZodString>;
21
- clientId: z.ZodOptional<z.ZodString>;
22
21
  protocol: z.ZodOptional<z.ZodString>;
22
+ clientId: z.ZodOptional<z.ZodString>;
23
23
  helpLinks: z.ZodOptional<z.ZodArray<z.ZodObject<{
24
24
  label: z.ZodString;
25
25
  url: z.ZodString;
@@ -46,8 +46,8 @@ declare const AdapterSubsystemSchemas: {
46
46
  configs: z.ZodArray<z.ZodObject<{
47
47
  description: z.ZodOptional<z.ZodString>;
48
48
  displayName: z.ZodOptional<z.ZodString>;
49
- clientId: z.ZodOptional<z.ZodString>;
50
49
  protocol: z.ZodOptional<z.ZodString>;
50
+ clientId: z.ZodOptional<z.ZodString>;
51
51
  helpLinks: z.ZodOptional<z.ZodArray<z.ZodObject<{
52
52
  label: z.ZodString;
53
53
  url: z.ZodString;
@@ -1717,8 +1717,8 @@ declare const AdapterSubsystemSchemas: {
1717
1717
  config: z.ZodObject<{
1718
1718
  description: z.ZodOptional<z.ZodString>;
1719
1719
  displayName: z.ZodOptional<z.ZodString>;
1720
- clientId: z.ZodOptional<z.ZodString>;
1721
1720
  protocol: z.ZodOptional<z.ZodString>;
1721
+ clientId: z.ZodOptional<z.ZodString>;
1722
1722
  helpLinks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1723
1723
  label: z.ZodString;
1724
1724
  url: z.ZodString;
@@ -3122,8 +3122,8 @@ type BindingRecord = z.infer<typeof BindingRecordSchema>;
3122
3122
  declare const AdapterFileConfigSchema: z.ZodObject<{
3123
3123
  description: z.ZodOptional<z.ZodString>;
3124
3124
  displayName: z.ZodOptional<z.ZodString>;
3125
- clientId: z.ZodOptional<z.ZodString>;
3126
3125
  protocol: z.ZodOptional<z.ZodString>;
3126
+ clientId: z.ZodOptional<z.ZodString>;
3127
3127
  helpLinks: z.ZodOptional<z.ZodArray<z.ZodObject<{
3128
3128
  label: z.ZodString;
3129
3129
  url: z.ZodString;
@@ -5,7 +5,7 @@ import { z } from "zod";
5
5
  * SubagentTemplate - User-configured template stored in settings.
6
6
  *
7
7
  * A convenience layer over the Subagent system for user-configured background
8
- * tasks. Not to be confused with WorkerNode (one-shot workflow execution unit).
8
+ * tasks. Not to be confused with Worker (the allocation for a one-shot workflow execution).
9
9
  */
10
10
  declare const SubagentTemplateSchema: z.ZodObject<{
11
11
  id: z.ZodString;
@@ -46,6 +46,7 @@ declare const SubagentTemplateCreateSchema: z.ZodObject<{
46
46
  name: z.ZodString;
47
47
  enabled: z.ZodDefault<z.ZodBoolean>;
48
48
  providerConfigId: z.ZodOptional<z.ZodString>;
49
+ adapterName: z.ZodString;
49
50
  model: z.ZodOptional<z.ZodString>;
50
51
  systemPrompt: z.ZodOptional<z.ZodString>;
51
52
  allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -55,7 +56,6 @@ declare const SubagentTemplateCreateSchema: z.ZodObject<{
55
56
  fork: "fork";
56
57
  fresh: "fresh";
57
58
  }>>;
58
- adapterName: z.ZodString;
59
59
  }, z.core.$strip>;
60
60
  type SubagentTemplateCreate = z.infer<typeof SubagentTemplateCreateSchema>;
61
61
  /**
@@ -131,6 +131,7 @@ declare const SubagentTemplateSettingsSchemas: {
131
131
  name: z.ZodString;
132
132
  enabled: z.ZodDefault<z.ZodBoolean>;
133
133
  providerConfigId: z.ZodOptional<z.ZodString>;
134
+ adapterName: z.ZodString;
134
135
  model: z.ZodOptional<z.ZodString>;
135
136
  systemPrompt: z.ZodOptional<z.ZodString>;
136
137
  allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -140,7 +141,6 @@ declare const SubagentTemplateSettingsSchemas: {
140
141
  fork: "fork";
141
142
  fresh: "fresh";
142
143
  }>>;
143
- adapterName: z.ZodString;
144
144
  }, z.core.$strip>;
145
145
  response: z.ZodObject<{
146
146
  id: z.ZodString;
@@ -1,4 +1,4 @@
1
- import { C as ProviderRuntimeSnapshot, S as ProviderConfigFileRecordSchema, T as AdapterSubsystemSchemas, _ as EffectiveAdapter, a as AdapterRuntimePackages, b as ProviderConfigAuthSummarySchema, c as AdapterRuntimeSnapshotErrorCode, d as AdapterRuntimeSnapshotResolutionSchema, f as AdapterRuntimeSnapshotSchema, g as CompatibleAuthOptionSchema, h as CompatibleAuthOption, i as AdapterReadinessSchema, l as AdapterRuntimeSnapshotErrorCodeSchema, m as BindingRecordSchema, n as AdapterFileConfigSchema, o as AdapterRuntimePackagesSchema, p as BindingRecord, r as AdapterReadiness, s as AdapterRuntimeSnapshot, t as AdapterFileConfig, u as AdapterRuntimeSnapshotResolution, v as EffectiveAdapterSchema, w as ProviderRuntimeSnapshotSchema, x as ProviderConfigFileRecord, y as ProviderConfigAuthSummary } from "../../schemas-OWvBn7AH.mjs";
1
+ import { C as ProviderRuntimeSnapshot, S as ProviderConfigFileRecordSchema, T as AdapterSubsystemSchemas, _ as EffectiveAdapter, a as AdapterRuntimePackages, b as ProviderConfigAuthSummarySchema, c as AdapterRuntimeSnapshotErrorCode, d as AdapterRuntimeSnapshotResolutionSchema, f as AdapterRuntimeSnapshotSchema, g as CompatibleAuthOptionSchema, h as CompatibleAuthOption, i as AdapterReadinessSchema, l as AdapterRuntimeSnapshotErrorCodeSchema, m as BindingRecordSchema, n as AdapterFileConfigSchema, o as AdapterRuntimePackagesSchema, p as BindingRecord, r as AdapterReadiness, s as AdapterRuntimeSnapshot, t as AdapterFileConfig, u as AdapterRuntimeSnapshotResolution, v as EffectiveAdapterSchema, w as ProviderRuntimeSnapshotSchema, x as ProviderConfigFileRecord, y as ProviderConfigAuthSummary } from "../../schemas-BCXvEWyF.mjs";
2
2
  import { a as CreateCanonicalProviderConfigInput, c as AdapterFileConfigSet, i as CanonicalProviderConfigPatchSchema, l as IAdapterConfigRepository, n as CanonicalProviderConfigAuthPayload, o as CreateCanonicalProviderConfigInputPayload, r as CanonicalProviderConfigPatch, s as CreateCanonicalProviderConfigInputSchema, t as CanonicalProviderConfigAuth, u as ProviderConfigFileSet } from "../../index-CL0Jo1b92.mjs";
3
- import { n as AdapterSubsystemNamespace, r as AdapterSubsystemSubjects, t as ADAPTER_SUBSYSTEM_PACKAGE_NAME } from "../../namespace-C06lJSuj.mjs";
3
+ import { n as AdapterSubsystemNamespace, r as AdapterSubsystemSubjects, t as ADAPTER_SUBSYSTEM_PACKAGE_NAME } from "../../namespace-K23m4b0n.mjs";
4
4
  export { ADAPTER_SUBSYSTEM_PACKAGE_NAME, AdapterFileConfig, AdapterFileConfigSchema, AdapterFileConfigSet, AdapterReadiness, AdapterReadinessSchema, AdapterRuntimePackages, AdapterRuntimePackagesSchema, AdapterRuntimeSnapshot, AdapterRuntimeSnapshotErrorCode, AdapterRuntimeSnapshotErrorCodeSchema, AdapterRuntimeSnapshotResolution, AdapterRuntimeSnapshotResolutionSchema, AdapterRuntimeSnapshotSchema, AdapterSubsystemNamespace, AdapterSubsystemSchemas, AdapterSubsystemSubjects, BindingRecord, BindingRecordSchema, CanonicalProviderConfigAuth, CanonicalProviderConfigAuthPayload, CanonicalProviderConfigPatch, CanonicalProviderConfigPatchSchema, CompatibleAuthOption, CompatibleAuthOptionSchema, CreateCanonicalProviderConfigInput, CreateCanonicalProviderConfigInputPayload, CreateCanonicalProviderConfigInputSchema, EffectiveAdapter, EffectiveAdapterSchema, IAdapterConfigRepository, ProviderConfigAuthSummary, ProviderConfigAuthSummarySchema, ProviderConfigFileRecord, ProviderConfigFileRecordSchema, ProviderConfigFileSet, ProviderRuntimeSnapshot, ProviderRuntimeSnapshotSchema };
@@ -1,2 +1,2 @@
1
- import { n as AdapterSubsystemNamespace, r as AdapterSubsystemSubjects, t as ADAPTER_SUBSYSTEM_PACKAGE_NAME } from "../../namespace-C06lJSuj.mjs";
1
+ import { n as AdapterSubsystemNamespace, r as AdapterSubsystemSubjects, t as ADAPTER_SUBSYSTEM_PACKAGE_NAME } from "../../namespace-K23m4b0n.mjs";
2
2
  export { ADAPTER_SUBSYSTEM_PACKAGE_NAME, AdapterSubsystemNamespace, AdapterSubsystemSubjects };
@@ -11,8 +11,8 @@ declare const FsNamespace: _$_makaio_core0.BusNamespaceDefinition<"fs", {
11
11
  path: _$zod.ZodString;
12
12
  kind: _$zod.ZodEnum<{
13
13
  create: "create";
14
- delete: "delete";
15
14
  change: "change";
15
+ delete: "delete";
16
16
  }>;
17
17
  }, _$zod_v4_core0.$strip>;
18
18
  batch: _$zod.ZodObject<{
@@ -20,8 +20,8 @@ declare const FsNamespace: _$_makaio_core0.BusNamespaceDefinition<"fs", {
20
20
  path: _$zod.ZodString;
21
21
  kind: _$zod.ZodEnum<{
22
22
  create: "create";
23
- delete: "delete";
24
23
  change: "change";
24
+ delete: "delete";
25
25
  }>;
26
26
  }, _$zod_v4_core0.$strip>>;
27
27
  }, _$zod_v4_core0.$strip>;
@@ -154,8 +154,8 @@ declare const FsSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSubjec
154
154
  path: _$zod.ZodString;
155
155
  kind: _$zod.ZodEnum<{
156
156
  create: "create";
157
- delete: "delete";
158
157
  change: "change";
158
+ delete: "delete";
159
159
  }>;
160
160
  }, _$zod_v4_core0.$strip>;
161
161
  batch: _$zod.ZodObject<{
@@ -163,8 +163,8 @@ declare const FsSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSubjec
163
163
  path: _$zod.ZodString;
164
164
  kind: _$zod.ZodEnum<{
165
165
  create: "create";
166
- delete: "delete";
167
166
  change: "change";
167
+ delete: "delete";
168
168
  }>;
169
169
  }, _$zod_v4_core0.$strip>>;
170
170
  }, _$zod_v4_core0.$strip>;
@@ -295,8 +295,8 @@ declare const FileSystemSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fl
295
295
  path: _$zod.ZodString;
296
296
  kind: _$zod.ZodEnum<{
297
297
  create: "create";
298
- delete: "delete";
299
298
  change: "change";
299
+ delete: "delete";
300
300
  }>;
301
301
  }, _$zod_v4_core0.$strip>;
302
302
  batch: _$zod.ZodObject<{
@@ -304,8 +304,8 @@ declare const FileSystemSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fl
304
304
  path: _$zod.ZodString;
305
305
  kind: _$zod.ZodEnum<{
306
306
  create: "create";
307
- delete: "delete";
308
307
  change: "change";
308
+ delete: "delete";
309
309
  }>;
310
310
  }, _$zod_v4_core0.$strip>>;
311
311
  }, _$zod_v4_core0.$strip>;
@@ -6,8 +6,8 @@ import { z } from "zod";
6
6
  */
7
7
  declare const FsChangeKindSchema: z.ZodEnum<{
8
8
  create: "create";
9
- delete: "delete";
10
9
  change: "change";
10
+ delete: "delete";
11
11
  }>;
12
12
  type FsChangeKind = z.infer<typeof FsChangeKindSchema>;
13
13
  /**
@@ -17,8 +17,8 @@ declare const FsChangedSchema: z.ZodObject<{
17
17
  path: z.ZodString;
18
18
  kind: z.ZodEnum<{
19
19
  create: "create";
20
- delete: "delete";
21
20
  change: "change";
21
+ delete: "delete";
22
22
  }>;
23
23
  }, z.core.$strip>;
24
24
  type FsChanged = z.infer<typeof FsChangedSchema>;
@@ -30,8 +30,8 @@ declare const FsBatchSchema: z.ZodObject<{
30
30
  path: z.ZodString;
31
31
  kind: z.ZodEnum<{
32
32
  create: "create";
33
- delete: "delete";
34
33
  change: "change";
34
+ delete: "delete";
35
35
  }>;
36
36
  }, z.core.$strip>>;
37
37
  }, z.core.$strip>;
@@ -1,7 +1,7 @@
1
1
  import { _ as ResolveNameResponseSchema, c as ResolveIdResponse, d as ResolveLiveIdentityRequestSchema, f as ResolveLiveIdentityResponse, g as ResolveNameResponse, h as ResolveNameRequestSchema, l as ResolveIdResponseSchema, m as ResolveNameRequest, o as ResolveIdRequest, p as ResolveLiveIdentityResponseSchema, s as ResolveIdRequestSchema, t as AdapterRuntimeSchemas, u as ResolveLiveIdentityRequest } from "../schemas-C1mxTfd7.mjs";
2
2
  import { n as AdapterRuntimeSubjects, t as AdapterRuntimeNamespace } from "../namespace-DknCutQZ.mjs";
3
3
  import { c as resolveDeterministicAdapterId, o as buildDeterministicAdapterId, r as RegisteredAdapterRuntimeIdentityHandlers, s as registerAdapterRuntimeIdentityHandlers, t as AdapterIdentityRegistry } from "../index-Bqk0pJBQ2.mjs";
4
- import { p as BindingRecord } from "../schemas-OWvBn7AH.mjs";
4
+ import { p as BindingRecord } from "../schemas-BCXvEWyF.mjs";
5
5
  import { a as AgentRuntimeSelectionSchema, i as AgentRuntimeSelection, n as AgentInstanceStatusSchema, r as AgentRuntimeSchemas, t as AgentInstanceStatus } from "../schemas-D7ScxLrf.mjs";
6
6
  import { n as AgentRuntimeSubjects, t as AgentRuntimeNamespace } from "../namespace-l-HG1rLF.mjs";
7
7
  import { t as CapabilityService } from "../capability-service-BW1-teFU.mjs";
@@ -17,7 +17,7 @@ import { n as ExecutionTargetSubjects, t as ExecutionTargetNamespace } from "../
17
17
  import { A as ContainerRuntimeSchema, B as SpawnRequest, C as ContainerIsolatedSpawnRequest, D as ContainerLocalWorkflowSpawnRequest, E as ContainerLocalSpawnRequestSchema, F as ContainerState, G as StatusRequestSchema, H as SpawnResponse, I as ContainerStateSchema, J as StopRequest, K as StatusResponse, L as ContainerStopped, N as ContainerStarted, O as ContainerLocalWorkflowSpawnRequestSchema, P as ContainerStartedSchema, R as ContainerStoppedSchema, S as ContainerDestroyedSchema, T as ContainerLocalSpawnRequest, U as SpawnResponseSchema, V as SpawnRequestSchema, W as StatusRequest, X as StopResponse, Y as StopRequestSchema, Z as StopResponseSchema, a as DockerSubjects, b as ContainerCreatedSchema, i as DockerNamespace, k as ContainerRuntime, n as ContainerSpawnSubjects, q as StatusResponseSchema, t as ContainerSpawnNamespace, w as ContainerIsolatedSpawnRequestSchema, x as ContainerDestroyed, y as ContainerCreated } from "../index-CPRQ4dWX.mjs";
18
18
  import { $t as resolveAdapterNameById, A as registerDrizzleMessageStorage, Bn as resolveTargetAgents, Bt as AgentStorageNamespace, C as registerDrizzleMessageRoutingStorage, Cn as ensureAgentCwd, Ct as fetchAgentsBySession, D as SelectMessage, Dt as parseForkTransforms, E as InsertMessage, En as verifyAndRecoverAgents, Et as mapRowToSession, F as registerMemoryTurnStorage, Ft as registerMemoryAgentStorage, Gn as ISessionOrchestrator, Gt as assembleForkContext, Hn as normalizeToBlocks, Ht as SessionExtensionContextImpl, I as registerDrizzleTurnStorage, It as registerDrizzleSessionStorage, Jt as CONNECTOR_SWAP_DEFAULT_PIPELINE, Kn as SessionOrchestrator, Kt as FallbackRuntimeOptions, L as EmbeddingIndexManager, Lt as registerMemorySessionStorage, M as SelectTurn, Mt as registerDrizzleSessionOwnershipStorage, N as turns, Nt as registerMemorySessionOwnershipStorage, O as messages, On as buildRecoveryContext, Ot as registerFtsSearchHandler, Pt as registerDrizzleAgentStorage, Qt as normalizeSelectionString, R as registerDrizzleImportCursorStorage, Rn as findTurnByAgent, Rt as SessionStorageMemoryState, Sn as buildRecoveryContextWithPipeline, St as SearchSessionRow, T as MessageRoutingSubjects, Tn as recoverAgent, Tt as fetchPreviewBySession, Un as TurnContextEnricher, Ut as createSessionExtensionContext, Vn as extractTextContent, Vt as AgentStorageSubjects, Wn as AdapterRegistry, Wt as SessionBridge, _ as MakaioSessionConfig, _t as SessionPreviewMaps, an as registerResumeHandler, b as SelectMessageRouting, bn as RecoveryConfig, bt as mapToSession, c as BuildContextOptions, cn as ContextWindowTrackerConfig, dt as registerMemorySessionEventStorage, en as registerListActionsHandler, ft as InsertSessionEvent, g as MakaioSession, h as registerParentResolver, in as registerGetStatusCountsHandler, j as InsertTurn, k as registerMemoryMessageStorage, l as ContextAssemblyResult, ln as SessionContextWindowState, m as registerCompressLineageResolver, mt as sessionEvents, nn as resetBuiltInActionsRegistration, nt as EventTransform, o as getFullConversation, on as ContextWindowTracker, p as registerSpawningToolCallResolver, pt as SelectSessionEvent, qn as registerCoreSessionServiceHandlers, qt as pickFallbackRuntimeOptions, rn as actionRegistry, rr as MakaioSessionService, s as buildSessionContext, sn as AgentContextState, tn as registerBuiltInActions, u as kindToBranchKind, ut as registerDrizzleSessionEventStorage, v as StartTurnOptions, vn as buildTurnInitiator, vt as fetchSessionPreviewMaps, w as MessageRoutingNamespace, wn as ensureAgentModel, wt as fetchMessageCountsBySession, x as messageRouting, xn as VerifiedAgents, xt as SearchFilters, y as InsertMessageRouting, yn as AgentRecoveryOutcome, yt as mapAgentsBySession, z as importCursors, zn as getOrCreateSession, zt as createSessionStorageMemoryState } from "../index-BNzUyVwV.mjs";
19
19
  import { C as SessionTurnManager, D as TurnPairStateChange, E as TurnContext, O as TurnPairTerminalOutcome, T as TurnConfig, b as resolveExecutionTarget, c as registerMergeHandler, d as registerAttachHandler, f as registerAbandonHandler, k as TurnResult, l as registerForkHandler, n as routeToAgents, p as SessionStartError, t as routeToAgentsCore, u as registerCompressHandler, v as resolveAdapterId, w as Turn, x as resolveModelCapabilities } from "../index-B0yMCJW8.mjs";
20
- import { a as activateProviderContext, c as RuntimeProviderContextResolutionErrorCode, l as resolveRuntimeProviderContext, n as ProviderContextActivationErrorCode, s as RuntimeProviderContextResolutionError, t as ProviderContextActivationError } from "../index-CPi0UpRh.mjs";
20
+ import { a as activateProviderContext, c as RuntimeProviderContextResolutionErrorCode, l as resolveRuntimeProviderContext, n as ProviderContextActivationErrorCode, s as RuntimeProviderContextResolutionError, t as ProviderContextActivationError } from "../index-B_8bA2JW.mjs";
21
21
  import { i as SessionStorageSubjects, r as SessionStorageNamespace } from "../namespace-BRuHzhPo.mjs";
22
22
  import { g as sessions, u as agents } from "../schema-B3Pf7JP7.mjs";
23
23
  import { n as SessionEventStorageSubjects, t as SessionEventStorageNamespace } from "../namespace-DOezqDti.mjs";
@@ -35,7 +35,7 @@ import { C as ModelRegistrySchemas, S as ModelRegistrySchema, T as ProviderModel
35
35
  import { a as InternalPendingRequest, c as SubagentServiceToken, d as SubagentFailureFinalizationError, f as SubagentFailureFinalizationErrorCode, i as InputResolver, l as createSubagentServicePackage, n as TrackOptions, o as SpawnOptions, p as SubagentService, r as AwaitResult, s as TrackedSubagent, t as SubagentManager, u as subagentServicePackage } from "../index-VzLAV0Yt.mjs";
36
36
  import { a as PreferenceValueSchema, i as PreferenceKeySchema, n as PreferenceItemSchema, o as PreferencesSchemas, r as PreferenceKey, t as PreferenceItem } from "../schemas-Pe892GgN.mjs";
37
37
  import { n as PreferencesSubjects, t as PreferencesNamespace } from "../storage-namespace-YmE8XCCL.mjs";
38
- import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../schemas-BAv9RB9M.mjs";
38
+ import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../schemas-D7EeKBDJ.mjs";
39
39
  import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../namespace-BGRHcrmp.mjs";
40
40
  import * as _$zod from "zod";
41
41
  import * as _$_makaio_core0 from "@makaio/framework/core";
@@ -1095,8 +1095,8 @@ declare const FrameworkServicesCoreNamespaces: readonly [_$_makaio_core0.BusName
1095
1095
  config: _$zod.ZodNullable<_$zod.ZodObject<{
1096
1096
  description: _$zod.ZodOptional<_$zod.ZodString>;
1097
1097
  displayName: _$zod.ZodOptional<_$zod.ZodString>;
1098
- clientId: _$zod.ZodOptional<_$zod.ZodString>;
1099
1098
  protocol: _$zod.ZodOptional<_$zod.ZodString>;
1099
+ clientId: _$zod.ZodOptional<_$zod.ZodString>;
1100
1100
  helpLinks: _$zod.ZodOptional<_$zod.ZodArray<_$zod.ZodObject<{
1101
1101
  label: _$zod.ZodString;
1102
1102
  url: _$zod.ZodString;
@@ -1120,8 +1120,8 @@ declare const FrameworkServicesCoreNamespaces: readonly [_$_makaio_core0.BusName
1120
1120
  configs: _$zod.ZodArray<_$zod.ZodObject<{
1121
1121
  description: _$zod.ZodOptional<_$zod.ZodString>;
1122
1122
  displayName: _$zod.ZodOptional<_$zod.ZodString>;
1123
- clientId: _$zod.ZodOptional<_$zod.ZodString>;
1124
1123
  protocol: _$zod.ZodOptional<_$zod.ZodString>;
1124
+ clientId: _$zod.ZodOptional<_$zod.ZodString>;
1125
1125
  helpLinks: _$zod.ZodOptional<_$zod.ZodArray<_$zod.ZodObject<{
1126
1126
  label: _$zod.ZodString;
1127
1127
  url: _$zod.ZodString;
@@ -2731,8 +2731,8 @@ declare const FrameworkServicesCoreNamespaces: readonly [_$_makaio_core0.BusName
2731
2731
  config: _$zod.ZodObject<{
2732
2732
  description: _$zod.ZodOptional<_$zod.ZodString>;
2733
2733
  displayName: _$zod.ZodOptional<_$zod.ZodString>;
2734
- clientId: _$zod.ZodOptional<_$zod.ZodString>;
2735
2734
  protocol: _$zod.ZodOptional<_$zod.ZodString>;
2735
+ clientId: _$zod.ZodOptional<_$zod.ZodString>;
2736
2736
  helpLinks: _$zod.ZodOptional<_$zod.ZodArray<_$zod.ZodObject<{
2737
2737
  label: _$zod.ZodString;
2738
2738
  url: _$zod.ZodString;
@@ -5145,8 +5145,8 @@ declare const FrameworkServicesCoreNamespaces: readonly [_$_makaio_core0.BusName
5145
5145
  path: _$zod.ZodString;
5146
5146
  kind: _$zod.ZodEnum<{
5147
5147
  create: "create";
5148
- delete: "delete";
5149
5148
  change: "change";
5149
+ delete: "delete";
5150
5150
  }>;
5151
5151
  }, _$zod_v4_core0.$strip>;
5152
5152
  batch: _$zod.ZodObject<{
@@ -5154,8 +5154,8 @@ declare const FrameworkServicesCoreNamespaces: readonly [_$_makaio_core0.BusName
5154
5154
  path: _$zod.ZodString;
5155
5155
  kind: _$zod.ZodEnum<{
5156
5156
  create: "create";
5157
- delete: "delete";
5158
5157
  change: "change";
5158
+ delete: "delete";
5159
5159
  }>;
5160
5160
  }, _$zod_v4_core0.$strip>>;
5161
5161
  }, _$zod_v4_core0.$strip>;
@@ -7732,6 +7732,7 @@ declare const FrameworkServicesCoreNamespaces: readonly [_$_makaio_core0.BusName
7732
7732
  name: _$zod.ZodString;
7733
7733
  enabled: _$zod.ZodDefault<_$zod.ZodBoolean>;
7734
7734
  providerConfigId: _$zod.ZodOptional<_$zod.ZodString>;
7735
+ adapterName: _$zod.ZodString;
7735
7736
  model: _$zod.ZodOptional<_$zod.ZodString>;
7736
7737
  systemPrompt: _$zod.ZodOptional<_$zod.ZodString>;
7737
7738
  allowedTools: _$zod.ZodOptional<_$zod.ZodArray<_$zod.ZodString>>;
@@ -7741,7 +7742,6 @@ declare const FrameworkServicesCoreNamespaces: readonly [_$_makaio_core0.BusName
7741
7742
  fork: "fork";
7742
7743
  fresh: "fresh";
7743
7744
  }>>;
7744
- adapterName: _$zod.ZodString;
7745
7745
  }, _$zod_v4_core0.$strip>;
7746
7746
  response: _$zod.ZodObject<{
7747
7747
  id: _$zod.ZodString;
@@ -1,2 +1,2 @@
1
- import { a as activateProviderContext, c as RuntimeProviderContextResolutionErrorCode, i as ProviderContextActivationTransaction, l as resolveRuntimeProviderContext, n as ProviderContextActivationErrorCode, o as prepareProviderContextActivation, r as ProviderContextActivationRollbackError, s as RuntimeProviderContextResolutionError, t as ProviderContextActivationError } from "../../index-CPi0UpRh.mjs";
1
+ import { a as activateProviderContext, c as RuntimeProviderContextResolutionErrorCode, i as ProviderContextActivationTransaction, l as resolveRuntimeProviderContext, n as ProviderContextActivationErrorCode, o as prepareProviderContextActivation, r as ProviderContextActivationRollbackError, s as RuntimeProviderContextResolutionError, t as ProviderContextActivationError } from "../../index-B_8bA2JW.mjs";
2
2
  export { ProviderContextActivationError, ProviderContextActivationErrorCode, ProviderContextActivationRollbackError, ProviderContextActivationTransaction, RuntimeProviderContextResolutionError, RuntimeProviderContextResolutionErrorCode, activateProviderContext, prepareProviderContextActivation, resolveRuntimeProviderContext };