@agimon-ai/doompi 0.0.1-alpha.2 → 0.0.1-alpha.3
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/services/runtimeBundle.cjs +1 -1
- package/dist/services/runtimeBundle.cjs.map +1 -1
- package/dist/services/runtimeBundle.d.cts.map +1 -1
- package/dist/services/runtimeBundle.d.mts.map +1 -1
- package/dist/services/runtimeBundle.mjs +1 -1
- package/dist/services/runtimeBundle.mjs.map +1 -1
- package/package.json +16 -16
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../utils/json.cjs`);require(`../utils/index.cjs`);const n=require(`./extensionAssembler.cjs`),r=require(`./extensionCompiler.cjs`);let i=require(`node:path`);i=e.__toESM(i,1);const a=i.default.join(`.pi`,`doom`,`cache`),o=i.default.join(`.pi`,`doom`,`dist`);function s(e){let t={agents:e.options.agents,preset:e.options.preset,mcpEntry:e.mcpEntry,personaEntry:e.personaEntry,layers:e.selectedLayers,majorModesConfig:e.majorModesConfig};return{extensions:n.assembleExtensions({...t,autoStop:e.options.autoStop,mute:e.options.mute,workflowExtension:e.workflowExtension}),childExtensions:n.assembleChildExtensions({...t,agents:!1,autoStop:!1,mute:!0})}}function c(e){return{majorMode:e.majorMode,domains:[...e.domains],profile:e.profile,preset:e.preset,mute:e.mute,autoStop:e.autoStop,agents:e.agents,mcp:e.mcp}}function l(e){return[e.majorMode,e.mute?`mute`:void 0,e.autoStop?`auto-stop`:void 0].filter(e=>!!e).join(`.`)}function u(e){return e.replace(/\.mjs$/,`.manifest.json`)}async function d(e){let n=e.extensionPaths.map(e=>i.default.resolve(e)),s={...e.selection,domains:[...e.selection.domains]},c=await r.compileExtensionSet(n,e.cacheDirectory??i.default.join(e.repoRoot,a),{outputDirectory:e.outputDirectory??i.default.join(e.repoRoot,o),outputName:e.outputName??l(s)}),d=u(c),f={version:1,artifact:c,selection:s,extensionPaths:n,childExtensionPaths:(e.childExtensionPaths??[]).map(e=>i.default.resolve(e)),resources:{skillPaths:(e.skillPaths??[]).map(e=>i.default.resolve(e)),pluginRoots:(e.pluginRoots??[]).map(e=>i.default.resolve(e))}};return t.writeFileAtomic(d,`${JSON.stringify(f,null,2)}\n`),{bundle:c,manifest:d}}async function f(e,t=s(e)){let n=await d({repoRoot:e.options.repoRoot,selection:c(e.options),extensionPaths:[...t.extensions].reverse(),childExtensionPaths:t.childExtensions,skillPaths:e.resources.skillDirectories,pluginRoots:e.plugins.map(e=>e.directory)});return{...t,...n}}exports.buildRuntimeBundle=f,exports.compileModeExtension=d,exports.createRuntimeExtensionPlan=s;
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../utils/json.cjs`);require(`../utils/index.cjs`);const n=require(`./extensionAssembler.cjs`),r=require(`./extensionCompiler.cjs`);let i=require(`node:path`);i=e.__toESM(i,1);const a=i.default.join(`.pi`,`doom`,`cache`),o=i.default.join(`.pi`,`doom`,`dist`);function s(e){let t={agents:e.options.agents,preset:e.options.preset,mcpEntry:e.mcpEntry,personaEntry:e.personaEntry,layers:e.selectedLayers,majorModesConfig:e.majorModesConfig,resolvers:n.createLayerResolvers(e.options.repoRoot)};return{extensions:n.assembleExtensions({...t,autoStop:e.options.autoStop,mute:e.options.mute,workflowExtension:e.workflowExtension}),childExtensions:n.assembleChildExtensions({...t,agents:!1,autoStop:!1,mute:!0})}}function c(e){return{majorMode:e.majorMode,domains:[...e.domains],profile:e.profile,preset:e.preset,mute:e.mute,autoStop:e.autoStop,agents:e.agents,mcp:e.mcp}}function l(e){return[e.majorMode,e.mute?`mute`:void 0,e.autoStop?`auto-stop`:void 0].filter(e=>!!e).join(`.`)}function u(e){return e.replace(/\.mjs$/,`.manifest.json`)}async function d(e){let n=e.extensionPaths.map(e=>i.default.resolve(e)),s={...e.selection,domains:[...e.selection.domains]},c=await r.compileExtensionSet(n,e.cacheDirectory??i.default.join(e.repoRoot,a),{outputDirectory:e.outputDirectory??i.default.join(e.repoRoot,o),outputName:e.outputName??l(s)}),d=u(c),f={version:1,artifact:c,selection:s,extensionPaths:n,childExtensionPaths:(e.childExtensionPaths??[]).map(e=>i.default.resolve(e)),resources:{skillPaths:(e.skillPaths??[]).map(e=>i.default.resolve(e)),pluginRoots:(e.pluginRoots??[]).map(e=>i.default.resolve(e))}};return t.writeFileAtomic(d,`${JSON.stringify(f,null,2)}\n`),{bundle:c,manifest:d}}async function f(e,t=s(e)){let n=await d({repoRoot:e.options.repoRoot,selection:c(e.options),extensionPaths:[...t.extensions].reverse(),childExtensionPaths:t.childExtensions,skillPaths:e.resources.skillDirectories,pluginRoots:e.plugins.map(e=>e.directory)});return{...t,...n}}exports.buildRuntimeBundle=f,exports.compileModeExtension=d,exports.createRuntimeExtensionPlan=s;
|
|
2
2
|
//# sourceMappingURL=runtimeBundle.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeBundle.cjs","names":["path","assembleExtensions","assembleChildExtensions","compileExtensionSet"],"sources":["../../src/services/runtimeBundle.ts"],"sourcesContent":["import path from 'node:path';\nimport type { HarnessOptions } from '../interfaces/index.ts';\nimport { writeFileAtomic } from '../utils/index.ts';\nimport
|
|
1
|
+
{"version":3,"file":"runtimeBundle.cjs","names":["path","createLayerResolvers","assembleExtensions","assembleChildExtensions","compileExtensionSet"],"sources":["../../src/services/runtimeBundle.ts"],"sourcesContent":["import path from 'node:path';\nimport type { HarnessOptions } from '../interfaces/index.ts';\nimport { writeFileAtomic } from '../utils/index.ts';\nimport { assembleChildExtensions, assembleExtensions, createLayerResolvers } from './extensionAssembler.ts';\nimport { compileExtensionSet } from './extensionCompiler.ts';\nimport type { HarnessContext } from './harnessContext.ts';\n\nconst EXTENSION_CACHE_DIRECTORY = path.join('.pi', 'doom', 'cache');\nconst MODE_DIST_DIRECTORY = path.join('.pi', 'doom', 'dist');\nconst MODE_MANIFEST_VERSION = 1;\n\nexport interface RuntimeExtensionPlan {\n /** Pi CLI order. Pi evaluates explicit extension arguments in reverse. */\n extensions: string[];\n childExtensions: string[];\n}\n\nexport interface RuntimeBundleBuild extends RuntimeExtensionPlan {\n bundle: string;\n manifest: string;\n}\n\nexport interface ModeBuildSelection {\n majorMode: string;\n domains: string[];\n profile?: string;\n preset: string;\n mute: boolean;\n autoStop: boolean;\n agents: boolean;\n mcp: boolean;\n}\n\nexport interface ModeBuildManifest {\n version: number;\n artifact: string;\n selection: ModeBuildSelection;\n /** Original source entries in the order their factories activate. */\n extensionPaths: string[];\n /** Original source entries inherited by detached child agents. */\n childExtensionPaths: string[];\n resources: {\n /** Exact SKILL.md paths; never derived from the bundled artifact path. */\n skillPaths: string[];\n pluginRoots: string[];\n };\n}\n\nexport interface ModeExtensionBuildOptions {\n repoRoot: string;\n selection: ModeBuildSelection;\n extensionPaths: readonly string[];\n childExtensionPaths?: readonly string[];\n skillPaths?: readonly string[];\n pluginRoots?: readonly string[];\n outputName?: string;\n cacheDirectory?: string;\n outputDirectory?: string;\n}\n\n/** Resolves the parent and detached-child extension lists for one launch. */\nexport function createRuntimeExtensionPlan(context: HarnessContext): RuntimeExtensionPlan {\n const common = {\n agents: context.options.agents,\n preset: context.options.preset,\n mcpEntry: context.mcpEntry,\n personaEntry: context.personaEntry,\n layers: context.selectedLayers,\n majorModesConfig: context.majorModesConfig,\n resolvers: createLayerResolvers(context.options.repoRoot),\n };\n return {\n extensions: assembleExtensions({\n ...common,\n autoStop: context.options.autoStop,\n mute: context.options.mute,\n workflowExtension: context.workflowExtension,\n }),\n childExtensions: assembleChildExtensions({\n ...common,\n agents: false,\n autoStop: false,\n mute: true,\n }),\n };\n}\n\nfunction modeSelection(options: HarnessOptions): ModeBuildSelection {\n return {\n majorMode: options.majorMode,\n domains: [...options.domains],\n profile: options.profile,\n preset: options.preset,\n mute: options.mute,\n autoStop: options.autoStop,\n agents: options.agents,\n mcp: options.mcp,\n };\n}\n\nfunction modeOutputName(selection: ModeBuildSelection): string {\n return [selection.majorMode, selection.mute ? 'mute' : undefined, selection.autoStop ? 'auto-stop' : undefined]\n .filter((value): value is string => Boolean(value))\n .join('.');\n}\n\nfunction manifestPathFor(bundle: string): string {\n return bundle.replace(/\\.mjs$/, '.manifest.json');\n}\n\n/**\n * Emits one named mode extension and its original-path resource manifest.\n *\n * Extension code lives in dist while graph fingerprints remain in cache. Skill\n * loading never follows the bundle's import.meta.url: Pi receives the exact\n * original SKILL.md paths recorded here and in harness state.\n */\nexport async function compileModeExtension(options: ModeExtensionBuildOptions): Promise<{\n bundle: string;\n manifest: string;\n}> {\n const extensionPaths = options.extensionPaths.map((entry) => path.resolve(entry));\n const selection = { ...options.selection, domains: [...options.selection.domains] };\n const bundle = await compileExtensionSet(\n extensionPaths,\n options.cacheDirectory ?? path.join(options.repoRoot, EXTENSION_CACHE_DIRECTORY),\n {\n outputDirectory: options.outputDirectory ?? path.join(options.repoRoot, MODE_DIST_DIRECTORY),\n outputName: options.outputName ?? modeOutputName(selection),\n },\n );\n const manifest = manifestPathFor(bundle);\n const contents: ModeBuildManifest = {\n version: MODE_MANIFEST_VERSION,\n artifact: bundle,\n selection,\n extensionPaths,\n childExtensionPaths: (options.childExtensionPaths ?? []).map((entry) => path.resolve(entry)),\n resources: {\n skillPaths: (options.skillPaths ?? []).map((entry) => path.resolve(entry)),\n pluginRoots: (options.pluginRoots ?? []).map((entry) => path.resolve(entry)),\n },\n };\n writeFileAtomic(manifest, `${JSON.stringify(contents, null, 2)}\\n`);\n return { bundle, manifest };\n}\n\n/** Compiles the exact Pi load order used by the selected launch matrix. */\nexport async function buildRuntimeBundle(\n context: HarnessContext,\n plan: RuntimeExtensionPlan = createRuntimeExtensionPlan(context),\n): Promise<RuntimeBundleBuild> {\n const built = await compileModeExtension({\n repoRoot: context.options.repoRoot,\n selection: modeSelection(context.options),\n extensionPaths: [...plan.extensions].reverse(),\n childExtensionPaths: plan.childExtensions,\n skillPaths: context.resources.skillDirectories,\n pluginRoots: context.plugins.map((plugin) => plugin.directory),\n });\n return { ...plan, ...built };\n}\n"],"mappings":"+OAOA,MAAM,EAA4BA,EAAAA,QAAK,KAAK,MAAO,OAAQ,QAAQ,CAC7D,EAAsBA,EAAAA,QAAK,KAAK,MAAO,OAAQ,OAAO,CAqD5D,SAAgB,EAA2B,EAA+C,CACxF,IAAM,EAAS,CACb,OAAQ,EAAQ,QAAQ,OACxB,OAAQ,EAAQ,QAAQ,OACxB,SAAU,EAAQ,SAClB,aAAc,EAAQ,aACtB,OAAQ,EAAQ,eAChB,iBAAkB,EAAQ,iBAC1B,UAAWC,EAAAA,qBAAqB,EAAQ,QAAQ,SAAS,CAC1D,CACD,MAAO,CACL,WAAYC,EAAAA,mBAAmB,CAC7B,GAAG,EACH,SAAU,EAAQ,QAAQ,SAC1B,KAAM,EAAQ,QAAQ,KACtB,kBAAmB,EAAQ,kBAC5B,CAAC,CACF,gBAAiBC,EAAAA,wBAAwB,CACvC,GAAG,EACH,OAAQ,GACR,SAAU,GACV,KAAM,GACP,CAAC,CACH,CAGH,SAAS,EAAc,EAA6C,CAClE,MAAO,CACL,UAAW,EAAQ,UACnB,QAAS,CAAC,GAAG,EAAQ,QAAQ,CAC7B,QAAS,EAAQ,QACjB,OAAQ,EAAQ,OAChB,KAAM,EAAQ,KACd,SAAU,EAAQ,SAClB,OAAQ,EAAQ,OAChB,IAAK,EAAQ,IACd,CAGH,SAAS,EAAe,EAAuC,CAC7D,MAAO,CAAC,EAAU,UAAW,EAAU,KAAO,OAAS,IAAA,GAAW,EAAU,SAAW,YAAc,IAAA,GAAU,CAC5G,OAAQ,GAA2B,EAAQ,EAAO,CAClD,KAAK,IAAI,CAGd,SAAS,EAAgB,EAAwB,CAC/C,OAAO,EAAO,QAAQ,SAAU,iBAAiB,CAUnD,eAAsB,EAAqB,EAGxC,CACD,IAAM,EAAiB,EAAQ,eAAe,IAAK,GAAUH,EAAAA,QAAK,QAAQ,EAAM,CAAC,CAC3E,EAAY,CAAE,GAAG,EAAQ,UAAW,QAAS,CAAC,GAAG,EAAQ,UAAU,QAAQ,CAAE,CAC7E,EAAS,MAAMI,EAAAA,oBACnB,EACA,EAAQ,gBAAkBJ,EAAAA,QAAK,KAAK,EAAQ,SAAU,EAA0B,CAChF,CACE,gBAAiB,EAAQ,iBAAmBA,EAAAA,QAAK,KAAK,EAAQ,SAAU,EAAoB,CAC5F,WAAY,EAAQ,YAAc,EAAe,EAAU,CAC5D,CACF,CACK,EAAW,EAAgB,EAAO,CAClC,EAA8B,CAClC,QAAS,EACT,SAAU,EACV,YACA,iBACA,qBAAsB,EAAQ,qBAAuB,EAAE,EAAE,IAAK,GAAUA,EAAAA,QAAK,QAAQ,EAAM,CAAC,CAC5F,UAAW,CACT,YAAa,EAAQ,YAAc,EAAE,EAAE,IAAK,GAAUA,EAAAA,QAAK,QAAQ,EAAM,CAAC,CAC1E,aAAc,EAAQ,aAAe,EAAE,EAAE,IAAK,GAAUA,EAAAA,QAAK,QAAQ,EAAM,CAAC,CAC7E,CACF,CAED,OADA,EAAA,gBAAgB,EAAU,GAAG,KAAK,UAAU,EAAU,KAAM,EAAE,CAAC,IAAI,CAC5D,CAAE,SAAQ,WAAU,CAI7B,eAAsB,EACpB,EACA,EAA6B,EAA2B,EAAQ,CACnC,CAC7B,IAAM,EAAQ,MAAM,EAAqB,CACvC,SAAU,EAAQ,QAAQ,SAC1B,UAAW,EAAc,EAAQ,QAAQ,CACzC,eAAgB,CAAC,GAAG,EAAK,WAAW,CAAC,SAAS,CAC9C,oBAAqB,EAAK,gBAC1B,WAAY,EAAQ,UAAU,iBAC9B,YAAa,EAAQ,QAAQ,IAAK,GAAW,EAAO,UAAU,CAC/D,CAAC,CACF,MAAO,CAAE,GAAG,EAAM,GAAG,EAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeBundle.d.cts","names":[],"sources":["../../src/services/runtimeBundle.ts"],"mappings":";;;UAWiB,oBAAA;;EAEf,UAAA;EACA,eAAA;AAAA;AAAA,UAGe,kBAAA,SAA2B,oBAAA;EAC1C,MAAA;EACA,QAAA;AAAA;AAAA,UAGe,kBAAA;EACf,SAAA;EACA,OAAA;EACA,OAAA;EACA,MAAA;EACA,IAAA;EACA,QAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,UAGe,iBAAA;EACf,OAAA;EACA,QAAA;EACA,SAAA,EAAW,kBAAA;EAVX;EAYA,cAAA;EAVA;EAYA,mBAAA;EACA,SAAA;IAXG,0EAaD,UAAA;IACA,WAAA;EAAA;AAAA;AAAA,UAIa,yBAAA;EACf,QAAA;EACA,SAAA,EAAW,kBAAA;EACX,cAAA;EACA,mBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,eAAA;AAAA;;iBAIc,0BAAA,CAA2B,OAAA,EAAS,cAAA,GAAiB,oBAAA;;;;;;;;
|
|
1
|
+
{"version":3,"file":"runtimeBundle.d.cts","names":[],"sources":["../../src/services/runtimeBundle.ts"],"mappings":";;;UAWiB,oBAAA;;EAEf,UAAA;EACA,eAAA;AAAA;AAAA,UAGe,kBAAA,SAA2B,oBAAA;EAC1C,MAAA;EACA,QAAA;AAAA;AAAA,UAGe,kBAAA;EACf,SAAA;EACA,OAAA;EACA,OAAA;EACA,MAAA;EACA,IAAA;EACA,QAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,UAGe,iBAAA;EACf,OAAA;EACA,QAAA;EACA,SAAA,EAAW,kBAAA;EAVX;EAYA,cAAA;EAVA;EAYA,mBAAA;EACA,SAAA;IAXG,0EAaD,UAAA;IACA,WAAA;EAAA;AAAA;AAAA,UAIa,yBAAA;EACf,QAAA;EACA,SAAA,EAAW,kBAAA;EACX,cAAA;EACA,mBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,eAAA;AAAA;;iBAIc,0BAAA,CAA2B,OAAA,EAAS,cAAA,GAAiB,oBAAA;;;;;;;;iBAwD/C,oBAAA,CAAqB,OAAA,EAAS,yBAAA,GAA4B,OAAA;EAC9E,MAAA;EACA,QAAA;AAAA;;iBA6BoB,kBAAA,CACpB,OAAA,EAAS,cAAA,EACT,IAAA,GAAM,oBAAA,GACL,OAAA,CAAQ,kBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeBundle.d.mts","names":[],"sources":["../../src/services/runtimeBundle.ts"],"mappings":";;;UAWiB,oBAAA;;EAEf,UAAA;EACA,eAAA;AAAA;AAAA,UAGe,kBAAA,SAA2B,oBAAA;EAC1C,MAAA;EACA,QAAA;AAAA;AAAA,UAGe,kBAAA;EACf,SAAA;EACA,OAAA;EACA,OAAA;EACA,MAAA;EACA,IAAA;EACA,QAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,UAGe,iBAAA;EACf,OAAA;EACA,QAAA;EACA,SAAA,EAAW,kBAAA;EAVX;EAYA,cAAA;EAVA;EAYA,mBAAA;EACA,SAAA;IAXG,0EAaD,UAAA;IACA,WAAA;EAAA;AAAA;AAAA,UAIa,yBAAA;EACf,QAAA;EACA,SAAA,EAAW,kBAAA;EACX,cAAA;EACA,mBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,eAAA;AAAA;;iBAIc,0BAAA,CAA2B,OAAA,EAAS,cAAA,GAAiB,oBAAA;;;;;;;;
|
|
1
|
+
{"version":3,"file":"runtimeBundle.d.mts","names":[],"sources":["../../src/services/runtimeBundle.ts"],"mappings":";;;UAWiB,oBAAA;;EAEf,UAAA;EACA,eAAA;AAAA;AAAA,UAGe,kBAAA,SAA2B,oBAAA;EAC1C,MAAA;EACA,QAAA;AAAA;AAAA,UAGe,kBAAA;EACf,SAAA;EACA,OAAA;EACA,OAAA;EACA,MAAA;EACA,IAAA;EACA,QAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,UAGe,iBAAA;EACf,OAAA;EACA,QAAA;EACA,SAAA,EAAW,kBAAA;EAVX;EAYA,cAAA;EAVA;EAYA,mBAAA;EACA,SAAA;IAXG,0EAaD,UAAA;IACA,WAAA;EAAA;AAAA;AAAA,UAIa,yBAAA;EACf,QAAA;EACA,SAAA,EAAW,kBAAA;EACX,cAAA;EACA,mBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,eAAA;AAAA;;iBAIc,0BAAA,CAA2B,OAAA,EAAS,cAAA,GAAiB,oBAAA;;;;;;;;iBAwD/C,oBAAA,CAAqB,OAAA,EAAS,yBAAA,GAA4B,OAAA;EAC9E,MAAA;EACA,QAAA;AAAA;;iBA6BoB,kBAAA,CACpB,OAAA,EAAS,cAAA,EACT,IAAA,GAAM,oBAAA,GACL,OAAA,CAAQ,kBAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{writeFileAtomic as e}from"../utils/json.mjs";import"../utils/index.mjs";import{assembleChildExtensions as t,assembleExtensions as n}from"./extensionAssembler.mjs";import{compileExtensionSet as
|
|
1
|
+
import{writeFileAtomic as e}from"../utils/json.mjs";import"../utils/index.mjs";import{assembleChildExtensions as t,assembleExtensions as n,createLayerResolvers as r}from"./extensionAssembler.mjs";import{compileExtensionSet as i}from"./extensionCompiler.mjs";import a from"node:path";const o=a.join(`.pi`,`doom`,`cache`),s=a.join(`.pi`,`doom`,`dist`);function c(e){let i={agents:e.options.agents,preset:e.options.preset,mcpEntry:e.mcpEntry,personaEntry:e.personaEntry,layers:e.selectedLayers,majorModesConfig:e.majorModesConfig,resolvers:r(e.options.repoRoot)};return{extensions:n({...i,autoStop:e.options.autoStop,mute:e.options.mute,workflowExtension:e.workflowExtension}),childExtensions:t({...i,agents:!1,autoStop:!1,mute:!0})}}function l(e){return{majorMode:e.majorMode,domains:[...e.domains],profile:e.profile,preset:e.preset,mute:e.mute,autoStop:e.autoStop,agents:e.agents,mcp:e.mcp}}function u(e){return[e.majorMode,e.mute?`mute`:void 0,e.autoStop?`auto-stop`:void 0].filter(e=>!!e).join(`.`)}function d(e){return e.replace(/\.mjs$/,`.manifest.json`)}async function f(t){let n=t.extensionPaths.map(e=>a.resolve(e)),r={...t.selection,domains:[...t.selection.domains]},c=await i(n,t.cacheDirectory??a.join(t.repoRoot,o),{outputDirectory:t.outputDirectory??a.join(t.repoRoot,s),outputName:t.outputName??u(r)}),l=d(c),f={version:1,artifact:c,selection:r,extensionPaths:n,childExtensionPaths:(t.childExtensionPaths??[]).map(e=>a.resolve(e)),resources:{skillPaths:(t.skillPaths??[]).map(e=>a.resolve(e)),pluginRoots:(t.pluginRoots??[]).map(e=>a.resolve(e))}};return e(l,`${JSON.stringify(f,null,2)}\n`),{bundle:c,manifest:l}}async function p(e,t=c(e)){let n=await f({repoRoot:e.options.repoRoot,selection:l(e.options),extensionPaths:[...t.extensions].reverse(),childExtensionPaths:t.childExtensions,skillPaths:e.resources.skillDirectories,pluginRoots:e.plugins.map(e=>e.directory)});return{...t,...n}}export{p as buildRuntimeBundle,f as compileModeExtension,c as createRuntimeExtensionPlan};
|
|
2
2
|
//# sourceMappingURL=runtimeBundle.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeBundle.mjs","names":[],"sources":["../../src/services/runtimeBundle.ts"],"sourcesContent":["import path from 'node:path';\nimport type { HarnessOptions } from '../interfaces/index.ts';\nimport { writeFileAtomic } from '../utils/index.ts';\nimport
|
|
1
|
+
{"version":3,"file":"runtimeBundle.mjs","names":[],"sources":["../../src/services/runtimeBundle.ts"],"sourcesContent":["import path from 'node:path';\nimport type { HarnessOptions } from '../interfaces/index.ts';\nimport { writeFileAtomic } from '../utils/index.ts';\nimport { assembleChildExtensions, assembleExtensions, createLayerResolvers } from './extensionAssembler.ts';\nimport { compileExtensionSet } from './extensionCompiler.ts';\nimport type { HarnessContext } from './harnessContext.ts';\n\nconst EXTENSION_CACHE_DIRECTORY = path.join('.pi', 'doom', 'cache');\nconst MODE_DIST_DIRECTORY = path.join('.pi', 'doom', 'dist');\nconst MODE_MANIFEST_VERSION = 1;\n\nexport interface RuntimeExtensionPlan {\n /** Pi CLI order. Pi evaluates explicit extension arguments in reverse. */\n extensions: string[];\n childExtensions: string[];\n}\n\nexport interface RuntimeBundleBuild extends RuntimeExtensionPlan {\n bundle: string;\n manifest: string;\n}\n\nexport interface ModeBuildSelection {\n majorMode: string;\n domains: string[];\n profile?: string;\n preset: string;\n mute: boolean;\n autoStop: boolean;\n agents: boolean;\n mcp: boolean;\n}\n\nexport interface ModeBuildManifest {\n version: number;\n artifact: string;\n selection: ModeBuildSelection;\n /** Original source entries in the order their factories activate. */\n extensionPaths: string[];\n /** Original source entries inherited by detached child agents. */\n childExtensionPaths: string[];\n resources: {\n /** Exact SKILL.md paths; never derived from the bundled artifact path. */\n skillPaths: string[];\n pluginRoots: string[];\n };\n}\n\nexport interface ModeExtensionBuildOptions {\n repoRoot: string;\n selection: ModeBuildSelection;\n extensionPaths: readonly string[];\n childExtensionPaths?: readonly string[];\n skillPaths?: readonly string[];\n pluginRoots?: readonly string[];\n outputName?: string;\n cacheDirectory?: string;\n outputDirectory?: string;\n}\n\n/** Resolves the parent and detached-child extension lists for one launch. */\nexport function createRuntimeExtensionPlan(context: HarnessContext): RuntimeExtensionPlan {\n const common = {\n agents: context.options.agents,\n preset: context.options.preset,\n mcpEntry: context.mcpEntry,\n personaEntry: context.personaEntry,\n layers: context.selectedLayers,\n majorModesConfig: context.majorModesConfig,\n resolvers: createLayerResolvers(context.options.repoRoot),\n };\n return {\n extensions: assembleExtensions({\n ...common,\n autoStop: context.options.autoStop,\n mute: context.options.mute,\n workflowExtension: context.workflowExtension,\n }),\n childExtensions: assembleChildExtensions({\n ...common,\n agents: false,\n autoStop: false,\n mute: true,\n }),\n };\n}\n\nfunction modeSelection(options: HarnessOptions): ModeBuildSelection {\n return {\n majorMode: options.majorMode,\n domains: [...options.domains],\n profile: options.profile,\n preset: options.preset,\n mute: options.mute,\n autoStop: options.autoStop,\n agents: options.agents,\n mcp: options.mcp,\n };\n}\n\nfunction modeOutputName(selection: ModeBuildSelection): string {\n return [selection.majorMode, selection.mute ? 'mute' : undefined, selection.autoStop ? 'auto-stop' : undefined]\n .filter((value): value is string => Boolean(value))\n .join('.');\n}\n\nfunction manifestPathFor(bundle: string): string {\n return bundle.replace(/\\.mjs$/, '.manifest.json');\n}\n\n/**\n * Emits one named mode extension and its original-path resource manifest.\n *\n * Extension code lives in dist while graph fingerprints remain in cache. Skill\n * loading never follows the bundle's import.meta.url: Pi receives the exact\n * original SKILL.md paths recorded here and in harness state.\n */\nexport async function compileModeExtension(options: ModeExtensionBuildOptions): Promise<{\n bundle: string;\n manifest: string;\n}> {\n const extensionPaths = options.extensionPaths.map((entry) => path.resolve(entry));\n const selection = { ...options.selection, domains: [...options.selection.domains] };\n const bundle = await compileExtensionSet(\n extensionPaths,\n options.cacheDirectory ?? path.join(options.repoRoot, EXTENSION_CACHE_DIRECTORY),\n {\n outputDirectory: options.outputDirectory ?? path.join(options.repoRoot, MODE_DIST_DIRECTORY),\n outputName: options.outputName ?? modeOutputName(selection),\n },\n );\n const manifest = manifestPathFor(bundle);\n const contents: ModeBuildManifest = {\n version: MODE_MANIFEST_VERSION,\n artifact: bundle,\n selection,\n extensionPaths,\n childExtensionPaths: (options.childExtensionPaths ?? []).map((entry) => path.resolve(entry)),\n resources: {\n skillPaths: (options.skillPaths ?? []).map((entry) => path.resolve(entry)),\n pluginRoots: (options.pluginRoots ?? []).map((entry) => path.resolve(entry)),\n },\n };\n writeFileAtomic(manifest, `${JSON.stringify(contents, null, 2)}\\n`);\n return { bundle, manifest };\n}\n\n/** Compiles the exact Pi load order used by the selected launch matrix. */\nexport async function buildRuntimeBundle(\n context: HarnessContext,\n plan: RuntimeExtensionPlan = createRuntimeExtensionPlan(context),\n): Promise<RuntimeBundleBuild> {\n const built = await compileModeExtension({\n repoRoot: context.options.repoRoot,\n selection: modeSelection(context.options),\n extensionPaths: [...plan.extensions].reverse(),\n childExtensionPaths: plan.childExtensions,\n skillPaths: context.resources.skillDirectories,\n pluginRoots: context.plugins.map((plugin) => plugin.directory),\n });\n return { ...plan, ...built };\n}\n"],"mappings":"2RAOA,MAAM,EAA4B,EAAK,KAAK,MAAO,OAAQ,QAAQ,CAC7D,EAAsB,EAAK,KAAK,MAAO,OAAQ,OAAO,CAqD5D,SAAgB,EAA2B,EAA+C,CACxF,IAAM,EAAS,CACb,OAAQ,EAAQ,QAAQ,OACxB,OAAQ,EAAQ,QAAQ,OACxB,SAAU,EAAQ,SAClB,aAAc,EAAQ,aACtB,OAAQ,EAAQ,eAChB,iBAAkB,EAAQ,iBAC1B,UAAW,EAAqB,EAAQ,QAAQ,SAAS,CAC1D,CACD,MAAO,CACL,WAAY,EAAmB,CAC7B,GAAG,EACH,SAAU,EAAQ,QAAQ,SAC1B,KAAM,EAAQ,QAAQ,KACtB,kBAAmB,EAAQ,kBAC5B,CAAC,CACF,gBAAiB,EAAwB,CACvC,GAAG,EACH,OAAQ,GACR,SAAU,GACV,KAAM,GACP,CAAC,CACH,CAGH,SAAS,EAAc,EAA6C,CAClE,MAAO,CACL,UAAW,EAAQ,UACnB,QAAS,CAAC,GAAG,EAAQ,QAAQ,CAC7B,QAAS,EAAQ,QACjB,OAAQ,EAAQ,OAChB,KAAM,EAAQ,KACd,SAAU,EAAQ,SAClB,OAAQ,EAAQ,OAChB,IAAK,EAAQ,IACd,CAGH,SAAS,EAAe,EAAuC,CAC7D,MAAO,CAAC,EAAU,UAAW,EAAU,KAAO,OAAS,IAAA,GAAW,EAAU,SAAW,YAAc,IAAA,GAAU,CAC5G,OAAQ,GAA2B,EAAQ,EAAO,CAClD,KAAK,IAAI,CAGd,SAAS,EAAgB,EAAwB,CAC/C,OAAO,EAAO,QAAQ,SAAU,iBAAiB,CAUnD,eAAsB,EAAqB,EAGxC,CACD,IAAM,EAAiB,EAAQ,eAAe,IAAK,GAAU,EAAK,QAAQ,EAAM,CAAC,CAC3E,EAAY,CAAE,GAAG,EAAQ,UAAW,QAAS,CAAC,GAAG,EAAQ,UAAU,QAAQ,CAAE,CAC7E,EAAS,MAAM,EACnB,EACA,EAAQ,gBAAkB,EAAK,KAAK,EAAQ,SAAU,EAA0B,CAChF,CACE,gBAAiB,EAAQ,iBAAmB,EAAK,KAAK,EAAQ,SAAU,EAAoB,CAC5F,WAAY,EAAQ,YAAc,EAAe,EAAU,CAC5D,CACF,CACK,EAAW,EAAgB,EAAO,CAClC,EAA8B,CAClC,QAAS,EACT,SAAU,EACV,YACA,iBACA,qBAAsB,EAAQ,qBAAuB,EAAE,EAAE,IAAK,GAAU,EAAK,QAAQ,EAAM,CAAC,CAC5F,UAAW,CACT,YAAa,EAAQ,YAAc,EAAE,EAAE,IAAK,GAAU,EAAK,QAAQ,EAAM,CAAC,CAC1E,aAAc,EAAQ,aAAe,EAAE,EAAE,IAAK,GAAU,EAAK,QAAQ,EAAM,CAAC,CAC7E,CACF,CAED,OADA,EAAgB,EAAU,GAAG,KAAK,UAAU,EAAU,KAAM,EAAE,CAAC,IAAI,CAC5D,CAAE,SAAQ,WAAU,CAI7B,eAAsB,EACpB,EACA,EAA6B,EAA2B,EAAQ,CACnC,CAC7B,IAAM,EAAQ,MAAM,EAAqB,CACvC,SAAU,EAAQ,QAAQ,SAC1B,UAAW,EAAc,EAAQ,QAAQ,CACzC,eAAgB,CAAC,GAAG,EAAK,WAAW,CAAC,SAAS,CAC9C,oBAAqB,EAAK,gBAC1B,WAAY,EAAQ,UAAU,iBAC9B,YAAa,EAAQ,QAAQ,IAAK,GAAW,EAAO,UAAU,CAC/D,CAAC,CACF,MAAO,CAAE,GAAG,EAAM,GAAG,EAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.3",
|
|
4
4
|
"description": "Pi-based agent harness for repository automations and developer workflows",
|
|
5
5
|
"homepage": "https://agimon.ai",
|
|
6
6
|
"license": "MIT",
|
|
@@ -327,21 +327,21 @@
|
|
|
327
327
|
"protobufjs": "8.0.1",
|
|
328
328
|
"rolldown": "1.0.0-rc.17",
|
|
329
329
|
"yaml": "2.9.0",
|
|
330
|
-
"@agimon-ai/doompi-
|
|
331
|
-
"@agimon-ai/doompi-
|
|
332
|
-
"@agimon-ai/doompi-
|
|
333
|
-
"@agimon-ai/doompi-
|
|
334
|
-
"@agimon-ai/doompi-
|
|
335
|
-
"@agimon-ai/doompi-
|
|
336
|
-
"@agimon-ai/doompi-
|
|
337
|
-
"@agimon-ai/doompi-
|
|
338
|
-
"@agimon-ai/doompi-
|
|
339
|
-
"@agimon-ai/doompi-
|
|
340
|
-
"@agimon-ai/doompi-
|
|
341
|
-
"@agimon-ai/doompi-
|
|
342
|
-
"@agimon-ai/doompi-
|
|
343
|
-
"@agimon-ai/doompi-workflow": "0.0.1-alpha.
|
|
344
|
-
"@agimon-ai/doompi-
|
|
330
|
+
"@agimon-ai/doompi-config": "0.0.1-alpha.3",
|
|
331
|
+
"@agimon-ai/doompi-autocompact": "0.0.1-alpha.3",
|
|
332
|
+
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.3",
|
|
333
|
+
"@agimon-ai/doompi-file-edit": "0.0.1-alpha.3",
|
|
334
|
+
"@agimon-ai/doompi-plan": "0.0.1-alpha.3",
|
|
335
|
+
"@agimon-ai/doompi-runner": "0.0.1-alpha.3",
|
|
336
|
+
"@agimon-ai/doompi-loop": "0.0.1-alpha.3",
|
|
337
|
+
"@agimon-ai/doompi-team": "0.0.1-alpha.3",
|
|
338
|
+
"@agimon-ai/doompi-mcp": "0.0.1-alpha.3",
|
|
339
|
+
"@agimon-ai/doompi-task": "0.0.1-alpha.3",
|
|
340
|
+
"@agimon-ai/doompi-ui": "0.0.1-alpha.3",
|
|
341
|
+
"@agimon-ai/doompi-voice": "0.0.1-alpha.3",
|
|
342
|
+
"@agimon-ai/doompi-log": "0.0.1-alpha.3",
|
|
343
|
+
"@agimon-ai/doompi-workflow": "0.0.1-alpha.3",
|
|
344
|
+
"@agimon-ai/doompi-telemetry": "0.0.1-alpha.3"
|
|
345
345
|
},
|
|
346
346
|
"devDependencies": {
|
|
347
347
|
"@earendil-works/pi-ai": "0.84.1",
|