@agimon-ai/doompi 0.0.1-alpha.76 → 0.0.1-alpha.78
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/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/antigravity.cjs +5 -0
- package/dist/antigravity.d.cts +2 -0
- package/dist/antigravity.d.mts +2 -0
- package/dist/antigravity.mjs +2 -0
- package/dist/api-contracts.cjs +11 -0
- package/dist/api-contracts.cjs.map +1 -0
- package/dist/api-contracts.d.cts +52 -0
- package/dist/api-contracts.d.cts.map +1 -0
- package/dist/api-contracts.d.mts +52 -0
- package/dist/api-contracts.d.mts.map +1 -0
- package/dist/api-contracts.mjs +7 -0
- package/dist/api-contracts.mjs.map +1 -0
- package/dist/base-command.cjs +3 -0
- package/dist/base-command.d.cts +2 -0
- package/dist/base-command.d.mts +2 -0
- package/dist/base-command.mjs +2 -0
- package/dist/bin/cli.cjs +29 -0
- package/dist/bin/cli.cjs.map +1 -0
- package/dist/bin/cli.d.cts +1 -0
- package/dist/bin/cli.d.mts +1 -0
- package/dist/bin/cli.mjs +30 -0
- package/dist/bin/cli.mjs.map +1 -0
- package/dist/bin/doomRunner.cjs +39 -0
- package/dist/bin/doomRunner.cjs.map +1 -0
- package/dist/bin/doomRunner.d.cts +12 -0
- package/dist/bin/doomRunner.d.cts.map +1 -0
- package/dist/bin/doomRunner.d.mts +12 -0
- package/dist/bin/doomRunner.d.mts.map +1 -0
- package/dist/bin/doomRunner.mjs +38 -0
- package/dist/bin/doomRunner.mjs.map +1 -0
- package/dist/bin/dpi.cjs +12 -0
- package/dist/bin/dpi.cjs.map +1 -0
- package/dist/bin/dpi.d.cts +1 -0
- package/dist/bin/dpi.d.mts +1 -0
- package/dist/bin/dpi.mjs +14 -0
- package/dist/bin/dpi.mjs.map +1 -0
- package/dist/bin/serve.cjs +11 -0
- package/dist/bin/serve.cjs.map +1 -0
- package/dist/bin/serve.d.cts +1 -0
- package/dist/bin/serve.d.mts +1 -0
- package/dist/bin/serve.mjs +13 -0
- package/dist/bin/serve.mjs.map +1 -0
- package/dist/builders/apiContractExport/index.cjs +81 -0
- package/dist/builders/apiContractExport/index.cjs.map +1 -0
- package/dist/builders/apiContractExport/index.mjs +77 -0
- package/dist/builders/apiContractExport/index.mjs.map +1 -0
- package/dist/builders/apiContracts/index.cjs +87 -0
- package/dist/builders/apiContracts/index.cjs.map +1 -0
- package/dist/builders/apiContracts/index.mjs +82 -0
- package/dist/builders/apiContracts/index.mjs.map +1 -0
- package/dist/builders/cli/bootstrapClaim.cjs +53 -0
- package/dist/builders/cli/bootstrapClaim.cjs.map +1 -0
- package/dist/builders/cli/bootstrapClaim.mjs +51 -0
- package/dist/builders/cli/bootstrapClaim.mjs.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.cjs +204 -0
- package/dist/builders/cli/bootstrapLocator/index.cjs.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.d.cts +5 -0
- package/dist/builders/cli/bootstrapLocator/index.d.cts.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.d.mts +5 -0
- package/dist/builders/cli/bootstrapLocator/index.d.mts.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.mjs +196 -0
- package/dist/builders/cli/bootstrapLocator/index.mjs.map +1 -0
- package/dist/builders/cli/composition.cjs +378 -0
- package/dist/builders/cli/composition.cjs.map +1 -0
- package/dist/builders/cli/composition.d.cts +119 -0
- package/dist/builders/cli/composition.d.cts.map +1 -0
- package/dist/builders/cli/composition.d.mts +119 -0
- package/dist/builders/cli/composition.d.mts.map +1 -0
- package/dist/builders/cli/composition.mjs +351 -0
- package/dist/builders/cli/composition.mjs.map +1 -0
- package/dist/builders/cli/compositionState.cjs +33 -0
- package/dist/builders/cli/compositionState.cjs.map +1 -0
- package/dist/builders/cli/compositionState.d.cts +9 -0
- package/dist/builders/cli/compositionState.d.cts.map +1 -0
- package/dist/builders/cli/compositionState.d.mts +9 -0
- package/dist/builders/cli/compositionState.d.mts.map +1 -0
- package/dist/builders/cli/compositionState.mjs +30 -0
- package/dist/builders/cli/compositionState.mjs.map +1 -0
- package/dist/builders/cli/constants.cjs +20 -0
- package/dist/builders/cli/constants.cjs.map +1 -0
- package/dist/builders/cli/constants.d.cts +17 -0
- package/dist/builders/cli/constants.d.cts.map +1 -0
- package/dist/builders/cli/constants.d.mts +17 -0
- package/dist/builders/cli/constants.d.mts.map +1 -0
- package/dist/builders/cli/constants.mjs +19 -0
- package/dist/builders/cli/constants.mjs.map +1 -0
- package/dist/builders/cli/contextCatalog.cjs +130 -0
- package/dist/builders/cli/contextCatalog.cjs.map +1 -0
- package/dist/builders/cli/contextCatalog.mjs +130 -0
- package/dist/builders/cli/contextCatalog.mjs.map +1 -0
- package/dist/builders/cli/dpiSettings.cjs +118 -0
- package/dist/builders/cli/dpiSettings.cjs.map +1 -0
- package/dist/builders/cli/dpiSettings.mjs +111 -0
- package/dist/builders/cli/dpiSettings.mjs.map +1 -0
- package/dist/builders/cli/entryResolution.cjs +23 -0
- package/dist/builders/cli/entryResolution.cjs.map +1 -0
- package/dist/builders/cli/entryResolution.d.cts +5 -0
- package/dist/builders/cli/entryResolution.d.cts.map +1 -0
- package/dist/builders/cli/entryResolution.d.mts +5 -0
- package/dist/builders/cli/entryResolution.d.mts.map +1 -0
- package/dist/builders/cli/entryResolution.mjs +20 -0
- package/dist/builders/cli/entryResolution.mjs.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.cjs +386 -0
- package/dist/builders/cli/extensionAssembler/index.cjs.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.d.cts +113 -0
- package/dist/builders/cli/extensionAssembler/index.d.cts.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.d.mts +113 -0
- package/dist/builders/cli/extensionAssembler/index.d.mts.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.mjs +376 -0
- package/dist/builders/cli/extensionAssembler/index.mjs.map +1 -0
- package/dist/builders/cli/harnessContext.cjs +186 -0
- package/dist/builders/cli/harnessContext.cjs.map +1 -0
- package/dist/builders/cli/harnessContext.d.cts +51 -0
- package/dist/builders/cli/harnessContext.d.cts.map +1 -0
- package/dist/builders/cli/harnessContext.d.mts +51 -0
- package/dist/builders/cli/harnessContext.d.mts.map +1 -0
- package/dist/builders/cli/harnessContext.mjs +179 -0
- package/dist/builders/cli/harnessContext.mjs.map +1 -0
- package/dist/builders/cli/index.cjs +151 -0
- package/dist/builders/cli/index.cjs.map +1 -0
- package/dist/builders/cli/index.d.cts +22 -0
- package/dist/builders/cli/index.d.cts.map +1 -0
- package/dist/builders/cli/index.d.mts +22 -0
- package/dist/builders/cli/index.d.mts.map +1 -0
- package/dist/builders/cli/index.mjs +147 -0
- package/dist/builders/cli/index.mjs.map +1 -0
- package/dist/builders/cli/launchPlan/index.cjs +102 -0
- package/dist/builders/cli/launchPlan/index.cjs.map +1 -0
- package/dist/builders/cli/launchPlan/index.d.cts +43 -0
- package/dist/builders/cli/launchPlan/index.d.cts.map +1 -0
- package/dist/builders/cli/launchPlan/index.d.mts +43 -0
- package/dist/builders/cli/launchPlan/index.d.mts.map +1 -0
- package/dist/builders/cli/launchPlan/index.mjs +100 -0
- package/dist/builders/cli/launchPlan/index.mjs.map +1 -0
- package/dist/builders/cli/launcherComposition/index.cjs +84 -0
- package/dist/builders/cli/launcherComposition/index.cjs.map +1 -0
- package/dist/builders/cli/launcherComposition/index.mjs +80 -0
- package/dist/builders/cli/launcherComposition/index.mjs.map +1 -0
- package/dist/builders/cli/piExtensionAlias/index.cjs +40 -0
- package/dist/builders/cli/piExtensionAlias/index.cjs.map +1 -0
- package/dist/builders/cli/piExtensionAlias/index.mjs +35 -0
- package/dist/builders/cli/piExtensionAlias/index.mjs.map +1 -0
- package/dist/builders/cli/piExtensionDispatcher/index.cjs +205 -0
- package/dist/builders/cli/piExtensionDispatcher/index.cjs.map +1 -0
- package/dist/builders/cli/piExtensionDispatcher/index.mjs +198 -0
- package/dist/builders/cli/piExtensionDispatcher/index.mjs.map +1 -0
- package/dist/builders/cli/prepare.cjs +64 -0
- package/dist/builders/cli/prepare.cjs.map +1 -0
- package/dist/builders/cli/prepare.mjs +62 -0
- package/dist/builders/cli/prepare.mjs.map +1 -0
- package/dist/builders/cli/projectSettings.cjs +155 -0
- package/dist/builders/cli/projectSettings.cjs.map +1 -0
- package/dist/builders/cli/projectSettings.d.cts +27 -0
- package/dist/builders/cli/projectSettings.d.cts.map +1 -0
- package/dist/builders/cli/projectSettings.d.mts +27 -0
- package/dist/builders/cli/projectSettings.d.mts.map +1 -0
- package/dist/builders/cli/projectSettings.mjs +144 -0
- package/dist/builders/cli/projectSettings.mjs.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.cjs +130 -0
- package/dist/builders/cli/runtimeBundle/index.cjs.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.d.cts +21 -0
- package/dist/builders/cli/runtimeBundle/index.d.cts.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.d.mts +21 -0
- package/dist/builders/cli/runtimeBundle/index.d.mts.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.mjs +126 -0
- package/dist/builders/cli/runtimeBundle/index.mjs.map +1 -0
- package/dist/builders/server/index.cjs +184 -0
- package/dist/builders/server/index.cjs.map +1 -0
- package/dist/builders/server/index.mjs +181 -0
- package/dist/builders/server/index.mjs.map +1 -0
- package/dist/builders/server/runtime.cjs +603 -0
- package/dist/builders/server/runtime.cjs.map +1 -0
- package/dist/builders/server/runtime.mjs +595 -0
- package/dist/builders/server/runtime.mjs.map +1 -0
- package/dist/builders/server/selectionStatus.cjs +12 -0
- package/dist/builders/server/selectionStatus.cjs.map +1 -0
- package/dist/builders/server/selectionStatus.mjs +12 -0
- package/dist/builders/server/selectionStatus.mjs.map +1 -0
- package/dist/builders/server/sessionArguments.cjs +22 -0
- package/dist/builders/server/sessionArguments.cjs.map +1 -0
- package/dist/builders/server/sessionArguments.mjs +22 -0
- package/dist/builders/server/sessionArguments.mjs.map +1 -0
- package/dist/builders/web/bundle.cjs +110 -0
- package/dist/builders/web/bundle.cjs.map +1 -0
- package/dist/builders/web/bundle.d.cts +29 -0
- package/dist/builders/web/bundle.d.cts.map +1 -0
- package/dist/builders/web/bundle.d.mts +29 -0
- package/dist/builders/web/bundle.d.mts.map +1 -0
- package/dist/builders/web/bundle.mjs +107 -0
- package/dist/builders/web/bundle.mjs.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.cjs +96 -0
- package/dist/builders/web/bundleAssetPolicy.cjs.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.d.cts +22 -0
- package/dist/builders/web/bundleAssetPolicy.d.cts.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.d.mts +22 -0
- package/dist/builders/web/bundleAssetPolicy.d.mts.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.mjs +95 -0
- package/dist/builders/web/bundleAssetPolicy.mjs.map +1 -0
- package/dist/builders/web/index.cjs +75 -0
- package/dist/builders/web/index.cjs.map +1 -0
- package/dist/builders/web/index.d.cts +29 -0
- package/dist/builders/web/index.d.cts.map +1 -0
- package/dist/builders/web/index.d.mts +29 -0
- package/dist/builders/web/index.d.mts.map +1 -0
- package/dist/builders/web/index.mjs +72 -0
- package/dist/builders/web/index.mjs.map +1 -0
- package/dist/builders/web/webDevRoots.cjs +27 -0
- package/dist/builders/web/webDevRoots.cjs.map +1 -0
- package/dist/builders/web/webDevRoots.d.cts +22 -0
- package/dist/builders/web/webDevRoots.d.cts.map +1 -0
- package/dist/builders/web/webDevRoots.d.mts +22 -0
- package/dist/builders/web/webDevRoots.d.mts.map +1 -0
- package/dist/builders/web/webDevRoots.mjs +25 -0
- package/dist/builders/web/webDevRoots.mjs.map +1 -0
- package/dist/builders/web/webPluginGenerate.cjs +113 -0
- package/dist/builders/web/webPluginGenerate.cjs.map +1 -0
- package/dist/builders/web/webPluginGenerate.d.cts +28 -0
- package/dist/builders/web/webPluginGenerate.d.cts.map +1 -0
- package/dist/builders/web/webPluginGenerate.d.mts +28 -0
- package/dist/builders/web/webPluginGenerate.d.mts.map +1 -0
- package/dist/builders/web/webPluginGenerate.mjs +106 -0
- package/dist/builders/web/webPluginGenerate.mjs.map +1 -0
- package/dist/builders/web/webPluginManifest.cjs +92 -0
- package/dist/builders/web/webPluginManifest.cjs.map +1 -0
- package/dist/builders/web/webPluginManifest.d.cts +44 -0
- package/dist/builders/web/webPluginManifest.d.cts.map +1 -0
- package/dist/builders/web/webPluginManifest.d.mts +44 -0
- package/dist/builders/web/webPluginManifest.d.mts.map +1 -0
- package/dist/builders/web/webPluginManifest.mjs +88 -0
- package/dist/builders/web/webPluginManifest.mjs.map +1 -0
- package/dist/builders/web/webPluginScan.cjs +53 -0
- package/dist/builders/web/webPluginScan.cjs.map +1 -0
- package/dist/builders/web/webPluginScan.d.cts +16 -0
- package/dist/builders/web/webPluginScan.d.cts.map +1 -0
- package/dist/builders/web/webPluginScan.d.mts +16 -0
- package/dist/builders/web/webPluginScan.d.mts.map +1 -0
- package/dist/builders/web/webPluginScan.mjs +50 -0
- package/dist/builders/web/webPluginScan.mjs.map +1 -0
- package/dist/builders/web/webPluginVite.cjs +124 -0
- package/dist/builders/web/webPluginVite.cjs.map +1 -0
- package/dist/builders/web/webPluginVite.d.cts +36 -0
- package/dist/builders/web/webPluginVite.d.cts.map +1 -0
- package/dist/builders/web/webPluginVite.d.mts +36 -0
- package/dist/builders/web/webPluginVite.d.mts.map +1 -0
- package/dist/builders/web/webPluginVite.mjs +116 -0
- package/dist/builders/web/webPluginVite.mjs.map +1 -0
- package/dist/builders/web.cjs +33 -0
- package/dist/builders/web.d.cts +9 -0
- package/dist/builders/web.d.mts +9 -0
- package/dist/builders/web.mjs +9 -0
- package/dist/cli/cliApp.cjs +177 -0
- package/dist/cli/cliApp.cjs.map +1 -0
- package/dist/cli/cliApp.d.cts +25 -0
- package/dist/cli/cliApp.d.cts.map +1 -0
- package/dist/cli/cliApp.d.mts +25 -0
- package/dist/cli/cliApp.d.mts.map +1 -0
- package/dist/cli/cliApp.mjs +175 -0
- package/dist/cli/cliApp.mjs.map +1 -0
- package/dist/cli/commands/api-export/index.cjs +65 -0
- package/dist/cli/commands/api-export/index.cjs.map +1 -0
- package/dist/cli/commands/api-export/index.mjs +61 -0
- package/dist/cli/commands/api-export/index.mjs.map +1 -0
- package/dist/cli/commands/baseCommand.cjs +16 -0
- package/dist/cli/commands/baseCommand.cjs.map +1 -0
- package/dist/cli/commands/baseCommand.d.cts +24 -0
- package/dist/cli/commands/baseCommand.d.cts.map +1 -0
- package/dist/cli/commands/baseCommand.d.mts +24 -0
- package/dist/cli/commands/baseCommand.d.mts.map +1 -0
- package/dist/cli/commands/baseCommand.mjs +16 -0
- package/dist/cli/commands/baseCommand.mjs.map +1 -0
- package/dist/cli/commands/compat/context.cjs +115 -0
- package/dist/cli/commands/compat/context.cjs.map +1 -0
- package/dist/cli/commands/compat/context.d.cts +22 -0
- package/dist/cli/commands/compat/context.d.cts.map +1 -0
- package/dist/cli/commands/compat/context.d.mts +22 -0
- package/dist/cli/commands/compat/context.d.mts.map +1 -0
- package/dist/cli/commands/compat/context.mjs +110 -0
- package/dist/cli/commands/compat/context.mjs.map +1 -0
- package/dist/cli/commands/compat/help.cjs +26 -0
- package/dist/cli/commands/compat/help.cjs.map +1 -0
- package/dist/cli/commands/compat/help.d.cts +4 -0
- package/dist/cli/commands/compat/help.d.cts.map +1 -0
- package/dist/cli/commands/compat/help.d.mts +4 -0
- package/dist/cli/commands/compat/help.d.mts.map +1 -0
- package/dist/cli/commands/compat/help.mjs +25 -0
- package/dist/cli/commands/compat/help.mjs.map +1 -0
- package/dist/cli/commands/compat/index.cjs +73 -0
- package/dist/cli/commands/compat/index.cjs.map +1 -0
- package/dist/cli/commands/compat/index.d.cts +14 -0
- package/dist/cli/commands/compat/index.d.cts.map +1 -0
- package/dist/cli/commands/compat/index.d.mts +14 -0
- package/dist/cli/commands/compat/index.d.mts.map +1 -0
- package/dist/cli/commands/compat/index.mjs +70 -0
- package/dist/cli/commands/compat/index.mjs.map +1 -0
- package/dist/cli/commands/compat/options.cjs +88 -0
- package/dist/cli/commands/compat/options.cjs.map +1 -0
- package/dist/cli/commands/compat/options.d.cts +15 -0
- package/dist/cli/commands/compat/options.d.cts.map +1 -0
- package/dist/cli/commands/compat/options.d.mts +15 -0
- package/dist/cli/commands/compat/options.d.mts.map +1 -0
- package/dist/cli/commands/compat/options.mjs +86 -0
- package/dist/cli/commands/compat/options.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.cjs +294 -0
- package/dist/cli/commands/compat/providers/antigravity.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.d.cts +9 -0
- package/dist/cli/commands/compat/providers/antigravity.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.d.mts +9 -0
- package/dist/cli/commands/compat/providers/antigravity.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.mjs +289 -0
- package/dist/cli/commands/compat/providers/antigravity.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/codex.cjs +178 -0
- package/dist/cli/commands/compat/providers/codex.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/codex.d.cts +17 -0
- package/dist/cli/commands/compat/providers/codex.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/codex.d.mts +17 -0
- package/dist/cli/commands/compat/providers/codex.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/codex.mjs +170 -0
- package/dist/cli/commands/compat/providers/codex.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/index.cjs +65 -0
- package/dist/cli/commands/compat/providers/index.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/index.d.cts +15 -0
- package/dist/cli/commands/compat/providers/index.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/index.d.mts +15 -0
- package/dist/cli/commands/compat/providers/index.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/index.mjs +45 -0
- package/dist/cli/commands/compat/providers/index.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/process.cjs +172 -0
- package/dist/cli/commands/compat/providers/process.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/process.d.cts +33 -0
- package/dist/cli/commands/compat/providers/process.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/process.d.mts +33 -0
- package/dist/cli/commands/compat/providers/process.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/process.mjs +159 -0
- package/dist/cli/commands/compat/providers/process.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/shared.cjs +76 -0
- package/dist/cli/commands/compat/providers/shared.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/shared.d.cts +40 -0
- package/dist/cli/commands/compat/providers/shared.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/shared.d.mts +40 -0
- package/dist/cli/commands/compat/providers/shared.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/shared.mjs +61 -0
- package/dist/cli/commands/compat/providers/shared.mjs.map +1 -0
- package/dist/cli/commands/compat/types.d.cts +31 -0
- package/dist/cli/commands/compat/types.d.cts.map +1 -0
- package/dist/cli/commands/compat/types.d.mts +31 -0
- package/dist/cli/commands/compat/types.d.mts.map +1 -0
- package/dist/cli/commands/doctor/help.cjs +19 -0
- package/dist/cli/commands/doctor/help.cjs.map +1 -0
- package/dist/cli/commands/doctor/help.d.cts +4 -0
- package/dist/cli/commands/doctor/help.d.cts.map +1 -0
- package/dist/cli/commands/doctor/help.d.mts +4 -0
- package/dist/cli/commands/doctor/help.d.mts.map +1 -0
- package/dist/cli/commands/doctor/help.mjs +19 -0
- package/dist/cli/commands/doctor/help.mjs.map +1 -0
- package/dist/cli/commands/doctor/index.cjs +116 -0
- package/dist/cli/commands/doctor/index.cjs.map +1 -0
- package/dist/cli/commands/doctor/index.d.cts +12 -0
- package/dist/cli/commands/doctor/index.d.cts.map +1 -0
- package/dist/cli/commands/doctor/index.d.mts +12 -0
- package/dist/cli/commands/doctor/index.d.mts.map +1 -0
- package/dist/cli/commands/doctor/index.mjs +112 -0
- package/dist/cli/commands/doctor/index.mjs.map +1 -0
- package/dist/cli/commands/emit-mcp/index.cjs +32 -0
- package/dist/cli/commands/emit-mcp/index.cjs.map +1 -0
- package/dist/cli/commands/emit-mcp/index.d.cts +19 -0
- package/dist/cli/commands/emit-mcp/index.d.cts.map +1 -0
- package/dist/cli/commands/emit-mcp/index.d.mts +19 -0
- package/dist/cli/commands/emit-mcp/index.d.mts.map +1 -0
- package/dist/cli/commands/emit-mcp/index.mjs +31 -0
- package/dist/cli/commands/emit-mcp/index.mjs.map +1 -0
- package/dist/cli/commands/explain/index.cjs +155 -0
- package/dist/cli/commands/explain/index.cjs.map +1 -0
- package/dist/cli/commands/explain/index.d.cts +57 -0
- package/dist/cli/commands/explain/index.d.cts.map +1 -0
- package/dist/cli/commands/explain/index.d.mts +57 -0
- package/dist/cli/commands/explain/index.d.mts.map +1 -0
- package/dist/cli/commands/explain/index.mjs +150 -0
- package/dist/cli/commands/explain/index.mjs.map +1 -0
- package/dist/cli/commands/history-export/help.cjs +18 -0
- package/dist/cli/commands/history-export/help.cjs.map +1 -0
- package/dist/cli/commands/history-export/help.d.cts +4 -0
- package/dist/cli/commands/history-export/help.d.cts.map +1 -0
- package/dist/cli/commands/history-export/help.d.mts +4 -0
- package/dist/cli/commands/history-export/help.d.mts.map +1 -0
- package/dist/cli/commands/history-export/help.mjs +18 -0
- package/dist/cli/commands/history-export/help.mjs.map +1 -0
- package/dist/cli/commands/history-export/index.cjs +76 -0
- package/dist/cli/commands/history-export/index.cjs.map +1 -0
- package/dist/cli/commands/history-export/index.mjs +74 -0
- package/dist/cli/commands/history-export/index.mjs.map +1 -0
- package/dist/cli/commands/history-import/help.cjs +20 -0
- package/dist/cli/commands/history-import/help.cjs.map +1 -0
- package/dist/cli/commands/history-import/help.d.cts +4 -0
- package/dist/cli/commands/history-import/help.d.cts.map +1 -0
- package/dist/cli/commands/history-import/help.d.mts +4 -0
- package/dist/cli/commands/history-import/help.d.mts.map +1 -0
- package/dist/cli/commands/history-import/help.mjs +20 -0
- package/dist/cli/commands/history-import/help.mjs.map +1 -0
- package/dist/cli/commands/history-import/index.cjs +78 -0
- package/dist/cli/commands/history-import/index.cjs.map +1 -0
- package/dist/cli/commands/history-import/index.mjs +75 -0
- package/dist/cli/commands/history-import/index.mjs.map +1 -0
- package/dist/cli/commands/init/constants.cjs +11 -0
- package/dist/cli/commands/init/constants.cjs.map +1 -0
- package/dist/cli/commands/init/constants.mjs +11 -0
- package/dist/cli/commands/init/constants.mjs.map +1 -0
- package/dist/cli/commands/init/help.cjs +17 -0
- package/dist/cli/commands/init/help.cjs.map +1 -0
- package/dist/cli/commands/init/help.d.cts +4 -0
- package/dist/cli/commands/init/help.d.cts.map +1 -0
- package/dist/cli/commands/init/help.d.mts +4 -0
- package/dist/cli/commands/init/help.d.mts.map +1 -0
- package/dist/cli/commands/init/help.mjs +17 -0
- package/dist/cli/commands/init/help.mjs.map +1 -0
- package/dist/cli/commands/init/index.cjs +87 -0
- package/dist/cli/commands/init/index.cjs.map +1 -0
- package/dist/cli/commands/init/index.d.cts +12 -0
- package/dist/cli/commands/init/index.d.cts.map +1 -0
- package/dist/cli/commands/init/index.d.mts +12 -0
- package/dist/cli/commands/init/index.d.mts.map +1 -0
- package/dist/cli/commands/init/index.mjs +83 -0
- package/dist/cli/commands/init/index.mjs.map +1 -0
- package/dist/cli/commands/init/presenter.cjs +170 -0
- package/dist/cli/commands/init/presenter.cjs.map +1 -0
- package/dist/cli/commands/init/presenter.d.cts +8 -0
- package/dist/cli/commands/init/presenter.d.cts.map +1 -0
- package/dist/cli/commands/init/presenter.d.mts +8 -0
- package/dist/cli/commands/init/presenter.d.mts.map +1 -0
- package/dist/cli/commands/init/presenter.mjs +170 -0
- package/dist/cli/commands/init/presenter.mjs.map +1 -0
- package/dist/cli/commands/launch/index.cjs +128 -0
- package/dist/cli/commands/launch/index.cjs.map +1 -0
- package/dist/cli/commands/launch/index.d.cts +29 -0
- package/dist/cli/commands/launch/index.d.cts.map +1 -0
- package/dist/cli/commands/launch/index.d.mts +29 -0
- package/dist/cli/commands/launch/index.d.mts.map +1 -0
- package/dist/cli/commands/launch/index.mjs +122 -0
- package/dist/cli/commands/launch/index.mjs.map +1 -0
- package/dist/cli/commands/sandbox/args.cjs +50 -0
- package/dist/cli/commands/sandbox/args.cjs.map +1 -0
- package/dist/cli/commands/sandbox/args.mjs +50 -0
- package/dist/cli/commands/sandbox/args.mjs.map +1 -0
- package/dist/cli/commands/sandbox/harness.cjs +61 -0
- package/dist/cli/commands/sandbox/harness.cjs.map +1 -0
- package/dist/cli/commands/sandbox/harness.mjs +60 -0
- package/dist/cli/commands/sandbox/harness.mjs.map +1 -0
- package/dist/cli/commands/sandbox/index.cjs +57 -0
- package/dist/cli/commands/sandbox/index.cjs.map +1 -0
- package/dist/cli/commands/sandbox/index.mjs +56 -0
- package/dist/cli/commands/sandbox/index.mjs.map +1 -0
- package/dist/cli/commands/sync/help.cjs +31 -0
- package/dist/cli/commands/sync/help.cjs.map +1 -0
- package/dist/cli/commands/sync/help.d.cts +4 -0
- package/dist/cli/commands/sync/help.d.cts.map +1 -0
- package/dist/cli/commands/sync/help.d.mts +4 -0
- package/dist/cli/commands/sync/help.d.mts.map +1 -0
- package/dist/cli/commands/sync/help.mjs +31 -0
- package/dist/cli/commands/sync/help.mjs.map +1 -0
- package/dist/cli/commands/sync/index.cjs +577 -0
- package/dist/cli/commands/sync/index.cjs.map +1 -0
- package/dist/cli/commands/sync/index.d.cts +65 -0
- package/dist/cli/commands/sync/index.d.cts.map +1 -0
- package/dist/cli/commands/sync/index.d.mts +65 -0
- package/dist/cli/commands/sync/index.d.mts.map +1 -0
- package/dist/cli/commands/sync/index.mjs +560 -0
- package/dist/cli/commands/sync/index.mjs.map +1 -0
- package/dist/cli/commands/sync/prepare.cjs +43 -0
- package/dist/cli/commands/sync/prepare.cjs.map +1 -0
- package/dist/cli/commands/sync/prepare.mjs +40 -0
- package/dist/cli/commands/sync/prepare.mjs.map +1 -0
- package/dist/cli/commands/sync/presenter.cjs +58 -0
- package/dist/cli/commands/sync/presenter.cjs.map +1 -0
- package/dist/cli/commands/sync/presenter.d.cts +16 -0
- package/dist/cli/commands/sync/presenter.d.cts.map +1 -0
- package/dist/cli/commands/sync/presenter.d.mts +16 -0
- package/dist/cli/commands/sync/presenter.d.mts.map +1 -0
- package/dist/cli/commands/sync/presenter.mjs +57 -0
- package/dist/cli/commands/sync/presenter.mjs.map +1 -0
- package/dist/cli/commands/sync/workflow.cjs +99 -0
- package/dist/cli/commands/sync/workflow.cjs.map +1 -0
- package/dist/cli/commands/sync/workflow.mjs +96 -0
- package/dist/cli/commands/sync/workflow.mjs.map +1 -0
- package/dist/cli/dpi.cjs +98 -0
- package/dist/cli/dpi.cjs.map +1 -0
- package/dist/cli/dpi.mjs +91 -0
- package/dist/cli/dpi.mjs.map +1 -0
- package/dist/cli/harnessOptions.cjs +60 -0
- package/dist/cli/harnessOptions.cjs.map +1 -0
- package/dist/cli/harnessOptions.d.cts +24 -0
- package/dist/cli/harnessOptions.d.cts.map +1 -0
- package/dist/cli/harnessOptions.d.mts +24 -0
- package/dist/cli/harnessOptions.d.mts.map +1 -0
- package/dist/cli/harnessOptions.mjs +57 -0
- package/dist/cli/harnessOptions.mjs.map +1 -0
- package/dist/cli/help.cjs +89 -0
- package/dist/cli/help.cjs.map +1 -0
- package/dist/cli/help.d.cts +12 -0
- package/dist/cli/help.d.cts.map +1 -0
- package/dist/cli/help.d.mts +12 -0
- package/dist/cli/help.d.mts.map +1 -0
- package/dist/cli/help.mjs +83 -0
- package/dist/cli/help.mjs.map +1 -0
- package/dist/cli/matrixOptions.cjs +178 -0
- package/dist/cli/matrixOptions.cjs.map +1 -0
- package/dist/cli/matrixOptions.d.cts +90 -0
- package/dist/cli/matrixOptions.d.cts.map +1 -0
- package/dist/cli/matrixOptions.d.mts +90 -0
- package/dist/cli/matrixOptions.d.mts.map +1 -0
- package/dist/cli/matrixOptions.mjs +151 -0
- package/dist/cli/matrixOptions.mjs.map +1 -0
- package/dist/cli/options.cjs +306 -0
- package/dist/cli/options.cjs.map +1 -0
- package/dist/cli/options.d.cts +5 -0
- package/dist/cli/options.d.cts.map +1 -0
- package/dist/cli/options.d.mts +5 -0
- package/dist/cli/options.d.mts.map +1 -0
- package/dist/cli/options.mjs +304 -0
- package/dist/cli/options.mjs.map +1 -0
- package/dist/cli/router.cjs +59 -0
- package/dist/cli/router.cjs.map +1 -0
- package/dist/cli/router.d.cts +32 -0
- package/dist/cli/router.d.cts.map +1 -0
- package/dist/cli/router.d.mts +32 -0
- package/dist/cli/router.d.mts.map +1 -0
- package/dist/cli/router.mjs +56 -0
- package/dist/cli/router.mjs.map +1 -0
- package/dist/cli/server/options.cjs +71 -0
- package/dist/cli/server/options.cjs.map +1 -0
- package/dist/cli/server/options.mjs +70 -0
- package/dist/cli/server/options.mjs.map +1 -0
- package/dist/cli/server/run.cjs +45 -0
- package/dist/cli/server/run.cjs.map +1 -0
- package/dist/cli/server/run.mjs +45 -0
- package/dist/cli/server/run.mjs.map +1 -0
- package/dist/cli-app.cjs +5 -0
- package/dist/cli-app.d.cts +2 -0
- package/dist/cli-app.d.mts +2 -0
- package/dist/cli-app.mjs +2 -0
- package/dist/cli.cjs +28 -0
- package/dist/cli.d.cts +11 -0
- package/dist/cli.d.mts +11 -0
- package/dist/cli.mjs +11 -0
- package/dist/codex.cjs +8 -0
- package/dist/codex.d.cts +2 -0
- package/dist/codex.d.mts +2 -0
- package/dist/codex.mjs +2 -0
- package/dist/commands.cjs +23 -0
- package/dist/commands.d.cts +9 -0
- package/dist/commands.d.mts +9 -0
- package/dist/commands.mjs +9 -0
- package/dist/compatibility-command.cjs +4 -0
- package/dist/compatibility-command.d.cts +2 -0
- package/dist/compatibility-command.d.mts +2 -0
- package/dist/compatibility-command.mjs +2 -0
- package/dist/compatibility-context.cjs +3 -0
- package/dist/compatibility-context.d.cts +2 -0
- package/dist/compatibility-context.d.mts +2 -0
- package/dist/compatibility-context.mjs +2 -0
- package/dist/compatibility-options.cjs +5 -0
- package/dist/compatibility-options.d.cts +2 -0
- package/dist/compatibility-options.d.mts +2 -0
- package/dist/compatibility-options.mjs +2 -0
- package/dist/compatibility.cjs +27 -0
- package/dist/compatibility.d.cts +6 -0
- package/dist/compatibility.d.mts +6 -0
- package/dist/compatibility.mjs +6 -0
- package/dist/compiler/cache.cjs +331 -0
- package/dist/compiler/cache.cjs.map +1 -0
- package/dist/compiler/cache.mjs +323 -0
- package/dist/compiler/cache.mjs.map +1 -0
- package/dist/compiler/index.cjs +996 -0
- package/dist/compiler/index.cjs.map +1 -0
- package/dist/compiler/index.mjs +988 -0
- package/dist/compiler/index.mjs.map +1 -0
- package/dist/compiler/inputs.cjs +83 -0
- package/dist/compiler/inputs.cjs.map +1 -0
- package/dist/compiler/inputs.mjs +78 -0
- package/dist/compiler/inputs.mjs.map +1 -0
- package/dist/composer.cjs +28 -0
- package/dist/composer.d.cts +4 -0
- package/dist/composer.d.mts +4 -0
- package/dist/composer.mjs +4 -0
- package/dist/composition/harnessState/index.cjs +48 -0
- package/dist/composition/harnessState/index.cjs.map +1 -0
- package/dist/composition/harnessState/index.d.cts +19 -0
- package/dist/composition/harnessState/index.d.cts.map +1 -0
- package/dist/composition/harnessState/index.d.mts +19 -0
- package/dist/composition/harnessState/index.d.mts.map +1 -0
- package/dist/composition/harnessState/index.mjs +34 -0
- package/dist/composition/harnessState/index.mjs.map +1 -0
- package/dist/composition/layerPackageInstaller/index.cjs +342 -0
- package/dist/composition/layerPackageInstaller/index.cjs.map +1 -0
- package/dist/composition/layerPackageInstaller/index.d.cts +45 -0
- package/dist/composition/layerPackageInstaller/index.d.cts.map +1 -0
- package/dist/composition/layerPackageInstaller/index.d.mts +45 -0
- package/dist/composition/layerPackageInstaller/index.d.mts.map +1 -0
- package/dist/composition/layerPackageInstaller/index.mjs +334 -0
- package/dist/composition/layerPackageInstaller/index.mjs.map +1 -0
- package/dist/composition/projectTrust/index.cjs +51 -0
- package/dist/composition/projectTrust/index.cjs.map +1 -0
- package/dist/composition/projectTrust/index.d.cts +22 -0
- package/dist/composition/projectTrust/index.d.cts.map +1 -0
- package/dist/composition/projectTrust/index.d.mts +22 -0
- package/dist/composition/projectTrust/index.d.mts.map +1 -0
- package/dist/composition/projectTrust/index.mjs +48 -0
- package/dist/composition/projectTrust/index.mjs.map +1 -0
- package/dist/composition/repository/index.cjs +69 -0
- package/dist/composition/repository/index.cjs.map +1 -0
- package/dist/composition/repository/index.d.cts +22 -0
- package/dist/composition/repository/index.d.cts.map +1 -0
- package/dist/composition/repository/index.d.mts +22 -0
- package/dist/composition/repository/index.d.mts.map +1 -0
- package/dist/composition/repository/index.mjs +64 -0
- package/dist/composition/repository/index.mjs.map +1 -0
- package/dist/composition/syncDrift/index.cjs +160 -0
- package/dist/composition/syncDrift/index.cjs.map +1 -0
- package/dist/composition/syncDrift/index.d.cts +41 -0
- package/dist/composition/syncDrift/index.d.cts.map +1 -0
- package/dist/composition/syncDrift/index.d.mts +41 -0
- package/dist/composition/syncDrift/index.d.mts.map +1 -0
- package/dist/composition/syncDrift/index.mjs +152 -0
- package/dist/composition/syncDrift/index.mjs.map +1 -0
- package/dist/composition/syncState/index.cjs +593 -0
- package/dist/composition/syncState/index.cjs.map +1 -0
- package/dist/composition/syncState/index.d.cts +188 -0
- package/dist/composition/syncState/index.d.cts.map +1 -0
- package/dist/composition/syncState/index.d.mts +188 -0
- package/dist/composition/syncState/index.d.mts.map +1 -0
- package/dist/composition/syncState/index.mjs +559 -0
- package/dist/composition/syncState/index.mjs.map +1 -0
- package/dist/composition/transitionLayers.cjs +17 -0
- package/dist/composition/transitionLayers.cjs.map +1 -0
- package/dist/composition/transitionLayers.d.cts +6 -0
- package/dist/composition/transitionLayers.d.cts.map +1 -0
- package/dist/composition/transitionLayers.d.mts +6 -0
- package/dist/composition/transitionLayers.d.mts.map +1 -0
- package/dist/composition/transitionLayers.mjs +16 -0
- package/dist/composition/transitionLayers.mjs.map +1 -0
- package/dist/composition/types/harness.d.cts +49 -0
- package/dist/composition/types/harness.d.cts.map +1 -0
- package/dist/composition/types/harness.d.mts +49 -0
- package/dist/composition/types/harness.d.mts.map +1 -0
- package/dist/config.cjs +163 -0
- package/dist/config.d.cts +7 -0
- package/dist/config.d.mts +7 -0
- package/dist/config.mjs +7 -0
- package/dist/emit-mcp-command.cjs +4 -0
- package/dist/emit-mcp-command.d.cts +2 -0
- package/dist/emit-mcp-command.d.mts +2 -0
- package/dist/emit-mcp-command.mjs +2 -0
- package/dist/explain-command.cjs +5 -0
- package/dist/explain-command.d.cts +2 -0
- package/dist/explain-command.d.mts +2 -0
- package/dist/explain-command.mjs +2 -0
- package/dist/extensions/agent-model.cjs +41 -0
- package/dist/extensions/agent-model.cjs.map +1 -0
- package/dist/extensions/agent-model.d.cts +22 -0
- package/dist/extensions/agent-model.d.cts.map +1 -0
- package/dist/extensions/agent-model.d.mts +22 -0
- package/dist/extensions/agent-model.d.mts.map +1 -0
- package/dist/extensions/agent-model.mjs +35 -0
- package/dist/extensions/agent-model.mjs.map +1 -0
- package/dist/extensions/composed-pi.cjs +46 -0
- package/dist/extensions/composed-pi.cjs.map +1 -0
- package/dist/extensions/composed-pi.d.cts +13 -0
- package/dist/extensions/composed-pi.d.cts.map +1 -0
- package/dist/extensions/composed-pi.d.mts +13 -0
- package/dist/extensions/composed-pi.d.mts.map +1 -0
- package/dist/extensions/composed-pi.mjs +41 -0
- package/dist/extensions/composed-pi.mjs.map +1 -0
- package/dist/extensions/context-catalog.cjs +96 -0
- package/dist/extensions/context-catalog.cjs.map +1 -0
- package/dist/extensions/context-catalog.d.cts +4 -0
- package/dist/extensions/context-catalog.d.cts.map +1 -0
- package/dist/extensions/context-catalog.d.mts +5 -0
- package/dist/extensions/context-catalog.d.mts.map +1 -0
- package/dist/extensions/context-catalog.mjs +96 -0
- package/dist/extensions/context-catalog.mjs.map +1 -0
- package/dist/extensions/cordis-finalizer.cjs +24 -0
- package/dist/extensions/cordis-finalizer.cjs.map +1 -0
- package/dist/extensions/cordis-finalizer.d.cts +7 -0
- package/dist/extensions/cordis-finalizer.d.cts.map +1 -0
- package/dist/extensions/cordis-finalizer.d.mts +7 -0
- package/dist/extensions/cordis-finalizer.d.mts.map +1 -0
- package/dist/extensions/cordis-finalizer.mjs +19 -0
- package/dist/extensions/cordis-finalizer.mjs.map +1 -0
- package/dist/extensions/cordis-host.cjs +19 -0
- package/dist/extensions/cordis-host.cjs.map +1 -0
- package/dist/extensions/cordis-host.d.cts +7 -0
- package/dist/extensions/cordis-host.d.cts.map +1 -0
- package/dist/extensions/cordis-host.d.mts +7 -0
- package/dist/extensions/cordis-host.d.mts.map +1 -0
- package/dist/extensions/cordis-host.mjs +14 -0
- package/dist/extensions/cordis-host.mjs.map +1 -0
- package/dist/extensions/effort.cjs +54 -0
- package/dist/extensions/effort.cjs.map +1 -0
- package/dist/extensions/effort.d.cts +8 -0
- package/dist/extensions/effort.d.cts.map +1 -0
- package/dist/extensions/effort.d.mts +8 -0
- package/dist/extensions/effort.d.mts.map +1 -0
- package/dist/extensions/effort.mjs +48 -0
- package/dist/extensions/effort.mjs.map +1 -0
- package/dist/extensions/launcher-bootstrap.cjs +38 -0
- package/dist/extensions/launcher-bootstrap.cjs.map +1 -0
- package/dist/extensions/launcher-bootstrap.d.cts +16 -0
- package/dist/extensions/launcher-bootstrap.d.cts.map +1 -0
- package/dist/extensions/launcher-bootstrap.d.mts +16 -0
- package/dist/extensions/launcher-bootstrap.d.mts.map +1 -0
- package/dist/extensions/launcher-bootstrap.mjs +33 -0
- package/dist/extensions/launcher-bootstrap.mjs.map +1 -0
- package/dist/extensions/ollama-provider.cjs +32 -0
- package/dist/extensions/ollama-provider.cjs.map +1 -0
- package/dist/extensions/ollama-provider.d.cts +5 -0
- package/dist/extensions/ollama-provider.d.cts.map +1 -0
- package/dist/extensions/ollama-provider.d.mts +5 -0
- package/dist/extensions/ollama-provider.d.mts.map +1 -0
- package/dist/extensions/ollama-provider.mjs +32 -0
- package/dist/extensions/ollama-provider.mjs.map +1 -0
- package/dist/extensions/pi.cjs +63 -0
- package/dist/extensions/pi.cjs.map +1 -0
- package/dist/extensions/pi.d.cts +7 -0
- package/dist/extensions/pi.d.cts.map +1 -0
- package/dist/extensions/pi.d.mts +7 -0
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +58 -0
- package/dist/extensions/pi.mjs.map +1 -0
- package/dist/extensions/server.cjs +20 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.cts +5 -0
- package/dist/extensions/server.d.cts.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +15 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/extensions/style-system.cjs +234 -0
- package/dist/extensions/style-system.cjs.map +1 -0
- package/dist/extensions/style-system.d.cts +32 -0
- package/dist/extensions/style-system.d.cts.map +1 -0
- package/dist/extensions/style-system.d.mts +32 -0
- package/dist/extensions/style-system.d.mts.map +1 -0
- package/dist/extensions/style-system.mjs +219 -0
- package/dist/extensions/style-system.mjs.map +1 -0
- package/dist/extensions/terminal-child-session.cjs +76 -0
- package/dist/extensions/terminal-child-session.cjs.map +1 -0
- package/dist/extensions/terminal-child-session.d.cts +7 -0
- package/dist/extensions/terminal-child-session.d.cts.map +1 -0
- package/dist/extensions/terminal-child-session.d.mts +7 -0
- package/dist/extensions/terminal-child-session.d.mts.map +1 -0
- package/dist/extensions/terminal-child-session.mjs +69 -0
- package/dist/extensions/terminal-child-session.mjs.map +1 -0
- package/dist/extensions/transition-coordinator.cjs +154 -0
- package/dist/extensions/transition-coordinator.cjs.map +1 -0
- package/dist/extensions/transition-coordinator.d.cts +8 -0
- package/dist/extensions/transition-coordinator.d.cts.map +1 -0
- package/dist/extensions/transition-coordinator.d.mts +8 -0
- package/dist/extensions/transition-coordinator.d.mts.map +1 -0
- package/dist/extensions/transition-coordinator.mjs +146 -0
- package/dist/extensions/transition-coordinator.mjs.map +1 -0
- package/dist/harness-context.cjs +5 -0
- package/dist/harness-context.d.cts +2 -0
- package/dist/harness-context.d.mts +2 -0
- package/dist/harness-context.mjs +2 -0
- package/dist/harness-state.cjs +19 -0
- package/dist/harness-state.d.cts +2 -0
- package/dist/harness-state.d.mts +2 -0
- package/dist/harness-state.mjs +2 -0
- package/dist/help.cjs +16 -0
- package/dist/help.d.cts +8 -0
- package/dist/help.d.mts +8 -0
- package/dist/help.mjs +8 -0
- package/dist/index.cjs +368 -0
- package/dist/index.d.cts +49 -0
- package/dist/index.d.mts +49 -0
- package/dist/index.mjs +46 -0
- package/dist/init-command.cjs +4 -0
- package/dist/init-command.d.cts +2 -0
- package/dist/init-command.d.mts +2 -0
- package/dist/init-command.mjs +2 -0
- package/dist/launch-command.cjs +7 -0
- package/dist/launch-command.d.cts +2 -0
- package/dist/launch-command.d.mts +2 -0
- package/dist/launch-command.mjs +2 -0
- package/dist/matrix-options.cjs +28 -0
- package/dist/matrix-options.d.cts +2 -0
- package/dist/matrix-options.d.mts +2 -0
- package/dist/matrix-options.mjs +2 -0
- package/dist/matrix-switcher.cjs +11 -0
- package/dist/matrix-switcher.d.cts +3 -0
- package/dist/matrix-switcher.d.mts +3 -0
- package/dist/matrix-switcher.mjs +3 -0
- package/dist/mcp-filter.cjs +9 -0
- package/dist/mcp-filter.d.cts +1 -0
- package/dist/mcp-filter.d.mts +1 -0
- package/dist/mcp-filter.mjs +2 -0
- package/dist/options.cjs +3 -0
- package/dist/options.d.cts +2 -0
- package/dist/options.d.mts +2 -0
- package/dist/options.mjs +2 -0
- package/dist/process.cjs +12 -0
- package/dist/process.d.cts +2 -0
- package/dist/process.d.mts +2 -0
- package/dist/process.mjs +2 -0
- package/dist/project-trust.cjs +6 -0
- package/dist/project-trust.d.cts +2 -0
- package/dist/project-trust.d.mts +2 -0
- package/dist/project-trust.mjs +2 -0
- package/dist/repository.cjs +5 -0
- package/dist/repository.d.cts +2 -0
- package/dist/repository.d.mts +2 -0
- package/dist/repository.mjs +2 -0
- package/dist/resource-collector.cjs +9 -0
- package/dist/resource-collector.d.cts +1 -0
- package/dist/resource-collector.d.mts +1 -0
- package/dist/resource-collector.mjs +2 -0
- package/dist/services.cjs +154 -0
- package/dist/services.d.cts +21 -0
- package/dist/services.d.mts +21 -0
- package/dist/services.mjs +21 -0
- package/dist/shared.cjs +18 -0
- package/dist/shared.d.cts +2 -0
- package/dist/shared.d.mts +2 -0
- package/dist/shared.mjs +2 -0
- package/dist/sync-command.cjs +13 -0
- package/dist/sync-command.d.cts +2 -0
- package/dist/sync-command.d.mts +2 -0
- package/dist/sync-command.mjs +2 -0
- package/dist/sync-state.cjs +33 -0
- package/dist/sync-state.d.cts +2 -0
- package/dist/sync-state.d.mts +2 -0
- package/dist/sync-state.mjs +2 -0
- package/dist/utils.cjs +6 -0
- package/dist/utils.d.cts +3 -0
- package/dist/utils.d.mts +3 -0
- package/dist/utils.mjs +3 -0
- package/package.json +16 -16
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/builders/cli/constants.ts
|
|
2
|
+
/** Environment variable naming the composition record of a launcher session. */
|
|
3
|
+
const LAUNCHER_COMPOSITION_ENV = "DOOMPI_LAUNCHER_COMPOSITION";
|
|
4
|
+
/**
|
|
5
|
+
* Environment variable asking a delegated launcher to record its composition.
|
|
6
|
+
*
|
|
7
|
+
* A server that composes in process passes `compositionRecordPath` directly,
|
|
8
|
+
* but a repository that pins its own DoomPi, or a host that sets
|
|
9
|
+
* `DOOMPI_AGENT_COMMAND`, hands the arguments to a different launcher process
|
|
10
|
+
* instead. That launcher owns composition for its own version, so the request
|
|
11
|
+
* travels as an environment variable it may honour or ignore. A launcher too
|
|
12
|
+
* old to know this name simply composes as before, which is why forwarding it
|
|
13
|
+
* is safe across versions.
|
|
14
|
+
*/
|
|
15
|
+
const LAUNCHER_COMPOSITION_REQUEST_ENV = "DOOMPI_COMPOSITION_RECORD";
|
|
16
|
+
//#endregion
|
|
17
|
+
exports.LAUNCHER_COMPOSITION_ENV = LAUNCHER_COMPOSITION_ENV;
|
|
18
|
+
exports.LAUNCHER_COMPOSITION_REQUEST_ENV = LAUNCHER_COMPOSITION_REQUEST_ENV;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=constants.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.cjs","names":[],"sources":["../../../src/builders/cli/constants.ts"],"sourcesContent":["/** Environment variable naming the composition record of a launcher session. */\nexport const LAUNCHER_COMPOSITION_ENV = 'DOOMPI_LAUNCHER_COMPOSITION';\n\n/**\n * Environment variable asking a delegated launcher to record its composition.\n *\n * A server that composes in process passes `compositionRecordPath` directly,\n * but a repository that pins its own DoomPi, or a host that sets\n * `DOOMPI_AGENT_COMMAND`, hands the arguments to a different launcher process\n * instead. That launcher owns composition for its own version, so the request\n * travels as an environment variable it may honour or ignore. A launcher too\n * old to know this name simply composes as before, which is why forwarding it\n * is safe across versions.\n */\nexport const LAUNCHER_COMPOSITION_REQUEST_ENV = 'DOOMPI_COMPOSITION_RECORD';\n\nexport const LAUNCHER_COMPOSITION_VERSION = 1;\n"],"mappings":";;AACA,MAAa,2BAA2B;;;;;;;;;;;;AAaxC,MAAa,mCAAmC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/builders/cli/constants.d.ts
|
|
2
|
+
/** Environment variable naming the composition record of a launcher session. */
|
|
3
|
+
export declare const LAUNCHER_COMPOSITION_ENV = "DOOMPI_LAUNCHER_COMPOSITION";
|
|
4
|
+
/**
|
|
5
|
+
* Environment variable asking a delegated launcher to record its composition.
|
|
6
|
+
*
|
|
7
|
+
* A server that composes in process passes `compositionRecordPath` directly,
|
|
8
|
+
* but a repository that pins its own DoomPi, or a host that sets
|
|
9
|
+
* `DOOMPI_AGENT_COMMAND`, hands the arguments to a different launcher process
|
|
10
|
+
* instead. That launcher owns composition for its own version, so the request
|
|
11
|
+
* travels as an environment variable it may honour or ignore. A launcher too
|
|
12
|
+
* old to know this name simply composes as before, which is why forwarding it
|
|
13
|
+
* is safe across versions.
|
|
14
|
+
*/
|
|
15
|
+
export declare const LAUNCHER_COMPOSITION_REQUEST_ENV = "DOOMPI_COMPOSITION_RECORD";
|
|
16
|
+
//#endregion
|
|
17
|
+
//# sourceMappingURL=constants.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.cts","names":[],"sources":["../../../src/builders/cli/constants.ts"],"mappings":";;qBACa;;;;;;;;;;;;qBAaA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/builders/cli/constants.d.ts
|
|
2
|
+
/** Environment variable naming the composition record of a launcher session. */
|
|
3
|
+
export declare const LAUNCHER_COMPOSITION_ENV = "DOOMPI_LAUNCHER_COMPOSITION";
|
|
4
|
+
/**
|
|
5
|
+
* Environment variable asking a delegated launcher to record its composition.
|
|
6
|
+
*
|
|
7
|
+
* A server that composes in process passes `compositionRecordPath` directly,
|
|
8
|
+
* but a repository that pins its own DoomPi, or a host that sets
|
|
9
|
+
* `DOOMPI_AGENT_COMMAND`, hands the arguments to a different launcher process
|
|
10
|
+
* instead. That launcher owns composition for its own version, so the request
|
|
11
|
+
* travels as an environment variable it may honour or ignore. A launcher too
|
|
12
|
+
* old to know this name simply composes as before, which is why forwarding it
|
|
13
|
+
* is safe across versions.
|
|
14
|
+
*/
|
|
15
|
+
export declare const LAUNCHER_COMPOSITION_REQUEST_ENV = "DOOMPI_COMPOSITION_RECORD";
|
|
16
|
+
//#endregion
|
|
17
|
+
//# sourceMappingURL=constants.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.mts","names":[],"sources":["../../../src/builders/cli/constants.ts"],"mappings":";;qBACa;;;;;;;;;;;;qBAaA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/builders/cli/constants.ts
|
|
2
|
+
/** Environment variable naming the composition record of a launcher session. */
|
|
3
|
+
const LAUNCHER_COMPOSITION_ENV = "DOOMPI_LAUNCHER_COMPOSITION";
|
|
4
|
+
/**
|
|
5
|
+
* Environment variable asking a delegated launcher to record its composition.
|
|
6
|
+
*
|
|
7
|
+
* A server that composes in process passes `compositionRecordPath` directly,
|
|
8
|
+
* but a repository that pins its own DoomPi, or a host that sets
|
|
9
|
+
* `DOOMPI_AGENT_COMMAND`, hands the arguments to a different launcher process
|
|
10
|
+
* instead. That launcher owns composition for its own version, so the request
|
|
11
|
+
* travels as an environment variable it may honour or ignore. A launcher too
|
|
12
|
+
* old to know this name simply composes as before, which is why forwarding it
|
|
13
|
+
* is safe across versions.
|
|
14
|
+
*/
|
|
15
|
+
const LAUNCHER_COMPOSITION_REQUEST_ENV = "DOOMPI_COMPOSITION_RECORD";
|
|
16
|
+
//#endregion
|
|
17
|
+
export { LAUNCHER_COMPOSITION_ENV, LAUNCHER_COMPOSITION_REQUEST_ENV };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":[],"sources":["../../../src/builders/cli/constants.ts"],"sourcesContent":["/** Environment variable naming the composition record of a launcher session. */\nexport const LAUNCHER_COMPOSITION_ENV = 'DOOMPI_LAUNCHER_COMPOSITION';\n\n/**\n * Environment variable asking a delegated launcher to record its composition.\n *\n * A server that composes in process passes `compositionRecordPath` directly,\n * but a repository that pins its own DoomPi, or a host that sets\n * `DOOMPI_AGENT_COMMAND`, hands the arguments to a different launcher process\n * instead. That launcher owns composition for its own version, so the request\n * travels as an environment variable it may honour or ignore. A launcher too\n * old to know this name simply composes as before, which is why forwarding it\n * is safe across versions.\n */\nexport const LAUNCHER_COMPOSITION_REQUEST_ENV = 'DOOMPI_COMPOSITION_RECORD';\n\nexport const LAUNCHER_COMPOSITION_VERSION = 1;\n"],"mappings":";;AACA,MAAa,2BAA2B;;;;;;;;;;;;AAaxC,MAAa,mCAAmC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
let _agimon_ai_doompi_core_mcp_status = require("@agimon-ai/doompi-core/mcp-status");
|
|
2
|
+
let _agimon_ai_doompi_config_domains = require("@agimon-ai/doompi-config/domains");
|
|
3
|
+
let _agimon_ai_doompi_config_harnessStore = require("@agimon-ai/doompi-config/harnessStore");
|
|
4
|
+
let _agimon_ai_doompi_core_context_detail = require("@agimon-ai/doompi-core/context-detail");
|
|
5
|
+
let _agimon_ai_doompi_core_context_projection = require("@agimon-ai/doompi-core/context-projection");
|
|
6
|
+
let _agimon_ai_doompi_core_skills = require("@agimon-ai/doompi-core/skills");
|
|
7
|
+
let _agimon_ai_doompi_skill_catalog = require("@agimon-ai/doompi-skill/catalog");
|
|
8
|
+
let _agimon_ai_doompi_ui_extensionName = require("@agimon-ai/doompi-ui/extensionName");
|
|
9
|
+
let _agimon_ai_doompi_ui_toolInventory = require("@agimon-ai/doompi-ui/toolInventory");
|
|
10
|
+
//#region src/builders/cli/contextCatalog.ts
|
|
11
|
+
/** Skills sit under owners, which is one level deeper than a flat list. */
|
|
12
|
+
function flattenSkills(groups) {
|
|
13
|
+
return groups.flatMap((group) => group.owners.flatMap((owner) => owner.skills));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Package and plugin names to the mode that admitted them.
|
|
17
|
+
*
|
|
18
|
+
* Two halves meet here. Layer packages come from the harness, recorded when the
|
|
19
|
+
* composition resolved. Domain plugins are re-resolved, because only the plugin
|
|
20
|
+
* entry knows the domain that carried it.
|
|
21
|
+
*/
|
|
22
|
+
function attributionFor(repoRoot, domains, pluginDirectories) {
|
|
23
|
+
const attribution = { ...(0, _agimon_ai_doompi_config_harnessStore.getHarnessState)().packageAttribution };
|
|
24
|
+
try {
|
|
25
|
+
for (const entry of (0, _agimon_ai_doompi_config_domains.resolvePluginEntries)(repoRoot, [...domains], [...pluginDirectories])) if (entry.name && entry.domain) attribution[entry.name] = {
|
|
26
|
+
kind: "domain",
|
|
27
|
+
mode: entry.domain
|
|
28
|
+
};
|
|
29
|
+
} catch {}
|
|
30
|
+
return attribution;
|
|
31
|
+
}
|
|
32
|
+
function createContextPublisher(pi, cordis, options = {}) {
|
|
33
|
+
let published;
|
|
34
|
+
let revision = 0;
|
|
35
|
+
let disposed = false;
|
|
36
|
+
/** Removed on disposal, so a session leaves nothing behind in the store. */
|
|
37
|
+
let detailSessionId;
|
|
38
|
+
const build = async () => {
|
|
39
|
+
if (disposed) return;
|
|
40
|
+
const harness = (0, _agimon_ai_doompi_config_harnessStore.getHarnessState)();
|
|
41
|
+
const mcpServers = (0, _agimon_ai_doompi_core_mcp_status.readDoomMcpStatus)(cordis)?.getSnapshot().servers;
|
|
42
|
+
const sources = (0, _agimon_ai_doompi_ui_toolInventory.buildToolSources)({
|
|
43
|
+
tools: pi.getAllTools(),
|
|
44
|
+
activeTools: pi.getActiveTools(),
|
|
45
|
+
...mcpServers ? { mcpServers } : {},
|
|
46
|
+
resolveExtensionName: _agimon_ai_doompi_ui_extensionName.extensionName,
|
|
47
|
+
resolveExtensionPackageName: _agimon_ai_doompi_ui_extensionName.extensionPackageName,
|
|
48
|
+
resolveExtensionToolSource: (toolName) => (0, _agimon_ai_doompi_ui_extensionName.extensionToolSource)(pi, toolName)
|
|
49
|
+
});
|
|
50
|
+
const repoRoot = (0, _agimon_ai_doompi_config_harnessStore.harnessRoot)(harness);
|
|
51
|
+
let skills = [];
|
|
52
|
+
try {
|
|
53
|
+
skills = flattenSkills((await (0, _agimon_ai_doompi_skill_catalog.buildSkillCatalog)({
|
|
54
|
+
repoRoot,
|
|
55
|
+
activeSkillDirectories: harness.skillDirectories,
|
|
56
|
+
extensionSources: (0, _agimon_ai_doompi_core_skills.readDoomSkillSourcesService)(cordis)?.list() ?? []
|
|
57
|
+
})).groups);
|
|
58
|
+
} catch {}
|
|
59
|
+
const countTokens = await (0, _agimon_ai_doompi_skill_catalog.counter)();
|
|
60
|
+
const prompt = options.readSystemPrompt?.();
|
|
61
|
+
const promptCost = prompt === void 0 ? void 0 : {
|
|
62
|
+
tokens: countTokens(prompt.text),
|
|
63
|
+
stage: prompt.stage
|
|
64
|
+
};
|
|
65
|
+
const projection = (0, _agimon_ai_doompi_core_context_projection.projectContext)({
|
|
66
|
+
revision: revision + 1,
|
|
67
|
+
majorMode: harness.majorMode,
|
|
68
|
+
groups: (options.readMinorModes?.() ?? []).map((mode) => ({
|
|
69
|
+
...mode,
|
|
70
|
+
kind: "minor"
|
|
71
|
+
})),
|
|
72
|
+
domains: harness.domains,
|
|
73
|
+
sources,
|
|
74
|
+
skills,
|
|
75
|
+
attribution: attributionFor(repoRoot, harness.domains, harness.pluginDirectories),
|
|
76
|
+
countTokens,
|
|
77
|
+
...promptCost === void 0 ? {} : { systemPrompt: promptCost }
|
|
78
|
+
});
|
|
79
|
+
const serialized = JSON.stringify({
|
|
80
|
+
...projection,
|
|
81
|
+
revision: 0,
|
|
82
|
+
promptText: prompt?.text
|
|
83
|
+
});
|
|
84
|
+
if (serialized === published || disposed) return;
|
|
85
|
+
published = serialized;
|
|
86
|
+
revision += 1;
|
|
87
|
+
const sessionId = options.readSessionId?.();
|
|
88
|
+
if (sessionId !== void 0 && sessionId !== "" && options.writeDetail !== void 0) {
|
|
89
|
+
detailSessionId = sessionId;
|
|
90
|
+
options.writeDetail(sessionId, revision, (0, _agimon_ai_doompi_core_context_detail.buildContextDetail)({
|
|
91
|
+
sources,
|
|
92
|
+
skills,
|
|
93
|
+
countTokens,
|
|
94
|
+
...prompt === void 0 || promptCost === void 0 ? {} : { systemPrompt: {
|
|
95
|
+
text: prompt.text,
|
|
96
|
+
tokens: promptCost.tokens,
|
|
97
|
+
stage: prompt.stage
|
|
98
|
+
} }
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
pi.appendEntry(_agimon_ai_doompi_core_context_projection.DOOM_CONTEXT_ENTRY_TYPE, {
|
|
102
|
+
...projection,
|
|
103
|
+
revision
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Reporting the composition is a convenience, so it fails quietly.
|
|
108
|
+
*
|
|
109
|
+
* Callers publish without awaiting, and an escaping rejection would surface
|
|
110
|
+
* as an unhandled error in a live session. A panel that cannot say what the
|
|
111
|
+
* toolbox costs is a far smaller problem than that.
|
|
112
|
+
*/
|
|
113
|
+
const publish = async () => {
|
|
114
|
+
try {
|
|
115
|
+
await build();
|
|
116
|
+
} catch {}
|
|
117
|
+
};
|
|
118
|
+
return {
|
|
119
|
+
publish,
|
|
120
|
+
dispose: () => {
|
|
121
|
+
disposed = true;
|
|
122
|
+
if (detailSessionId !== void 0) options.removeDetail?.(detailSessionId);
|
|
123
|
+
detailSessionId = void 0;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
exports.createContextPublisher = createContextPublisher;
|
|
129
|
+
|
|
130
|
+
//# sourceMappingURL=contextCatalog.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextCatalog.cjs","names":["getHarnessState","resolvePluginEntries","readDoomMcpStatus","buildToolSources","extensionName","extensionPackageName","extensionToolSource","harnessRoot","buildSkillCatalog","readDoomSkillSourcesService","counter","projectContext","buildContextDetail","DOOM_CONTEXT_ENTRY_TYPE"],"sources":["../../../src/builders/cli/contextCatalog.ts"],"sourcesContent":["import { resolvePluginEntries } from '@agimon-ai/doompi-config/domains';\nimport { getHarnessState, harnessRoot } from '@agimon-ai/doompi-config/harnessStore';\nimport type { PackageAttribution } from '@agimon-ai/doompi-config/types';\nimport { buildContextDetail } from '@agimon-ai/doompi-core/context-detail';\nimport { DOOM_CONTEXT_ENTRY_TYPE, projectContext } from '@agimon-ai/doompi-core/context-projection';\nimport { readDoomMcpStatus } from '@agimon-ai/doompi-core/mcp-status';\nimport { readDoomSkillSourcesService } from '@agimon-ai/doompi-core/skills';\nimport type { ContextItemDetail, ContextPromptStage } from '@agimon-ai/doompi-core/types-context-api';\nimport { buildSkillCatalog, counter, type SkillEntry } from '@agimon-ai/doompi-skill/catalog';\nimport { extensionName, extensionPackageName, extensionToolSource } from '@agimon-ai/doompi-ui/extensionName';\nimport { buildToolSources } from '@agimon-ai/doompi-ui/toolInventory';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\n\n/**\n * Publishes what the session is composed of, and what it costs.\n *\n * Read at publish time rather than accumulated, because the answer changes for\n * reasons this module does not see: a reconnected MCP server, a domain switch,\n * a plan-mode tool swap. Reading the live inventory is cheap next to being\n * wrong about it.\n */\nexport interface ContextPublisher {\n /** Never rejects: callers fire this and forget it. */\n publish: () => Promise<void>;\n dispose: () => void;\n}\n\n/** The active minor modes at publish time, read rather than remembered. */\nexport type ReadMinorModes = () => readonly { readonly id: string; readonly label: string }[];\n\nexport interface ContextPublisherOptions {\n readMinorModes?: ReadMinorModes;\n /**\n * The session the detail file is keyed by, read at publish time.\n *\n * Undefined until a session is bound, and undefined in a host that has no\n * session at all; the projection is still journaled either way, and only the\n * click-through detail goes unwritten.\n */\n readSessionId?: () => string | undefined;\n /**\n * Where the click-through detail is left for the session API to find.\n *\n * Injected because writing it is filesystem work and this is not the layer\n * that does filesystem work. A host that supplies neither still gets the\n * projection; only the detail behind a row goes unpublished.\n */\n writeDetail?: (sessionId: string, revision: number, items: readonly ContextItemDetail[]) => void;\n removeDetail?: (sessionId: string) => void;\n /**\n * The system prompt as the session currently stands.\n *\n * Read rather than pushed, for the same reason the tool inventory is: the\n * prompt changes for reasons this module does not see. A host with no way to\n * answer returns undefined and the panel reports no prompt rather than a\n * stale one.\n */\n readSystemPrompt?: () => { readonly text: string; readonly stage: ContextPromptStage } | undefined;\n}\n\n/** Skills sit under owners, which is one level deeper than a flat list. */\nfunction flattenSkills(groups: Awaited<ReturnType<typeof buildSkillCatalog>>['groups']): SkillEntry[] {\n return groups.flatMap((group) => group.owners.flatMap((owner) => owner.skills));\n}\n\n/**\n * Package and plugin names to the mode that admitted them.\n *\n * Two halves meet here. Layer packages come from the harness, recorded when the\n * composition resolved. Domain plugins are re-resolved, because only the plugin\n * entry knows the domain that carried it.\n */\nfunction attributionFor(repoRoot: string, domains: readonly string[], pluginDirectories: readonly string[]) {\n const harness = getHarnessState();\n const attribution: Record<string, PackageAttribution> = { ...harness.packageAttribution };\n try {\n for (const entry of resolvePluginEntries(repoRoot, [...domains], [...pluginDirectories])) {\n if (entry.name && entry.domain) attribution[entry.name] = { kind: 'domain', mode: entry.domain };\n }\n } catch {\n // A domain that no longer resolves must not cost the reader the tool list.\n // Anything unmatched simply lands under core.\n }\n return attribution;\n}\n\nexport function createContextPublisher(\n pi: ExtensionAPI,\n cordis: Context,\n options: ContextPublisherOptions = {},\n): ContextPublisher {\n let published: string | undefined;\n let revision = 0;\n let disposed = false;\n /** Removed on disposal, so a session leaves nothing behind in the store. */\n let detailSessionId: string | undefined;\n\n const build = async (): Promise<void> => {\n if (disposed) return;\n const harness = getHarnessState();\n const mcpServers = readDoomMcpStatus(cordis)?.getSnapshot().servers;\n const sources = buildToolSources({\n tools: pi.getAllTools(),\n activeTools: pi.getActiveTools(),\n ...(mcpServers ? { mcpServers } : {}),\n resolveExtensionName: extensionName,\n resolveExtensionPackageName: extensionPackageName,\n resolveExtensionToolSource: (toolName) => extensionToolSource(pi, toolName),\n });\n\n const repoRoot = harnessRoot(harness);\n let skills: SkillEntry[] = [];\n try {\n const catalog = await buildSkillCatalog({\n repoRoot,\n activeSkillDirectories: harness.skillDirectories,\n extensionSources: readDoomSkillSourcesService(cordis)?.list() ?? [],\n });\n skills = flattenSkills(catalog.groups);\n } catch {\n // Tools are the larger cost and are already in hand; a skill walk that\n // fails should not take the whole figure down with it.\n }\n\n const countTokens = await counter();\n const prompt = options.readSystemPrompt?.();\n const promptCost = prompt === undefined ? undefined : { tokens: countTokens(prompt.text), stage: prompt.stage };\n const projection = projectContext({\n revision: revision + 1,\n majorMode: harness.majorMode,\n groups: (options.readMinorModes?.() ?? []).map((mode) => ({ ...mode, kind: 'minor' as const })),\n domains: harness.domains,\n sources,\n skills,\n attribution: attributionFor(repoRoot, harness.domains, harness.pluginDirectories),\n countTokens,\n ...(promptCost === undefined ? {} : { systemPrompt: promptCost }),\n });\n\n // Revision is compared out, so a republish that changed nothing is silent\n // rather than a new journal entry saying the same thing. The prompt joins by\n // its text: a reworded prompt of the same length is still a different answer.\n const serialized = JSON.stringify({ ...projection, revision: 0, promptText: prompt?.text });\n if (serialized === published || disposed) return;\n published = serialized;\n revision += 1;\n // The detail lands before the entry that invites a reader to ask for it, so\n // a click that follows the panel's update cannot outrun the file behind it.\n const sessionId = options.readSessionId?.();\n if (sessionId !== undefined && sessionId !== '' && options.writeDetail !== undefined) {\n detailSessionId = sessionId;\n options.writeDetail(\n sessionId,\n revision,\n buildContextDetail({\n sources,\n skills,\n countTokens,\n ...(prompt === undefined || promptCost === undefined\n ? {}\n : { systemPrompt: { text: prompt.text, tokens: promptCost.tokens, stage: prompt.stage } }),\n }),\n );\n }\n pi.appendEntry(DOOM_CONTEXT_ENTRY_TYPE, { ...projection, revision });\n };\n\n /**\n * Reporting the composition is a convenience, so it fails quietly.\n *\n * Callers publish without awaiting, and an escaping rejection would surface\n * as an unhandled error in a live session. A panel that cannot say what the\n * toolbox costs is a far smaller problem than that.\n */\n const publish = async (): Promise<void> => {\n try {\n await build();\n } catch {\n // Left unreported on purpose: the next composition change tries again.\n }\n };\n\n return {\n publish,\n dispose: () => {\n disposed = true;\n if (detailSessionId !== undefined) options.removeDetail?.(detailSessionId);\n detailSessionId = undefined;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { readDoomMcpStatus } from "@agimon-ai/doompi-core/mcp-status";
|
|
2
|
+
import { resolvePluginEntries } from "@agimon-ai/doompi-config/domains";
|
|
3
|
+
import { getHarnessState, harnessRoot } from "@agimon-ai/doompi-config/harnessStore";
|
|
4
|
+
import { buildContextDetail } from "@agimon-ai/doompi-core/context-detail";
|
|
5
|
+
import { DOOM_CONTEXT_ENTRY_TYPE, projectContext } from "@agimon-ai/doompi-core/context-projection";
|
|
6
|
+
import { readDoomSkillSourcesService } from "@agimon-ai/doompi-core/skills";
|
|
7
|
+
import { buildSkillCatalog, counter } from "@agimon-ai/doompi-skill/catalog";
|
|
8
|
+
import { extensionName, extensionPackageName, extensionToolSource } from "@agimon-ai/doompi-ui/extensionName";
|
|
9
|
+
import { buildToolSources } from "@agimon-ai/doompi-ui/toolInventory";
|
|
10
|
+
//#region src/builders/cli/contextCatalog.ts
|
|
11
|
+
/** Skills sit under owners, which is one level deeper than a flat list. */
|
|
12
|
+
function flattenSkills(groups) {
|
|
13
|
+
return groups.flatMap((group) => group.owners.flatMap((owner) => owner.skills));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Package and plugin names to the mode that admitted them.
|
|
17
|
+
*
|
|
18
|
+
* Two halves meet here. Layer packages come from the harness, recorded when the
|
|
19
|
+
* composition resolved. Domain plugins are re-resolved, because only the plugin
|
|
20
|
+
* entry knows the domain that carried it.
|
|
21
|
+
*/
|
|
22
|
+
function attributionFor(repoRoot, domains, pluginDirectories) {
|
|
23
|
+
const attribution = { ...getHarnessState().packageAttribution };
|
|
24
|
+
try {
|
|
25
|
+
for (const entry of resolvePluginEntries(repoRoot, [...domains], [...pluginDirectories])) if (entry.name && entry.domain) attribution[entry.name] = {
|
|
26
|
+
kind: "domain",
|
|
27
|
+
mode: entry.domain
|
|
28
|
+
};
|
|
29
|
+
} catch {}
|
|
30
|
+
return attribution;
|
|
31
|
+
}
|
|
32
|
+
function createContextPublisher(pi, cordis, options = {}) {
|
|
33
|
+
let published;
|
|
34
|
+
let revision = 0;
|
|
35
|
+
let disposed = false;
|
|
36
|
+
/** Removed on disposal, so a session leaves nothing behind in the store. */
|
|
37
|
+
let detailSessionId;
|
|
38
|
+
const build = async () => {
|
|
39
|
+
if (disposed) return;
|
|
40
|
+
const harness = getHarnessState();
|
|
41
|
+
const mcpServers = readDoomMcpStatus(cordis)?.getSnapshot().servers;
|
|
42
|
+
const sources = buildToolSources({
|
|
43
|
+
tools: pi.getAllTools(),
|
|
44
|
+
activeTools: pi.getActiveTools(),
|
|
45
|
+
...mcpServers ? { mcpServers } : {},
|
|
46
|
+
resolveExtensionName: extensionName,
|
|
47
|
+
resolveExtensionPackageName: extensionPackageName,
|
|
48
|
+
resolveExtensionToolSource: (toolName) => extensionToolSource(pi, toolName)
|
|
49
|
+
});
|
|
50
|
+
const repoRoot = harnessRoot(harness);
|
|
51
|
+
let skills = [];
|
|
52
|
+
try {
|
|
53
|
+
skills = flattenSkills((await buildSkillCatalog({
|
|
54
|
+
repoRoot,
|
|
55
|
+
activeSkillDirectories: harness.skillDirectories,
|
|
56
|
+
extensionSources: readDoomSkillSourcesService(cordis)?.list() ?? []
|
|
57
|
+
})).groups);
|
|
58
|
+
} catch {}
|
|
59
|
+
const countTokens = await counter();
|
|
60
|
+
const prompt = options.readSystemPrompt?.();
|
|
61
|
+
const promptCost = prompt === void 0 ? void 0 : {
|
|
62
|
+
tokens: countTokens(prompt.text),
|
|
63
|
+
stage: prompt.stage
|
|
64
|
+
};
|
|
65
|
+
const projection = projectContext({
|
|
66
|
+
revision: revision + 1,
|
|
67
|
+
majorMode: harness.majorMode,
|
|
68
|
+
groups: (options.readMinorModes?.() ?? []).map((mode) => ({
|
|
69
|
+
...mode,
|
|
70
|
+
kind: "minor"
|
|
71
|
+
})),
|
|
72
|
+
domains: harness.domains,
|
|
73
|
+
sources,
|
|
74
|
+
skills,
|
|
75
|
+
attribution: attributionFor(repoRoot, harness.domains, harness.pluginDirectories),
|
|
76
|
+
countTokens,
|
|
77
|
+
...promptCost === void 0 ? {} : { systemPrompt: promptCost }
|
|
78
|
+
});
|
|
79
|
+
const serialized = JSON.stringify({
|
|
80
|
+
...projection,
|
|
81
|
+
revision: 0,
|
|
82
|
+
promptText: prompt?.text
|
|
83
|
+
});
|
|
84
|
+
if (serialized === published || disposed) return;
|
|
85
|
+
published = serialized;
|
|
86
|
+
revision += 1;
|
|
87
|
+
const sessionId = options.readSessionId?.();
|
|
88
|
+
if (sessionId !== void 0 && sessionId !== "" && options.writeDetail !== void 0) {
|
|
89
|
+
detailSessionId = sessionId;
|
|
90
|
+
options.writeDetail(sessionId, revision, buildContextDetail({
|
|
91
|
+
sources,
|
|
92
|
+
skills,
|
|
93
|
+
countTokens,
|
|
94
|
+
...prompt === void 0 || promptCost === void 0 ? {} : { systemPrompt: {
|
|
95
|
+
text: prompt.text,
|
|
96
|
+
tokens: promptCost.tokens,
|
|
97
|
+
stage: prompt.stage
|
|
98
|
+
} }
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
pi.appendEntry(DOOM_CONTEXT_ENTRY_TYPE, {
|
|
102
|
+
...projection,
|
|
103
|
+
revision
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Reporting the composition is a convenience, so it fails quietly.
|
|
108
|
+
*
|
|
109
|
+
* Callers publish without awaiting, and an escaping rejection would surface
|
|
110
|
+
* as an unhandled error in a live session. A panel that cannot say what the
|
|
111
|
+
* toolbox costs is a far smaller problem than that.
|
|
112
|
+
*/
|
|
113
|
+
const publish = async () => {
|
|
114
|
+
try {
|
|
115
|
+
await build();
|
|
116
|
+
} catch {}
|
|
117
|
+
};
|
|
118
|
+
return {
|
|
119
|
+
publish,
|
|
120
|
+
dispose: () => {
|
|
121
|
+
disposed = true;
|
|
122
|
+
if (detailSessionId !== void 0) options.removeDetail?.(detailSessionId);
|
|
123
|
+
detailSessionId = void 0;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { createContextPublisher };
|
|
129
|
+
|
|
130
|
+
//# sourceMappingURL=contextCatalog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextCatalog.mjs","names":[],"sources":["../../../src/builders/cli/contextCatalog.ts"],"sourcesContent":["import { resolvePluginEntries } from '@agimon-ai/doompi-config/domains';\nimport { getHarnessState, harnessRoot } from '@agimon-ai/doompi-config/harnessStore';\nimport type { PackageAttribution } from '@agimon-ai/doompi-config/types';\nimport { buildContextDetail } from '@agimon-ai/doompi-core/context-detail';\nimport { DOOM_CONTEXT_ENTRY_TYPE, projectContext } from '@agimon-ai/doompi-core/context-projection';\nimport { readDoomMcpStatus } from '@agimon-ai/doompi-core/mcp-status';\nimport { readDoomSkillSourcesService } from '@agimon-ai/doompi-core/skills';\nimport type { ContextItemDetail, ContextPromptStage } from '@agimon-ai/doompi-core/types-context-api';\nimport { buildSkillCatalog, counter, type SkillEntry } from '@agimon-ai/doompi-skill/catalog';\nimport { extensionName, extensionPackageName, extensionToolSource } from '@agimon-ai/doompi-ui/extensionName';\nimport { buildToolSources } from '@agimon-ai/doompi-ui/toolInventory';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\n\n/**\n * Publishes what the session is composed of, and what it costs.\n *\n * Read at publish time rather than accumulated, because the answer changes for\n * reasons this module does not see: a reconnected MCP server, a domain switch,\n * a plan-mode tool swap. Reading the live inventory is cheap next to being\n * wrong about it.\n */\nexport interface ContextPublisher {\n /** Never rejects: callers fire this and forget it. */\n publish: () => Promise<void>;\n dispose: () => void;\n}\n\n/** The active minor modes at publish time, read rather than remembered. */\nexport type ReadMinorModes = () => readonly { readonly id: string; readonly label: string }[];\n\nexport interface ContextPublisherOptions {\n readMinorModes?: ReadMinorModes;\n /**\n * The session the detail file is keyed by, read at publish time.\n *\n * Undefined until a session is bound, and undefined in a host that has no\n * session at all; the projection is still journaled either way, and only the\n * click-through detail goes unwritten.\n */\n readSessionId?: () => string | undefined;\n /**\n * Where the click-through detail is left for the session API to find.\n *\n * Injected because writing it is filesystem work and this is not the layer\n * that does filesystem work. A host that supplies neither still gets the\n * projection; only the detail behind a row goes unpublished.\n */\n writeDetail?: (sessionId: string, revision: number, items: readonly ContextItemDetail[]) => void;\n removeDetail?: (sessionId: string) => void;\n /**\n * The system prompt as the session currently stands.\n *\n * Read rather than pushed, for the same reason the tool inventory is: the\n * prompt changes for reasons this module does not see. A host with no way to\n * answer returns undefined and the panel reports no prompt rather than a\n * stale one.\n */\n readSystemPrompt?: () => { readonly text: string; readonly stage: ContextPromptStage } | undefined;\n}\n\n/** Skills sit under owners, which is one level deeper than a flat list. */\nfunction flattenSkills(groups: Awaited<ReturnType<typeof buildSkillCatalog>>['groups']): SkillEntry[] {\n return groups.flatMap((group) => group.owners.flatMap((owner) => owner.skills));\n}\n\n/**\n * Package and plugin names to the mode that admitted them.\n *\n * Two halves meet here. Layer packages come from the harness, recorded when the\n * composition resolved. Domain plugins are re-resolved, because only the plugin\n * entry knows the domain that carried it.\n */\nfunction attributionFor(repoRoot: string, domains: readonly string[], pluginDirectories: readonly string[]) {\n const harness = getHarnessState();\n const attribution: Record<string, PackageAttribution> = { ...harness.packageAttribution };\n try {\n for (const entry of resolvePluginEntries(repoRoot, [...domains], [...pluginDirectories])) {\n if (entry.name && entry.domain) attribution[entry.name] = { kind: 'domain', mode: entry.domain };\n }\n } catch {\n // A domain that no longer resolves must not cost the reader the tool list.\n // Anything unmatched simply lands under core.\n }\n return attribution;\n}\n\nexport function createContextPublisher(\n pi: ExtensionAPI,\n cordis: Context,\n options: ContextPublisherOptions = {},\n): ContextPublisher {\n let published: string | undefined;\n let revision = 0;\n let disposed = false;\n /** Removed on disposal, so a session leaves nothing behind in the store. */\n let detailSessionId: string | undefined;\n\n const build = async (): Promise<void> => {\n if (disposed) return;\n const harness = getHarnessState();\n const mcpServers = readDoomMcpStatus(cordis)?.getSnapshot().servers;\n const sources = buildToolSources({\n tools: pi.getAllTools(),\n activeTools: pi.getActiveTools(),\n ...(mcpServers ? { mcpServers } : {}),\n resolveExtensionName: extensionName,\n resolveExtensionPackageName: extensionPackageName,\n resolveExtensionToolSource: (toolName) => extensionToolSource(pi, toolName),\n });\n\n const repoRoot = harnessRoot(harness);\n let skills: SkillEntry[] = [];\n try {\n const catalog = await buildSkillCatalog({\n repoRoot,\n activeSkillDirectories: harness.skillDirectories,\n extensionSources: readDoomSkillSourcesService(cordis)?.list() ?? [],\n });\n skills = flattenSkills(catalog.groups);\n } catch {\n // Tools are the larger cost and are already in hand; a skill walk that\n // fails should not take the whole figure down with it.\n }\n\n const countTokens = await counter();\n const prompt = options.readSystemPrompt?.();\n const promptCost = prompt === undefined ? undefined : { tokens: countTokens(prompt.text), stage: prompt.stage };\n const projection = projectContext({\n revision: revision + 1,\n majorMode: harness.majorMode,\n groups: (options.readMinorModes?.() ?? []).map((mode) => ({ ...mode, kind: 'minor' as const })),\n domains: harness.domains,\n sources,\n skills,\n attribution: attributionFor(repoRoot, harness.domains, harness.pluginDirectories),\n countTokens,\n ...(promptCost === undefined ? {} : { systemPrompt: promptCost }),\n });\n\n // Revision is compared out, so a republish that changed nothing is silent\n // rather than a new journal entry saying the same thing. The prompt joins by\n // its text: a reworded prompt of the same length is still a different answer.\n const serialized = JSON.stringify({ ...projection, revision: 0, promptText: prompt?.text });\n if (serialized === published || disposed) return;\n published = serialized;\n revision += 1;\n // The detail lands before the entry that invites a reader to ask for it, so\n // a click that follows the panel's update cannot outrun the file behind it.\n const sessionId = options.readSessionId?.();\n if (sessionId !== undefined && sessionId !== '' && options.writeDetail !== undefined) {\n detailSessionId = sessionId;\n options.writeDetail(\n sessionId,\n revision,\n buildContextDetail({\n sources,\n skills,\n countTokens,\n ...(prompt === undefined || promptCost === undefined\n ? {}\n : { systemPrompt: { text: prompt.text, tokens: promptCost.tokens, stage: prompt.stage } }),\n }),\n );\n }\n pi.appendEntry(DOOM_CONTEXT_ENTRY_TYPE, { ...projection, revision });\n };\n\n /**\n * Reporting the composition is a convenience, so it fails quietly.\n *\n * Callers publish without awaiting, and an escaping rejection would surface\n * as an unhandled error in a live session. A panel that cannot say what the\n * toolbox costs is a far smaller problem than that.\n */\n const publish = async (): Promise<void> => {\n try {\n await build();\n } catch {\n // Left unreported on purpose: the next composition change tries again.\n }\n };\n\n return {\n publish,\n dispose: () => {\n disposed = true;\n if (detailSessionId !== undefined) options.removeDetail?.(detailSessionId);\n detailSessionId = undefined;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_index = require("../../composition/repository/index.cjs");
|
|
3
|
+
let node_path = require("node:path");
|
|
4
|
+
node_path = require_runtime.__toESM(node_path, 1);
|
|
5
|
+
let node_url = require("node:url");
|
|
6
|
+
let _agimon_ai_doompi_core_sync_registration = require("@agimon-ai/doompi-core/sync-registration");
|
|
7
|
+
let node_os = require("node:os");
|
|
8
|
+
node_os = require_runtime.__toESM(node_os, 1);
|
|
9
|
+
let _agimon_ai_doompi_core_module_resolution = require("@agimon-ai/doompi-core/module-resolution");
|
|
10
|
+
let _agimon_ai_doompi_core_runtime_pi_settings = require("@agimon-ai/doompi-core/runtime-pi-settings");
|
|
11
|
+
//#region src/builders/cli/dpiSettings.ts
|
|
12
|
+
const GLOBAL_SCOPE = "global";
|
|
13
|
+
const PROJECT_SCOPE = "project";
|
|
14
|
+
const MANAGED_KEYS = [
|
|
15
|
+
"extensions",
|
|
16
|
+
"themes",
|
|
17
|
+
"theme",
|
|
18
|
+
"quietStartup"
|
|
19
|
+
];
|
|
20
|
+
const DPI_MANAGED_SETTINGS = {
|
|
21
|
+
extensions: ["@agimon-ai/doompi", "!extensions/**"],
|
|
22
|
+
themes: ["themes/doom-pi-dark.json"],
|
|
23
|
+
theme: "doom-pi-dark",
|
|
24
|
+
quietStartup: true
|
|
25
|
+
};
|
|
26
|
+
function isRecord(value) {
|
|
27
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
28
|
+
}
|
|
29
|
+
function parseSettings(content) {
|
|
30
|
+
if (content === void 0) return {};
|
|
31
|
+
const parsed = JSON.parse(content);
|
|
32
|
+
if (!isRecord(parsed)) throw new SyntaxError("Pi settings must contain a JSON object");
|
|
33
|
+
return parsed;
|
|
34
|
+
}
|
|
35
|
+
function managedView(scope, current, managedSettings) {
|
|
36
|
+
if (scope === PROJECT_SCOPE && current === void 0) return void 0;
|
|
37
|
+
const settings = parseSettings(current);
|
|
38
|
+
if (scope === GLOBAL_SCOPE) Object.assign(settings, managedSettings);
|
|
39
|
+
else for (const key of MANAGED_KEYS) delete settings[key];
|
|
40
|
+
return JSON.stringify(settings, null, 2);
|
|
41
|
+
}
|
|
42
|
+
function restorePersistedSettings(current, next) {
|
|
43
|
+
const persisted = parseSettings(current);
|
|
44
|
+
const updated = parseSettings(next);
|
|
45
|
+
for (const key of MANAGED_KEYS) if (Object.hasOwn(persisted, key)) updated[key] = persisted[key];
|
|
46
|
+
else delete updated[key];
|
|
47
|
+
return JSON.stringify(updated, null, 2);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Presents DoomPi-owned settings to Pi without allowing that overlay to leak
|
|
51
|
+
* into either the global or project settings file when Pi saves another key.
|
|
52
|
+
*/
|
|
53
|
+
var DpiSettingsStorage = class {
|
|
54
|
+
backend;
|
|
55
|
+
managedSettings;
|
|
56
|
+
constructor(backend, managedSettings = DPI_MANAGED_SETTINGS) {
|
|
57
|
+
this.backend = backend;
|
|
58
|
+
this.managedSettings = managedSettings;
|
|
59
|
+
}
|
|
60
|
+
withLock(scope, callback) {
|
|
61
|
+
this.backend.withLock(scope, (current) => {
|
|
62
|
+
const next = callback(managedView(scope, current, this.managedSettings));
|
|
63
|
+
return next === void 0 ? void 0 : restorePersistedSettings(current, next);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
function isPiSettingsRuntime(value) {
|
|
68
|
+
if (!isRecord(value) || typeof value.FileSettingsStorage !== "function") return false;
|
|
69
|
+
const settingsManager = value.SettingsManager;
|
|
70
|
+
if (typeof settingsManager !== "function") return false;
|
|
71
|
+
return typeof Reflect.get(settingsManager, "create") === "function" && typeof Reflect.get(settingsManager, "fromStorage") === "function";
|
|
72
|
+
}
|
|
73
|
+
/** Loads Pi's concrete file storage from the same pinned installation as its CLI. */
|
|
74
|
+
async function loadPiSettingsRuntime() {
|
|
75
|
+
const modulePath = node_path.default.join(node_path.default.dirname((0, _agimon_ai_doompi_core_module_resolution.piCliPath)()), "core", "settings-manager.js");
|
|
76
|
+
const loaded = await import((0, node_url.pathToFileURL)(modulePath).href);
|
|
77
|
+
if (!isPiSettingsRuntime(loaded)) throw new Error(`Unsupported Pi settings runtime: ${modulePath}`);
|
|
78
|
+
return loaded;
|
|
79
|
+
}
|
|
80
|
+
/** Selects the package recorded by sync so embedded DPI does not depend on init's global dispatcher. */
|
|
81
|
+
function resolveDpiManagedSettings(cwd, environment = process.env) {
|
|
82
|
+
try {
|
|
83
|
+
const root = require_index.findRepositoryRoot(cwd);
|
|
84
|
+
const homeDirectory = environment.HOME?.trim() || node_os.default.homedir();
|
|
85
|
+
const registration = (0, _agimon_ai_doompi_core_sync_registration.readSyncRegistration)(root, homeDirectory);
|
|
86
|
+
if (!registration) return DPI_MANAGED_SETTINGS;
|
|
87
|
+
return {
|
|
88
|
+
...DPI_MANAGED_SETTINGS,
|
|
89
|
+
extensions: [registration.package.root, "!extensions/**"]
|
|
90
|
+
};
|
|
91
|
+
} catch {
|
|
92
|
+
return {
|
|
93
|
+
...DPI_MANAGED_SETTINGS,
|
|
94
|
+
extensions: ["!extensions/**"]
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/** Installs the process-local create() hook used by upstream Pi startup and reloads. */
|
|
99
|
+
function installDpiSettingsOverlay(runtime, environment = process.env) {
|
|
100
|
+
const originalCreate = runtime.SettingsManager.create;
|
|
101
|
+
runtime.SettingsManager.create = (cwd, agentDir, options) => {
|
|
102
|
+
const resolvedAgentDirectory = agentDir ?? (0, _agimon_ai_doompi_core_runtime_pi_settings.piAgentDirectory)(environment);
|
|
103
|
+
const storage = new runtime.FileSettingsStorage(cwd, resolvedAgentDirectory);
|
|
104
|
+
const managedSettings = resolveDpiManagedSettings(cwd, environment);
|
|
105
|
+
return runtime.SettingsManager.fromStorage(new DpiSettingsStorage(storage, managedSettings), options);
|
|
106
|
+
};
|
|
107
|
+
return () => {
|
|
108
|
+
runtime.SettingsManager.create = originalCreate;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
exports.DPI_MANAGED_SETTINGS = DPI_MANAGED_SETTINGS;
|
|
113
|
+
exports.DpiSettingsStorage = DpiSettingsStorage;
|
|
114
|
+
exports.installDpiSettingsOverlay = installDpiSettingsOverlay;
|
|
115
|
+
exports.loadPiSettingsRuntime = loadPiSettingsRuntime;
|
|
116
|
+
exports.resolveDpiManagedSettings = resolveDpiManagedSettings;
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=dpiSettings.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dpiSettings.cjs","names":["path","piCliPath","pathToFileURL","findRepositoryRoot","os","readSyncRegistration","piAgentDirectory"],"sources":["../../../src/builders/cli/dpiSettings.ts"],"sourcesContent":["import os from 'node:os';\nimport path from 'node:path';\nimport { pathToFileURL } from 'node:url';\n\nimport { piCliPath } from '@agimon-ai/doompi-core/module-resolution';\nimport { piAgentDirectory } from '@agimon-ai/doompi-core/runtime-pi-settings';\nimport { readSyncRegistration } from '@agimon-ai/doompi-core/sync-registration';\nimport type { SettingsManager, SettingsManagerCreateOptions } from '@earendil-works/pi-coding-agent';\n\nimport { findRepositoryRoot } from '../../composition/repository';\n\nconst GLOBAL_SCOPE = 'global';\nconst PROJECT_SCOPE = 'project';\nconst MANAGED_KEYS = ['extensions', 'themes', 'theme', 'quietStartup'] as const;\n\nexport interface DpiManagedSettings {\n extensions: string[];\n themes: string[];\n theme: string;\n quietStartup: boolean;\n}\n\nexport const DPI_MANAGED_SETTINGS: DpiManagedSettings = {\n extensions: ['@agimon-ai/doompi', '!extensions/**'],\n themes: ['themes/doom-pi-dark.json'],\n theme: 'doom-pi-dark',\n quietStartup: true,\n};\n\nexport type DpiSettingsScope = typeof GLOBAL_SCOPE | typeof PROJECT_SCOPE;\n\nexport interface DpiSettingsStorageBackend {\n withLock(scope: DpiSettingsScope, callback: (current: string | undefined) => string | undefined): void;\n}\n\ninterface SettingsManagerClass {\n create(this: void, cwd: string, agentDir?: string, options?: SettingsManagerCreateOptions): SettingsManager;\n fromStorage(this: void, storage: DpiSettingsStorageBackend, options?: SettingsManagerCreateOptions): SettingsManager;\n}\n\ninterface FileSettingsStorageConstructor {\n new (cwd: string, agentDir: string): DpiSettingsStorageBackend;\n}\n\nexport interface PiSettingsRuntime {\n FileSettingsStorage: FileSettingsStorageConstructor;\n SettingsManager: SettingsManagerClass;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction parseSettings(content: string | undefined): Record<string, unknown> {\n if (content === undefined) return {};\n const parsed: unknown = JSON.parse(content);\n if (!isRecord(parsed)) throw new SyntaxError('Pi settings must contain a JSON object');\n return parsed;\n}\n\nfunction managedView(\n scope: DpiSettingsScope,\n current: string | undefined,\n managedSettings: DpiManagedSettings,\n): string | undefined {\n if (scope === PROJECT_SCOPE && current === undefined) return undefined;\n const settings = parseSettings(current);\n if (scope === GLOBAL_SCOPE) Object.assign(settings, managedSettings);\n else for (const key of MANAGED_KEYS) delete settings[key];\n return JSON.stringify(settings, null, 2);\n}\n\nfunction restorePersistedSettings(current: string | undefined, next: string): string {\n const persisted = parseSettings(current);\n const updated = parseSettings(next);\n for (const key of MANAGED_KEYS) {\n if (Object.hasOwn(persisted, key)) updated[key] = persisted[key];\n else delete updated[key];\n }\n return JSON.stringify(updated, null, 2);\n}\n\n/**\n * Presents DoomPi-owned settings to Pi without allowing that overlay to leak\n * into either the global or project settings file when Pi saves another key.\n */\nexport class DpiSettingsStorage implements DpiSettingsStorageBackend {\n private readonly backend: DpiSettingsStorageBackend;\n private readonly managedSettings: DpiManagedSettings;\n\n constructor(backend: DpiSettingsStorageBackend, managedSettings: DpiManagedSettings = DPI_MANAGED_SETTINGS) {\n this.backend = backend;\n this.managedSettings = managedSettings;\n }\n\n withLock(scope: DpiSettingsScope, callback: (current: string | undefined) => string | undefined): void {\n this.backend.withLock(scope, (current) => {\n const next = callback(managedView(scope, current, this.managedSettings));\n return next === undefined ? undefined : restorePersistedSettings(current, next);\n });\n }\n}\n\nfunction isPiSettingsRuntime(value: unknown): value is PiSettingsRuntime {\n if (!isRecord(value) || typeof value.FileSettingsStorage !== 'function') return false;\n const settingsManager = value.SettingsManager;\n if (typeof settingsManager !== 'function') return false;\n return (\n typeof Reflect.get(settingsManager, 'create') === 'function' &&\n typeof Reflect.get(settingsManager, 'fromStorage') === 'function'\n );\n}\n\n/** Loads Pi's concrete file storage from the same pinned installation as its CLI. */\nexport async function loadPiSettingsRuntime(): Promise<PiSettingsRuntime> {\n const modulePath = path.join(path.dirname(piCliPath()), 'core', 'settings-manager.js');\n const loaded: unknown = await import(pathToFileURL(modulePath).href);\n if (!isPiSettingsRuntime(loaded)) throw new Error(`Unsupported Pi settings runtime: ${modulePath}`);\n return loaded;\n}\n\n/** Selects the package recorded by sync so embedded DPI does not depend on init's global dispatcher. */\nexport function resolveDpiManagedSettings(\n cwd: string,\n environment: NodeJS.ProcessEnv = process.env,\n): DpiManagedSettings {\n try {\n const root = findRepositoryRoot(cwd);\n const homeDirectory = environment.HOME?.trim() || os.homedir();\n const registration = readSyncRegistration(root, homeDirectory);\n if (!registration) return DPI_MANAGED_SETTINGS;\n return { ...DPI_MANAGED_SETTINGS, extensions: [registration.package.root, '!extensions/**'] };\n } catch {\n return { ...DPI_MANAGED_SETTINGS, extensions: ['!extensions/**'] };\n }\n}\n\n/** Installs the process-local create() hook used by upstream Pi startup and reloads. */\nexport function installDpiSettingsOverlay(\n runtime: PiSettingsRuntime,\n environment: NodeJS.ProcessEnv = process.env,\n): () => void {\n const originalCreate = runtime.SettingsManager.create;\n runtime.SettingsManager.create = (cwd, agentDir, options) => {\n const resolvedAgentDirectory = agentDir ?? piAgentDirectory(environment);\n const storage = new runtime.FileSettingsStorage(cwd, resolvedAgentDirectory);\n const managedSettings = resolveDpiManagedSettings(cwd, environment);\n return runtime.SettingsManager.fromStorage(new DpiSettingsStorage(storage, managedSettings), options);\n };\n\n return () => {\n runtime.SettingsManager.create = originalCreate;\n };\n}\n"],"mappings":"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"}
|