@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.
- package/dist/.makaio-build.json +2 -2
- package/dist/attempt-record-codec-dC9LSFUE.mjs +1 -0
- package/dist/authority-state-bootstrap-eitx6Ukn.mjs +1 -0
- package/dist/bus/index.mjs +1 -1
- package/dist/capabilities-DEvmD9VJ.mjs +1 -0
- package/dist/contracts/artifact/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.d.mts +2 -2
- package/dist/contracts/capabilities/index.mjs +1 -1
- package/dist/contracts/client/index.d.mts +1 -1
- package/dist/contracts/extension/index.d.mts +2 -2
- package/dist/contracts/index.d.mts +12 -12
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/worker/index.d.mts +2 -0
- package/dist/contracts/worker/index.mjs +1 -0
- package/dist/contracts/workflow/index.d.mts +1 -1
- package/dist/contracts/workflow/index.mjs +1 -1
- package/dist/{execution-attempt-repository-BJ2W6wwx.d.mts → execution-attempt-repository-DY4KTptE.d.mts} +359 -57
- package/dist/{index-8NdPPzUh2.d.mts → index-6trZYnUP2.d.mts} +12 -12
- package/dist/{index-CPi0UpRh.d.mts → index-B_8bA2JW.d.mts} +1 -1
- package/dist/{index-DfUpqwBa2.d.mts → index-BmilK-co2.d.mts} +53 -53
- package/dist/{index-CMekqu_D.d.mts → index-C6aSnO8m.d.mts} +42 -42
- package/dist/{index-BUwDmh1I.d.mts → index-CDud4NAm.d.mts} +10 -10
- package/dist/{index-CYjgoYeX.d.mts → index-DHH-93YD.d.mts} +1 -1
- package/dist/{index-B9io6JAL.d.mts → index-DI2lS7VT.d.mts} +1 -1
- package/dist/{index-cLB38AWX.d.mts → index-DNI6UF9h.d.mts} +60 -60
- package/dist/{index-NUByQvlg.d.mts → index-DXtQRehh.d.mts} +14 -14
- package/dist/{index-CVNbBtA-.d.mts → index-Wbd_syN2.d.mts} +112 -112
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/index.d.mts +2 -2
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/{namespace-C06lJSuj.d.mts → namespace-K23m4b0n.d.mts} +6 -6
- package/dist/package-Cgjpm9om.mjs +7 -0
- package/dist/{package-BNFTUFLB.d.mts → package-efR90JGe.d.mts} +59 -30
- package/dist/package.json +1 -1
- package/dist/runtime-node/index.d.mts +1 -1
- package/dist/runtime-node/index.mjs +1 -1
- package/dist/runtime-node/makaio-config.d.mts +2 -2
- package/dist/runtime-node/makaio-config.mjs +1 -1
- package/dist/runtime-node/workflow-execution-bus-access.mjs +1 -1
- package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
- package/dist/runtime-node/workflow-worker/index.mjs +1 -1
- package/dist/{schemas-OWvBn7AH.d.mts → schemas-BCXvEWyF.d.mts} +4 -4
- package/dist/{schemas-BAv9RB9M.d.mts → schemas-D7EeKBDJ.d.mts} +3 -3
- package/dist/services/adapter-subsystem/index.d.mts +2 -2
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/index.d.mts +9 -9
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/session/index.d.mts +1 -1
- package/dist/services/settings/namespace.d.mts +2 -2
- package/dist/services/subagent-template/index.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/worker-CARV52hT.mjs +1 -0
- package/dist/worker-CLsRbzpk.mjs +1 -0
- package/dist/workflow-BomH9DBB.mjs +1 -0
- package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
- package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
- package/dist/workflow-engine/index.d.mts +178 -23
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/testing/index.d.mts +30 -9
- package/dist/workflow-engine/testing/index.mjs +1 -1
- package/dist/workflow-engine/testing/sqlite.d.mts +3 -2
- package/dist/workflow-engine/testing/sqlite.mjs +20 -20
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/workflow-worker-Dul-wcOR.mjs +1 -0
- package/package.json +4 -4
- package/dist/attempt-record-codec-BYfYkj4M.mjs +0 -1
- package/dist/authority-state-bootstrap-CLYus369.mjs +0 -1
- package/dist/capabilities-BUwuA7XX.mjs +0 -1
- package/dist/contracts/worker-node/index.d.mts +0 -2
- package/dist/contracts/worker-node/index.mjs +0 -1
- package/dist/package-B01gmu75.mjs +0 -7
- package/dist/worker-node-CjuQb9hl.mjs +0 -1
- package/dist/worker-node-Dtf9ilsR.mjs +0 -1
- package/dist/workflow-C4mck_NW.mjs +0 -1
- 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
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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 };
|