@agimon-ai/doompi 0.0.1-alpha.27 → 0.0.1-alpha.29
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/README.md +225 -95
- package/dist/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/bin/cli.cjs +3 -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 +3 -0
- package/dist/bin/cli.mjs.map +1 -0
- package/dist/bin/doomRunner.cjs +3 -0
- package/dist/bin/doomRunner.cjs.map +1 -0
- package/dist/bin/doomRunner.d.cts +13 -0
- package/dist/bin/doomRunner.d.cts.map +1 -0
- package/dist/bin/doomRunner.d.mts +13 -0
- package/dist/bin/doomRunner.d.mts.map +1 -0
- package/dist/bin/doomRunner.mjs +3 -0
- package/dist/bin/doomRunner.mjs.map +1 -0
- package/dist/bin/dpi.cjs +3 -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 +3 -0
- package/dist/bin/dpi.mjs.map +1 -0
- package/dist/cli/cliApp.cjs +1 -0
- package/dist/cli/cliApp.d.cts +2 -0
- package/dist/cli/cliApp.d.mts +2 -0
- package/dist/cli/cliApp.mjs +1 -0
- package/dist/cli/compatibilityOptions.cjs +1 -0
- package/dist/cli/compatibilityOptions.d.cts +2 -0
- package/dist/cli/compatibilityOptions.d.mts +2 -0
- package/dist/cli/compatibilityOptions.mjs +1 -0
- package/dist/cli/help.cjs +1 -0
- package/dist/cli/help.d.cts +2 -0
- package/dist/cli/help.d.mts +2 -0
- package/dist/cli/help.mjs +1 -0
- package/dist/cli/index.cjs +1 -0
- package/dist/cli/index.d.cts +5 -0
- package/dist/cli/index.d.mts +5 -0
- package/dist/cli/index.mjs +1 -0
- package/dist/cli/matrixOptions.cjs +1 -0
- package/dist/cli/matrixOptions.d.cts +2 -0
- package/dist/cli/matrixOptions.d.mts +2 -0
- package/dist/cli/matrixOptions.mjs +1 -0
- package/dist/cli/options.cjs +1 -0
- package/dist/cli/options.d.cts +2 -0
- package/dist/cli/options.d.mts +2 -0
- package/dist/cli/options.mjs +1 -0
- package/dist/commands/baseCommand.cjs +1 -0
- package/dist/commands/baseCommand.d.cts +2 -0
- package/dist/commands/baseCommand.d.mts +2 -0
- package/dist/commands/baseCommand.mjs +1 -0
- package/dist/commands/compatibilityCommand.cjs +1 -0
- package/dist/commands/compatibilityCommand.d.cts +2 -0
- package/dist/commands/compatibilityCommand.d.mts +2 -0
- package/dist/commands/compatibilityCommand.mjs +1 -0
- package/dist/commands/emitMcpCommand.cjs +1 -0
- package/dist/commands/emitMcpCommand.d.cts +2 -0
- package/dist/commands/emitMcpCommand.d.mts +2 -0
- package/dist/commands/emitMcpCommand.mjs +1 -0
- package/dist/commands/explainCommand.cjs +1 -0
- package/dist/commands/explainCommand.d.cts +2 -0
- package/dist/commands/explainCommand.d.mts +2 -0
- package/dist/commands/explainCommand.mjs +1 -0
- package/dist/commands/index.cjs +1 -0
- package/dist/commands/index.d.cts +8 -0
- package/dist/commands/index.d.mts +8 -0
- package/dist/commands/index.mjs +1 -0
- package/dist/commands/initCommand.cjs +1 -0
- package/dist/commands/initCommand.d.cts +2 -0
- package/dist/commands/initCommand.d.mts +2 -0
- package/dist/commands/initCommand.mjs +1 -0
- package/dist/commands/launchCommand.cjs +1 -0
- package/dist/commands/launchCommand.d.cts +2 -0
- package/dist/commands/launchCommand.d.mts +2 -0
- package/dist/commands/launchCommand.mjs +1 -0
- package/dist/commands/syncCommand.cjs +1 -0
- package/dist/commands/syncCommand.d.cts +2 -0
- package/dist/commands/syncCommand.d.mts +2 -0
- package/dist/commands/syncCommand.mjs +1 -0
- package/dist/config/harnessState.cjs +1 -0
- package/dist/config/harnessState.d.cts +2 -0
- package/dist/config/harnessState.d.mts +2 -0
- package/dist/config/harnessState.mjs +1 -0
- package/dist/config/index.cjs +1 -0
- package/dist/config/index.d.cts +7 -0
- package/dist/config/index.d.mts +7 -0
- package/dist/config/index.mjs +1 -0
- package/dist/config/projectTrust.cjs +1 -0
- package/dist/config/projectTrust.d.cts +2 -0
- package/dist/config/projectTrust.d.mts +2 -0
- package/dist/config/projectTrust.mjs +1 -0
- package/dist/entries/cordisFinalizer.cjs +1 -0
- package/dist/entries/cordisFinalizer.d.cts +2 -0
- package/dist/entries/cordisFinalizer.d.mts +2 -0
- package/dist/entries/cordisFinalizer.mjs +1 -0
- package/dist/entries/cordisHost.cjs +1 -0
- package/dist/entries/cordisHost.d.cts +2 -0
- package/dist/entries/cordisHost.d.mts +2 -0
- package/dist/entries/cordisHost.mjs +1 -0
- package/dist/entries/domains.cjs +1 -0
- package/dist/entries/domains.d.cts +2 -0
- package/dist/entries/domains.d.mts +2 -0
- package/dist/entries/domains.mjs +1 -0
- package/dist/entries/doom.cjs +1 -0
- package/dist/entries/doom.d.cts +2 -0
- package/dist/entries/doom.d.mts +2 -0
- package/dist/entries/doom.mjs +1 -0
- package/dist/entries/effort.cjs +1 -0
- package/dist/entries/effort.d.cts +2 -0
- package/dist/entries/effort.d.mts +2 -0
- package/dist/entries/effort.mjs +1 -0
- package/dist/entries/modeCatalog.cjs +1 -0
- package/dist/entries/modeCatalog.d.cts +2 -0
- package/dist/entries/modeCatalog.d.mts +2 -0
- package/dist/entries/modeCatalog.mjs +1 -0
- package/dist/entries/ollamaProvider.cjs +1 -0
- package/dist/entries/ollamaProvider.d.cts +2 -0
- package/dist/entries/ollamaProvider.d.mts +2 -0
- package/dist/entries/ollamaProvider.mjs +1 -0
- package/dist/entries/styleSystem.cjs +1 -0
- package/dist/entries/styleSystem.d.cts +2 -0
- package/dist/entries/styleSystem.d.mts +2 -0
- package/dist/entries/styleSystem.mjs +1 -0
- package/dist/extensions/pi.cjs +1 -0
- package/dist/extensions/pi.d.cts +2 -0
- package/dist/extensions/pi.d.mts +2 -0
- package/dist/extensions/pi.mjs +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +42 -0
- package/dist/index.d.mts +42 -0
- package/dist/index.mjs +1 -0
- package/dist/logSinkTelemetry.cjs +1 -0
- package/dist/logSinkTelemetry.d.cts +2 -0
- package/dist/logSinkTelemetry.d.mts +2 -0
- package/dist/logSinkTelemetry.mjs +1 -0
- package/dist/pi-cache-optimizer-DcFaM4WB.mjs +47 -0
- package/dist/pi-cache-optimizer-DcFaM4WB.mjs.map +1 -0
- package/dist/services/compatibility/antigravity.cjs +1 -0
- package/dist/services/compatibility/antigravity.d.cts +2 -0
- package/dist/services/compatibility/antigravity.d.mts +2 -0
- package/dist/services/compatibility/antigravity.mjs +1 -0
- package/dist/services/compatibility/codex.cjs +1 -0
- package/dist/services/compatibility/codex.d.cts +2 -0
- package/dist/services/compatibility/codex.d.mts +2 -0
- package/dist/services/compatibility/codex.mjs +1 -0
- package/dist/services/compatibility/index.cjs +1 -0
- package/dist/services/compatibility/index.d.cts +6 -0
- package/dist/services/compatibility/index.d.mts +6 -0
- package/dist/services/compatibility/index.mjs +1 -0
- package/dist/services/compatibility/process.cjs +1 -0
- package/dist/services/compatibility/process.d.cts +2 -0
- package/dist/services/compatibility/process.d.mts +2 -0
- package/dist/services/compatibility/process.mjs +1 -0
- package/dist/services/compatibility/shared.cjs +1 -0
- package/dist/services/compatibility/shared.d.cts +2 -0
- package/dist/services/compatibility/shared.d.mts +2 -0
- package/dist/services/compatibility/shared.mjs +1 -0
- package/dist/services/compatibilityContext.cjs +1 -0
- package/dist/services/compatibilityContext.d.cts +2 -0
- package/dist/services/compatibilityContext.d.mts +2 -0
- package/dist/services/compatibilityContext.mjs +1 -0
- package/dist/services/composer.cjs +1 -0
- package/dist/services/composer.d.cts +4 -0
- package/dist/services/composer.d.mts +4 -0
- package/dist/services/composer.mjs +1 -0
- package/dist/services/harnessContext.cjs +1 -0
- package/dist/services/harnessContext.d.cts +2 -0
- package/dist/services/harnessContext.d.mts +2 -0
- package/dist/services/harnessContext.mjs +1 -0
- package/dist/services/index.cjs +1 -0
- package/dist/services/index.d.cts +18 -0
- package/dist/services/index.d.mts +18 -0
- package/dist/services/index.mjs +1 -0
- package/dist/services/matrixSwitcher.cjs +1 -0
- package/dist/services/matrixSwitcher.d.cts +3 -0
- package/dist/services/matrixSwitcher.d.mts +3 -0
- package/dist/services/matrixSwitcher.mjs +1 -0
- package/dist/services/mcpFilter.cjs +1 -0
- package/dist/services/mcpFilter.d.cts +1 -0
- package/dist/services/mcpFilter.d.mts +1 -0
- package/dist/services/mcpFilter.mjs +1 -0
- package/dist/services/modeCatalog.cjs +1 -0
- package/dist/services/modeCatalog.d.cts +2 -0
- package/dist/services/modeCatalog.d.mts +2 -0
- package/dist/services/modeCatalog.mjs +1 -0
- package/dist/services/piSettings.cjs +1 -0
- package/dist/services/piSettings.d.cts +2 -0
- package/dist/services/piSettings.d.mts +2 -0
- package/dist/services/piSettings.mjs +1 -0
- package/dist/services/resourceCollector.cjs +1 -0
- package/dist/services/resourceCollector.d.cts +1 -0
- package/dist/services/resourceCollector.d.mts +1 -0
- package/dist/services/resourceCollector.mjs +1 -0
- package/dist/services/syncState.cjs +1 -0
- package/dist/services/syncState.d.cts +3 -0
- package/dist/services/syncState.d.mts +3 -0
- package/dist/services/syncState.mjs +1 -0
- package/dist/src/adapters/bootstrapClaim.cjs +2 -0
- package/dist/src/adapters/bootstrapClaim.cjs.map +1 -0
- package/dist/src/adapters/bootstrapClaim.mjs +2 -0
- package/dist/src/adapters/bootstrapClaim.mjs.map +1 -0
- package/dist/src/adapters/bootstrapLocator.cjs +2 -0
- package/dist/src/adapters/bootstrapLocator.cjs.map +1 -0
- package/dist/src/adapters/bootstrapLocator.d.cts +6 -0
- package/dist/src/adapters/bootstrapLocator.d.cts.map +1 -0
- package/dist/src/adapters/bootstrapLocator.d.mts +6 -0
- package/dist/src/adapters/bootstrapLocator.d.mts.map +1 -0
- package/dist/src/adapters/bootstrapLocator.mjs +2 -0
- package/dist/src/adapters/bootstrapLocator.mjs.map +1 -0
- package/dist/src/adapters/compatibility/antigravity.cjs +2 -0
- package/dist/src/adapters/compatibility/antigravity.cjs.map +1 -0
- package/dist/src/adapters/compatibility/antigravity.d.cts +10 -0
- package/dist/src/adapters/compatibility/antigravity.d.cts.map +1 -0
- package/dist/src/adapters/compatibility/antigravity.d.mts +10 -0
- package/dist/src/adapters/compatibility/antigravity.d.mts.map +1 -0
- package/dist/src/adapters/compatibility/antigravity.mjs +2 -0
- package/dist/src/adapters/compatibility/antigravity.mjs.map +1 -0
- package/dist/src/adapters/compatibility/codex.cjs +2 -0
- package/dist/src/adapters/compatibility/codex.cjs.map +1 -0
- package/dist/src/adapters/compatibility/codex.d.cts +18 -0
- package/dist/src/adapters/compatibility/codex.d.cts.map +1 -0
- package/dist/src/adapters/compatibility/codex.d.mts +18 -0
- package/dist/src/adapters/compatibility/codex.d.mts.map +1 -0
- package/dist/src/adapters/compatibility/codex.mjs +2 -0
- package/dist/src/adapters/compatibility/codex.mjs.map +1 -0
- package/dist/src/adapters/compatibility/index.cjs +2 -0
- package/dist/src/adapters/compatibility/index.cjs.map +1 -0
- package/dist/src/adapters/compatibility/index.d.cts +15 -0
- package/dist/src/adapters/compatibility/index.d.cts.map +1 -0
- package/dist/src/adapters/compatibility/index.d.mts +15 -0
- package/dist/src/adapters/compatibility/index.d.mts.map +1 -0
- package/dist/src/adapters/compatibility/index.mjs +2 -0
- package/dist/src/adapters/compatibility/index.mjs.map +1 -0
- package/dist/src/adapters/compatibility/process.cjs +2 -0
- package/dist/src/adapters/compatibility/process.cjs.map +1 -0
- package/dist/src/adapters/compatibility/process.d.cts +34 -0
- package/dist/src/adapters/compatibility/process.d.cts.map +1 -0
- package/dist/src/adapters/compatibility/process.d.mts +34 -0
- package/dist/src/adapters/compatibility/process.d.mts.map +1 -0
- package/dist/src/adapters/compatibility/process.mjs +2 -0
- package/dist/src/adapters/compatibility/process.mjs.map +1 -0
- package/dist/src/adapters/compatibility/shared.cjs +2 -0
- package/dist/src/adapters/compatibility/shared.cjs.map +1 -0
- package/dist/src/adapters/compatibility/shared.d.cts +32 -0
- package/dist/src/adapters/compatibility/shared.d.cts.map +1 -0
- package/dist/src/adapters/compatibility/shared.d.mts +32 -0
- package/dist/src/adapters/compatibility/shared.d.mts.map +1 -0
- package/dist/src/adapters/compatibility/shared.mjs +2 -0
- package/dist/src/adapters/compatibility/shared.mjs.map +1 -0
- package/dist/src/adapters/compatibilityContext.cjs +2 -0
- package/dist/src/adapters/compatibilityContext.cjs.map +1 -0
- package/dist/src/adapters/compatibilityContext.d.cts +23 -0
- package/dist/src/adapters/compatibilityContext.d.cts.map +1 -0
- package/dist/src/adapters/compatibilityContext.d.mts +23 -0
- package/dist/src/adapters/compatibilityContext.d.mts.map +1 -0
- package/dist/src/adapters/compatibilityContext.mjs +2 -0
- package/dist/src/adapters/compatibilityContext.mjs.map +1 -0
- package/dist/src/adapters/composer.cjs +2 -0
- package/dist/src/adapters/composer.cjs.map +1 -0
- package/dist/src/adapters/composer.d.cts +119 -0
- package/dist/src/adapters/composer.d.cts.map +1 -0
- package/dist/src/adapters/composer.d.mts +119 -0
- package/dist/src/adapters/composer.d.mts.map +1 -0
- package/dist/src/adapters/composer.mjs +2 -0
- package/dist/src/adapters/composer.mjs.map +1 -0
- package/dist/src/adapters/compositionState.cjs +2 -0
- package/dist/src/adapters/compositionState.cjs.map +1 -0
- package/dist/src/adapters/compositionState.d.cts +10 -0
- package/dist/src/adapters/compositionState.d.cts.map +1 -0
- package/dist/src/adapters/compositionState.d.mts +10 -0
- package/dist/src/adapters/compositionState.d.mts.map +1 -0
- package/dist/src/adapters/compositionState.mjs +2 -0
- package/dist/src/adapters/compositionState.mjs.map +1 -0
- package/dist/src/adapters/config/harnessState.cjs +2 -0
- package/dist/src/adapters/config/harnessState.cjs.map +1 -0
- package/dist/src/adapters/config/harnessState.d.cts +19 -0
- package/dist/src/adapters/config/harnessState.d.cts.map +1 -0
- package/dist/src/adapters/config/harnessState.d.mts +19 -0
- package/dist/src/adapters/config/harnessState.d.mts.map +1 -0
- package/dist/src/adapters/config/harnessState.mjs +2 -0
- package/dist/src/adapters/config/harnessState.mjs.map +1 -0
- package/dist/src/adapters/doomPackage.cjs +2 -0
- package/dist/src/adapters/doomPackage.cjs.map +1 -0
- package/dist/src/adapters/doomPackage.mjs +2 -0
- package/dist/src/adapters/doomPackage.mjs.map +1 -0
- package/dist/src/adapters/dpiRunner.cjs +3 -0
- package/dist/src/adapters/dpiRunner.cjs.map +1 -0
- package/dist/src/adapters/dpiRunner.mjs +3 -0
- package/dist/src/adapters/dpiRunner.mjs.map +1 -0
- package/dist/src/adapters/dpiSettings.cjs +2 -0
- package/dist/src/adapters/dpiSettings.cjs.map +1 -0
- package/dist/src/adapters/dpiSettings.mjs +2 -0
- package/dist/src/adapters/dpiSettings.mjs.map +1 -0
- package/dist/src/adapters/extensionCompiler.cjs +3 -0
- package/dist/src/adapters/extensionCompiler.cjs.map +1 -0
- package/dist/src/adapters/extensionCompiler.mjs +3 -0
- package/dist/src/adapters/extensionCompiler.mjs.map +1 -0
- package/dist/src/adapters/harnessContext.cjs +2 -0
- package/dist/src/adapters/harnessContext.cjs.map +1 -0
- package/dist/src/adapters/harnessContext.d.cts +52 -0
- package/dist/src/adapters/harnessContext.d.cts.map +1 -0
- package/dist/src/adapters/harnessContext.d.mts +52 -0
- package/dist/src/adapters/harnessContext.d.mts.map +1 -0
- package/dist/src/adapters/harnessContext.mjs +2 -0
- package/dist/src/adapters/harnessContext.mjs.map +1 -0
- package/dist/src/adapters/layerPackageInstaller.cjs +2 -0
- package/dist/src/adapters/layerPackageInstaller.cjs.map +1 -0
- package/dist/src/adapters/layerPackageInstaller.mjs +2 -0
- package/dist/src/adapters/layerPackageInstaller.mjs.map +1 -0
- package/dist/src/adapters/modules/moduleResolution.cjs +2 -0
- package/dist/src/adapters/modules/moduleResolution.cjs.map +1 -0
- package/dist/src/adapters/modules/moduleResolution.d.cts +74 -0
- package/dist/src/adapters/modules/moduleResolution.d.cts.map +1 -0
- package/dist/src/adapters/modules/moduleResolution.d.mts +74 -0
- package/dist/src/adapters/modules/moduleResolution.d.mts.map +1 -0
- package/dist/src/adapters/modules/moduleResolution.mjs +2 -0
- package/dist/src/adapters/modules/moduleResolution.mjs.map +1 -0
- package/dist/src/adapters/packageBootstrap.cjs +2 -0
- package/dist/src/adapters/packageBootstrap.cjs.map +1 -0
- package/dist/src/adapters/packageBootstrap.d.cts +7 -0
- package/dist/src/adapters/packageBootstrap.d.cts.map +1 -0
- package/dist/src/adapters/packageBootstrap.d.mts +7 -0
- package/dist/src/adapters/packageBootstrap.d.mts.map +1 -0
- package/dist/src/adapters/packageBootstrap.mjs +2 -0
- package/dist/src/adapters/packageBootstrap.mjs.map +1 -0
- package/dist/src/adapters/piExtensionAlias.cjs +2 -0
- package/dist/src/adapters/piExtensionAlias.cjs.map +1 -0
- package/dist/src/adapters/piExtensionAlias.mjs +2 -0
- package/dist/src/adapters/piExtensionAlias.mjs.map +1 -0
- package/dist/src/adapters/piSettings.cjs +2 -0
- package/dist/src/adapters/piSettings.cjs.map +1 -0
- package/dist/src/adapters/piSettings.d.cts +24 -0
- package/dist/src/adapters/piSettings.d.cts.map +1 -0
- package/dist/src/adapters/piSettings.d.mts +24 -0
- package/dist/src/adapters/piSettings.d.mts.map +1 -0
- package/dist/src/adapters/piSettings.mjs +2 -0
- package/dist/src/adapters/piSettings.mjs.map +1 -0
- package/dist/src/adapters/projectPiSettings.cjs +2 -0
- package/dist/src/adapters/projectPiSettings.cjs.map +1 -0
- package/dist/src/adapters/projectPiSettings.d.cts +28 -0
- package/dist/src/adapters/projectPiSettings.d.cts.map +1 -0
- package/dist/src/adapters/projectPiSettings.d.mts +28 -0
- package/dist/src/adapters/projectPiSettings.d.mts.map +1 -0
- package/dist/src/adapters/projectPiSettings.mjs +2 -0
- package/dist/src/adapters/projectPiSettings.mjs.map +1 -0
- package/dist/src/adapters/repository/repository.cjs +2 -0
- package/dist/src/adapters/repository/repository.cjs.map +1 -0
- package/dist/src/adapters/repository/repository.d.cts +21 -0
- package/dist/src/adapters/repository/repository.d.cts.map +1 -0
- package/dist/src/adapters/repository/repository.d.mts +21 -0
- package/dist/src/adapters/repository/repository.d.mts.map +1 -0
- package/dist/src/adapters/repository/repository.mjs +2 -0
- package/dist/src/adapters/repository/repository.mjs.map +1 -0
- package/dist/src/adapters/runtimeBundle.cjs +2 -0
- package/dist/src/adapters/runtimeBundle.cjs.map +1 -0
- package/dist/src/adapters/runtimeBundle.mjs +2 -0
- package/dist/src/adapters/runtimeBundle.mjs.map +1 -0
- package/dist/src/adapters/runtimeIdentity.cjs +2 -0
- package/dist/src/adapters/runtimeIdentity.cjs.map +1 -0
- package/dist/src/adapters/runtimeIdentity.d.cts +8 -0
- package/dist/src/adapters/runtimeIdentity.d.cts.map +1 -0
- package/dist/src/adapters/runtimeIdentity.d.mts +8 -0
- package/dist/src/adapters/runtimeIdentity.d.mts.map +1 -0
- package/dist/src/adapters/runtimeIdentity.mjs +2 -0
- package/dist/src/adapters/runtimeIdentity.mjs.map +1 -0
- package/dist/src/adapters/serialization/json.cjs +2 -0
- package/dist/src/adapters/serialization/json.cjs.map +1 -0
- package/dist/src/adapters/serialization/json.d.cts +23 -0
- package/dist/src/adapters/serialization/json.d.cts.map +1 -0
- package/dist/src/adapters/serialization/json.d.mts +23 -0
- package/dist/src/adapters/serialization/json.d.mts.map +1 -0
- package/dist/src/adapters/serialization/json.mjs +2 -0
- package/dist/src/adapters/serialization/json.mjs.map +1 -0
- package/dist/src/adapters/sharedBuildCache.cjs +2 -0
- package/dist/src/adapters/sharedBuildCache.cjs.map +1 -0
- package/dist/src/adapters/sharedBuildCache.mjs +2 -0
- package/dist/src/adapters/sharedBuildCache.mjs.map +1 -0
- package/dist/src/adapters/syncLocation.cjs +2 -0
- package/dist/src/adapters/syncLocation.cjs.map +1 -0
- package/dist/src/adapters/syncLocation.d.cts +19 -0
- package/dist/src/adapters/syncLocation.d.cts.map +1 -0
- package/dist/src/adapters/syncLocation.d.mts +19 -0
- package/dist/src/adapters/syncLocation.d.mts.map +1 -0
- package/dist/src/adapters/syncLocation.mjs +2 -0
- package/dist/src/adapters/syncLocation.mjs.map +1 -0
- package/dist/src/adapters/syncState.cjs +2 -0
- package/dist/src/adapters/syncState.cjs.map +1 -0
- package/dist/src/adapters/syncState.d.cts +155 -0
- package/dist/src/adapters/syncState.d.cts.map +1 -0
- package/dist/src/adapters/syncState.d.mts +155 -0
- package/dist/src/adapters/syncState.d.mts.map +1 -0
- package/dist/src/adapters/syncState.mjs +2 -0
- package/dist/src/adapters/syncState.mjs.map +1 -0
- package/dist/src/adapters/syncStateContract.cjs +2 -0
- package/dist/src/adapters/syncStateContract.cjs.map +1 -0
- package/dist/src/adapters/syncStateContract.d.cts +12 -0
- package/dist/src/adapters/syncStateContract.d.cts.map +1 -0
- package/dist/src/adapters/syncStateContract.d.mts +12 -0
- package/dist/src/adapters/syncStateContract.d.mts.map +1 -0
- package/dist/src/adapters/syncStateContract.mjs +2 -0
- package/dist/src/adapters/syncStateContract.mjs.map +1 -0
- package/dist/src/adapters/syncedRuntimeBuilder.cjs +2 -0
- package/dist/src/adapters/syncedRuntimeBuilder.cjs.map +1 -0
- package/dist/src/adapters/syncedRuntimeBuilder.d.cts +11 -0
- package/dist/src/adapters/syncedRuntimeBuilder.d.cts.map +1 -0
- package/dist/src/adapters/syncedRuntimeBuilder.d.mts +11 -0
- package/dist/src/adapters/syncedRuntimeBuilder.d.mts.map +1 -0
- package/dist/src/adapters/syncedRuntimeBuilder.mjs +2 -0
- package/dist/src/adapters/syncedRuntimeBuilder.mjs.map +1 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.cjs +2 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.cjs.map +1 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.d.cts +50 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.d.cts.map +1 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.d.mts +50 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.d.mts.map +1 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.mjs +2 -0
- package/dist/src/adapters/telemetry/logSinkTelemetry.mjs.map +1 -0
- package/dist/src/commands/baseCommand.cjs +2 -0
- package/dist/src/commands/baseCommand.cjs.map +1 -0
- package/dist/src/commands/baseCommand.d.cts +36 -0
- package/dist/src/commands/baseCommand.d.cts.map +1 -0
- package/dist/src/commands/baseCommand.d.mts +36 -0
- package/dist/src/commands/baseCommand.d.mts.map +1 -0
- package/dist/src/commands/baseCommand.mjs +2 -0
- package/dist/src/commands/baseCommand.mjs.map +1 -0
- package/dist/src/commands/buildCommand.cjs +3 -0
- package/dist/src/commands/buildCommand.cjs.map +1 -0
- package/dist/src/commands/buildCommand.mjs +3 -0
- package/dist/src/commands/buildCommand.mjs.map +1 -0
- package/dist/src/commands/cli/cliApp.cjs +2 -0
- package/dist/src/commands/cli/cliApp.cjs.map +1 -0
- package/dist/src/commands/cli/cliApp.d.cts +44 -0
- package/dist/src/commands/cli/cliApp.d.cts.map +1 -0
- package/dist/src/commands/cli/cliApp.d.mts +44 -0
- package/dist/src/commands/cli/cliApp.d.mts.map +1 -0
- package/dist/src/commands/cli/cliApp.mjs +2 -0
- package/dist/src/commands/cli/cliApp.mjs.map +1 -0
- package/dist/src/commands/cli/compatibilityOptions.cjs +2 -0
- package/dist/src/commands/cli/compatibilityOptions.cjs.map +1 -0
- package/dist/src/commands/cli/compatibilityOptions.d.cts +14 -0
- package/dist/src/commands/cli/compatibilityOptions.d.cts.map +1 -0
- package/dist/src/commands/cli/compatibilityOptions.d.mts +14 -0
- package/dist/src/commands/cli/compatibilityOptions.d.mts.map +1 -0
- package/dist/src/commands/cli/compatibilityOptions.mjs +2 -0
- package/dist/src/commands/cli/compatibilityOptions.mjs.map +1 -0
- package/dist/src/commands/cli/help.cjs +68 -0
- package/dist/src/commands/cli/help.cjs.map +1 -0
- package/dist/src/commands/cli/help.d.cts +6 -0
- package/dist/src/commands/cli/help.d.cts.map +1 -0
- package/dist/src/commands/cli/help.d.mts +6 -0
- package/dist/src/commands/cli/help.d.mts.map +1 -0
- package/dist/src/commands/cli/help.mjs +68 -0
- package/dist/src/commands/cli/help.mjs.map +1 -0
- package/dist/src/commands/cli/matrixOptions.cjs +2 -0
- package/dist/src/commands/cli/matrixOptions.cjs.map +1 -0
- package/dist/src/commands/cli/matrixOptions.d.cts +91 -0
- package/dist/src/commands/cli/matrixOptions.d.cts.map +1 -0
- package/dist/src/commands/cli/matrixOptions.d.mts +91 -0
- package/dist/src/commands/cli/matrixOptions.d.mts.map +1 -0
- package/dist/src/commands/cli/matrixOptions.mjs +2 -0
- package/dist/src/commands/cli/matrixOptions.mjs.map +1 -0
- package/dist/src/commands/cli/options.cjs +2 -0
- package/dist/src/commands/cli/options.cjs.map +1 -0
- package/dist/src/commands/cli/options.d.cts +6 -0
- package/dist/src/commands/cli/options.d.cts.map +1 -0
- package/dist/src/commands/cli/options.d.mts +6 -0
- package/dist/src/commands/cli/options.d.mts.map +1 -0
- package/dist/src/commands/cli/options.mjs +2 -0
- package/dist/src/commands/cli/options.mjs.map +1 -0
- package/dist/src/commands/compatibilityCommand.cjs +2 -0
- package/dist/src/commands/compatibilityCommand.cjs.map +1 -0
- package/dist/src/commands/compatibilityCommand.d.cts +13 -0
- package/dist/src/commands/compatibilityCommand.d.cts.map +1 -0
- package/dist/src/commands/compatibilityCommand.d.mts +13 -0
- package/dist/src/commands/compatibilityCommand.d.mts.map +1 -0
- package/dist/src/commands/compatibilityCommand.mjs +2 -0
- package/dist/src/commands/compatibilityCommand.mjs.map +1 -0
- package/dist/src/commands/emitMcpCommand.cjs +2 -0
- package/dist/src/commands/emitMcpCommand.cjs.map +1 -0
- package/dist/src/commands/emitMcpCommand.d.cts +18 -0
- package/dist/src/commands/emitMcpCommand.d.cts.map +1 -0
- package/dist/src/commands/emitMcpCommand.d.mts +18 -0
- package/dist/src/commands/emitMcpCommand.d.mts.map +1 -0
- package/dist/src/commands/emitMcpCommand.mjs +2 -0
- package/dist/src/commands/emitMcpCommand.mjs.map +1 -0
- package/dist/src/commands/explainCommand.cjs +21 -0
- package/dist/src/commands/explainCommand.cjs.map +1 -0
- package/dist/src/commands/explainCommand.d.cts +62 -0
- package/dist/src/commands/explainCommand.d.cts.map +1 -0
- package/dist/src/commands/explainCommand.d.mts +62 -0
- package/dist/src/commands/explainCommand.d.mts.map +1 -0
- package/dist/src/commands/explainCommand.mjs +21 -0
- package/dist/src/commands/explainCommand.mjs.map +1 -0
- package/dist/src/commands/initCommand.cjs +2 -0
- package/dist/src/commands/initCommand.cjs.map +1 -0
- package/dist/src/commands/initCommand.d.cts +11 -0
- package/dist/src/commands/initCommand.d.cts.map +1 -0
- package/dist/src/commands/initCommand.d.mts +11 -0
- package/dist/src/commands/initCommand.d.mts.map +1 -0
- package/dist/src/commands/initCommand.mjs +2 -0
- package/dist/src/commands/initCommand.mjs.map +1 -0
- package/dist/src/commands/initPresenter.cjs +3 -0
- package/dist/src/commands/initPresenter.cjs.map +1 -0
- package/dist/src/commands/initPresenter.d.cts +9 -0
- package/dist/src/commands/initPresenter.d.cts.map +1 -0
- package/dist/src/commands/initPresenter.d.mts +9 -0
- package/dist/src/commands/initPresenter.d.mts.map +1 -0
- package/dist/src/commands/initPresenter.mjs +3 -0
- package/dist/src/commands/initPresenter.mjs.map +1 -0
- package/dist/src/commands/launchCommand.cjs +2 -0
- package/dist/src/commands/launchCommand.cjs.map +1 -0
- package/dist/src/commands/launchCommand.d.cts +32 -0
- package/dist/src/commands/launchCommand.d.cts.map +1 -0
- package/dist/src/commands/launchCommand.d.mts +32 -0
- package/dist/src/commands/launchCommand.d.mts.map +1 -0
- package/dist/src/commands/launchCommand.mjs +2 -0
- package/dist/src/commands/launchCommand.mjs.map +1 -0
- package/dist/src/commands/syncCommand.cjs +7 -0
- package/dist/src/commands/syncCommand.cjs.map +1 -0
- package/dist/src/commands/syncCommand.d.cts +49 -0
- package/dist/src/commands/syncCommand.d.cts.map +1 -0
- package/dist/src/commands/syncCommand.d.mts +49 -0
- package/dist/src/commands/syncCommand.d.mts.map +1 -0
- package/dist/src/commands/syncCommand.mjs +7 -0
- package/dist/src/commands/syncCommand.mjs.map +1 -0
- package/dist/src/commands/syncPipeline.cjs +2 -0
- package/dist/src/commands/syncPipeline.cjs.map +1 -0
- package/dist/src/commands/syncPipeline.mjs +2 -0
- package/dist/src/commands/syncPipeline.mjs.map +1 -0
- package/dist/src/extensions/entries/cacheOptimizer.mjs +2 -0
- package/dist/src/extensions/entries/cacheOptimizer.mjs.map +1 -0
- package/dist/src/extensions/entries/cordisFinalizer.cjs +2 -0
- package/dist/src/extensions/entries/cordisFinalizer.cjs.map +1 -0
- package/dist/src/extensions/entries/cordisFinalizer.d.cts +7 -0
- package/dist/src/extensions/entries/cordisFinalizer.d.cts.map +1 -0
- package/dist/src/extensions/entries/cordisFinalizer.d.mts +7 -0
- package/dist/src/extensions/entries/cordisFinalizer.d.mts.map +1 -0
- package/dist/src/extensions/entries/cordisFinalizer.mjs +2 -0
- package/dist/src/extensions/entries/cordisFinalizer.mjs.map +1 -0
- package/dist/src/extensions/entries/cordisHost.cjs +2 -0
- package/dist/src/extensions/entries/cordisHost.cjs.map +1 -0
- package/dist/src/extensions/entries/cordisHost.d.cts +7 -0
- package/dist/src/extensions/entries/cordisHost.d.cts.map +1 -0
- package/dist/src/extensions/entries/cordisHost.d.mts +7 -0
- package/dist/src/extensions/entries/cordisHost.d.mts.map +1 -0
- package/dist/src/extensions/entries/cordisHost.mjs +2 -0
- package/dist/src/extensions/entries/cordisHost.mjs.map +1 -0
- package/dist/src/extensions/entries/doom.cjs +2 -0
- package/dist/src/extensions/entries/doom.cjs.map +1 -0
- package/dist/src/extensions/entries/doom.d.cts +13 -0
- package/dist/src/extensions/entries/doom.d.cts.map +1 -0
- package/dist/src/extensions/entries/doom.d.mts +13 -0
- package/dist/src/extensions/entries/doom.d.mts.map +1 -0
- package/dist/src/extensions/entries/doom.mjs +2 -0
- package/dist/src/extensions/entries/doom.mjs.map +1 -0
- package/dist/src/extensions/entries/effort.cjs +2 -0
- package/dist/src/extensions/entries/effort.cjs.map +1 -0
- package/dist/src/extensions/entries/effort.d.cts +9 -0
- package/dist/src/extensions/entries/effort.d.cts.map +1 -0
- package/dist/src/extensions/entries/effort.d.mts +9 -0
- package/dist/src/extensions/entries/effort.d.mts.map +1 -0
- package/dist/src/extensions/entries/effort.mjs +2 -0
- package/dist/src/extensions/entries/effort.mjs.map +1 -0
- package/dist/src/extensions/entries/modeCatalog.cjs +2 -0
- package/dist/src/extensions/entries/modeCatalog.cjs.map +1 -0
- package/dist/src/extensions/entries/modeCatalog.d.cts +6 -0
- package/dist/src/extensions/entries/modeCatalog.d.cts.map +1 -0
- package/dist/src/extensions/entries/modeCatalog.d.mts +6 -0
- package/dist/src/extensions/entries/modeCatalog.d.mts.map +1 -0
- package/dist/src/extensions/entries/modeCatalog.mjs +2 -0
- package/dist/src/extensions/entries/modeCatalog.mjs.map +1 -0
- package/dist/src/extensions/entries/ollamaProvider.cjs +2 -0
- package/dist/src/extensions/entries/ollamaProvider.cjs.map +1 -0
- package/dist/src/extensions/entries/ollamaProvider.d.cts +5 -0
- package/dist/src/extensions/entries/ollamaProvider.d.cts.map +1 -0
- package/dist/src/extensions/entries/ollamaProvider.d.mts +6 -0
- package/dist/src/extensions/entries/ollamaProvider.d.mts.map +1 -0
- package/dist/src/extensions/entries/ollamaProvider.mjs +2 -0
- package/dist/src/extensions/entries/ollamaProvider.mjs.map +1 -0
- package/dist/src/extensions/entries/styleSystem.cjs +4 -0
- package/dist/src/extensions/entries/styleSystem.cjs.map +1 -0
- package/dist/src/extensions/entries/styleSystem.d.cts +33 -0
- package/dist/src/extensions/entries/styleSystem.d.cts.map +1 -0
- package/dist/src/extensions/entries/styleSystem.d.mts +33 -0
- package/dist/src/extensions/entries/styleSystem.d.mts.map +1 -0
- package/dist/src/extensions/entries/styleSystem.mjs +4 -0
- package/dist/src/extensions/entries/styleSystem.mjs.map +1 -0
- package/dist/src/extensions/entries/transitionCoordinator.cjs +2 -0
- package/dist/src/extensions/entries/transitionCoordinator.cjs.map +1 -0
- package/dist/src/extensions/entries/transitionCoordinator.d.cts +8 -0
- package/dist/src/extensions/entries/transitionCoordinator.d.cts.map +1 -0
- package/dist/src/extensions/entries/transitionCoordinator.d.mts +8 -0
- package/dist/src/extensions/entries/transitionCoordinator.d.mts.map +1 -0
- package/dist/src/extensions/entries/transitionCoordinator.mjs +2 -0
- package/dist/src/extensions/entries/transitionCoordinator.mjs.map +1 -0
- package/dist/src/services/config/projectTrust.cjs +2 -0
- package/dist/src/services/config/projectTrust.cjs.map +1 -0
- package/dist/src/services/config/projectTrust.d.cts +13 -0
- package/dist/src/services/config/projectTrust.d.cts.map +1 -0
- package/dist/src/services/config/projectTrust.d.mts +13 -0
- package/dist/src/services/config/projectTrust.d.mts.map +1 -0
- package/dist/src/services/config/projectTrust.mjs +2 -0
- package/dist/src/services/config/projectTrust.mjs.map +1 -0
- package/dist/src/services/extensionAssembler.cjs +2 -0
- package/dist/src/services/extensionAssembler.cjs.map +1 -0
- package/dist/src/services/extensionAssembler.d.cts +96 -0
- package/dist/src/services/extensionAssembler.d.cts.map +1 -0
- package/dist/src/services/extensionAssembler.d.mts +96 -0
- package/dist/src/services/extensionAssembler.d.mts.map +1 -0
- package/dist/src/services/extensionAssembler.mjs +2 -0
- package/dist/src/services/extensionAssembler.mjs.map +1 -0
- package/dist/src/services/modeCatalog.cjs +2 -0
- package/dist/src/services/modeCatalog.cjs.map +1 -0
- package/dist/src/services/modeCatalog.d.cts +15 -0
- package/dist/src/services/modeCatalog.d.cts.map +1 -0
- package/dist/src/services/modeCatalog.d.mts +15 -0
- package/dist/src/services/modeCatalog.d.mts.map +1 -0
- package/dist/src/services/modeCatalog.mjs +2 -0
- package/dist/src/services/modeCatalog.mjs.map +1 -0
- package/dist/src/services/tools/toolNames.cjs +2 -0
- package/dist/src/services/tools/toolNames.cjs.map +1 -0
- package/dist/src/services/tools/toolNames.d.cts +25 -0
- package/dist/src/services/tools/toolNames.d.cts.map +1 -0
- package/dist/src/services/tools/toolNames.d.mts +25 -0
- package/dist/src/services/tools/toolNames.d.mts.map +1 -0
- package/dist/src/services/tools/toolNames.mjs +2 -0
- package/dist/src/services/tools/toolNames.mjs.map +1 -0
- package/dist/src/services/transitionClassifier.cjs +2 -0
- package/dist/src/services/transitionClassifier.cjs.map +1 -0
- package/dist/src/services/transitionClassifier.d.cts +8 -0
- package/dist/src/services/transitionClassifier.d.cts.map +1 -0
- package/dist/src/services/transitionClassifier.d.mts +8 -0
- package/dist/src/services/transitionClassifier.d.mts.map +1 -0
- package/dist/src/services/transitionClassifier.mjs +2 -0
- package/dist/src/services/transitionClassifier.mjs.map +1 -0
- package/dist/src/services/transitionCoordinator.cjs +2 -0
- package/dist/src/services/transitionCoordinator.cjs.map +1 -0
- package/dist/src/services/transitionCoordinator.mjs +2 -0
- package/dist/src/services/transitionCoordinator.mjs.map +1 -0
- package/dist/src/types/interfaces/compatibility.d.cts +23 -0
- package/dist/src/types/interfaces/compatibility.d.cts.map +1 -0
- package/dist/src/types/interfaces/compatibility.d.mts +23 -0
- package/dist/src/types/interfaces/compatibility.d.mts.map +1 -0
- package/dist/src/types/interfaces/harness.d.cts +48 -0
- package/dist/src/types/interfaces/harness.d.cts.map +1 -0
- package/dist/src/types/interfaces/harness.d.mts +48 -0
- package/dist/src/types/interfaces/harness.d.mts.map +1 -0
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.cts +6 -0
- package/dist/utils/index.d.mts +6 -0
- package/dist/utils/index.mjs +1 -0
- package/dist/utils/json.cjs +1 -0
- package/dist/utils/json.d.cts +2 -0
- package/dist/utils/json.d.mts +2 -0
- package/dist/utils/json.mjs +1 -0
- package/dist/utils/moduleResolution.cjs +1 -0
- package/dist/utils/moduleResolution.d.cts +2 -0
- package/dist/utils/moduleResolution.d.mts +2 -0
- package/dist/utils/moduleResolution.mjs +1 -0
- package/dist/utils/repository.cjs +1 -0
- package/dist/utils/repository.d.cts +2 -0
- package/dist/utils/repository.d.mts +2 -0
- package/dist/utils/repository.mjs +1 -0
- package/dist/utils/toolNames.cjs +1 -0
- package/dist/utils/toolNames.d.cts +2 -0
- package/dist/utils/toolNames.d.mts +2 -0
- package/dist/utils/toolNames.mjs +1 -0
- package/llms.txt +12 -0
- package/package.json +25 -37
- package/src/prompts/doompi-author-extension/SKILL.md +32 -0
- package/src/prompts/doompi-author-extension/references/extension-contract.md +180 -0
- package/docs/architecture.md +0 -162
package/README.md
CHANGED
|
@@ -6,23 +6,32 @@
|
|
|
6
6
|
> wakes up with database tools, browser controls, and their small novel of schemas. This
|
|
7
7
|
> is our config.
|
|
8
8
|
|
|
9
|
-
DoomPi is an opinionated, composable distribution of
|
|
10
|
-
in spirit to Spacemacs, Doom Emacs, or a
|
|
11
|
-
for people whose agent has one MCP
|
|
12
|
-
MCP servers, and system prompts into config instead
|
|
9
|
+
DoomPi is an opinionated, composable distribution of
|
|
10
|
+
[Pi](https://github.com/earendil-works/pi). It is closer in spirit to Spacemacs, Doom Emacs, or a
|
|
11
|
+
curated Neovim setup than to a single plugin. It is tailored for people whose agent has one MCP
|
|
12
|
+
server too many. It turns extensions, skills, MCP servers, and system prompts into config instead
|
|
13
|
+
of background noise.
|
|
13
14
|
|
|
14
15
|

|
|
15
16
|
|
|
16
|
-
Plugin systems scope what an agent knows.
|
|
17
|
-
|
|
18
|
-
boundary around the session. Pick a major
|
|
19
|
-
one. Four YAML files decide what loads;
|
|
20
|
-
what it costs before launch.
|
|
17
|
+
Plugin systems scope what an agent knows. They do less to scope which configured plugins and MCP
|
|
18
|
+
servers a particular session can load. Claude Code's `enableAllProjectMcpServers` and static
|
|
19
|
+
denylist are repository-wide. DoomPi draws that loading boundary around the session. Pick a major
|
|
20
|
+
mode and some domains; add a profile if you want one. Four YAML files decide what loads;
|
|
21
|
+
`doompi --explain` tells you what got in, why, and what it costs before launch.
|
|
21
22
|
|
|
22
23
|
It borrows its shape from [Doom Emacs Core](https://github.com/doomemacs/core): quick to
|
|
23
24
|
start, close to Pi, opinionated where defaults help, and easy to pull apart when they do
|
|
24
25
|
not. Use it as-is, build your own config on top, or raid it for parts.
|
|
25
26
|
|
|
27
|
+
## Contents
|
|
28
|
+
|
|
29
|
+
[Install](#install) · [Try DoomPi](#try-doompi-without-replacing-your-pi-setup) ·
|
|
30
|
+
[Philosophy](#philosophy) · [What this buys you](#what-this-buys-you) · [Features](#features) ·
|
|
31
|
+
[Configuration](#configuration) · [Trust and data boundaries](#trust-and-data-boundaries) ·
|
|
32
|
+
[CLI reference](#cli-reference) · [Troubleshooting](#troubleshooting-and-direct-use) ·
|
|
33
|
+
[Architecture](#architecture) · [Development](#development)
|
|
34
|
+
|
|
26
35
|
## Install
|
|
27
36
|
|
|
28
37
|
```bash
|
|
@@ -31,9 +40,13 @@ npm install -g @agimon-ai/doompi
|
|
|
31
40
|
|
|
32
41
|
The package pins and installs the upstream Pi version used by `dpi`.
|
|
33
42
|
|
|
43
|
+
The root package contains the fixed host foundation only. Feature packages are selected by
|
|
44
|
+
`.doom/modes.yaml` and installed into the consumer repository when they are first needed.
|
|
45
|
+
|
|
34
46
|
## Status and requirements
|
|
35
47
|
|
|
36
|
-
DoomPi is alpha software. Configuration and package boundaries may still change between alpha
|
|
48
|
+
DoomPi is alpha software. Configuration and package boundaries may still change between alpha
|
|
49
|
+
releases.
|
|
37
50
|
|
|
38
51
|
- Node.js 22.19.0 or newer
|
|
39
52
|
- macOS or Linux on arm64 or x64 for the bundled Runner backend
|
|
@@ -55,8 +68,10 @@ pi # run your existing Pi setup for comp
|
|
|
55
68
|
`.doom/profiles.yaml` in the current repository. It preserves existing files unless you pass
|
|
56
69
|
`--force` and does not create or change `.pi/settings.json`.
|
|
57
70
|
|
|
58
|
-
`dpi sync` writes DoomPi's generated state,
|
|
59
|
-
not register DoomPi in either normal Pi
|
|
71
|
+
`dpi sync` installs missing configured feature packages, writes DoomPi's generated state,
|
|
72
|
+
package alias, and theme resource, but it does not register DoomPi in either normal Pi
|
|
73
|
+
settings file. It prepares every declared layer so switching modes does not depend on the
|
|
74
|
+
root package's dependency closure.
|
|
60
75
|
|
|
61
76
|
### Sync storage and worktrees
|
|
62
77
|
|
|
@@ -78,12 +93,12 @@ doompi sync # register DoomPi in normal Pi sett
|
|
|
78
93
|
pi # DoomPi now starts through the regular Pi command
|
|
79
94
|
```
|
|
80
95
|
|
|
81
|
-
`doompi` remains available as an explicit harness when you want
|
|
96
|
+
`doompi` remains available as an explicit harness when you want per-run matrix flags:
|
|
82
97
|
|
|
83
98
|
```bash
|
|
84
|
-
doompi --major-mode
|
|
85
|
-
doompi --
|
|
86
|
-
doompi --
|
|
99
|
+
doompi --major-mode copilot --no-domains
|
|
100
|
+
doompi --major-mode minimal --no-domains
|
|
101
|
+
doompi --major-mode copilot --no-domains --explain
|
|
87
102
|
```
|
|
88
103
|
|
|
89
104
|
## Philosophy
|
|
@@ -98,7 +113,7 @@ A major mode is the base config. It names the extension layers for development,
|
|
|
98
113
|
or whatever else you do. Define as many as you like; only one is active at a time, and you
|
|
99
114
|
can switch it without leaving the session.
|
|
100
115
|
|
|
101
|
-
Minor modes are
|
|
116
|
+
Minor modes are batteries-included switches inside that base. They start off, stack freely,
|
|
102
117
|
and keep their model tools and skills out of context until turned on. DoomPi ships six:
|
|
103
118
|
|
|
104
119
|
- **Help mode:** expose package-owned guidance only while you need it.
|
|
@@ -110,10 +125,10 @@ and keep their model tools and skills out of context until turned on. DoomPi shi
|
|
|
110
125
|
|
|
111
126
|
### Domains
|
|
112
127
|
|
|
113
|
-
A domain is a named group of
|
|
128
|
+
A domain is a named group of agent plugins. It carries the skills and MCP servers for one
|
|
114
129
|
kind of work, and `/domains` switches it while the session is running.
|
|
115
130
|
|
|
116
|
-
Plugins are
|
|
131
|
+
Plugins are cataloged once and domains refer to their names. A configured root may be a
|
|
117
132
|
Codex-compatible marketplace or a folder whose direct children are plugins, so a repository
|
|
118
133
|
with many plugins does not need one entry per directory:
|
|
119
134
|
|
|
@@ -194,8 +209,8 @@ Together they can dispatch structured jobs from one live session.
|
|
|
194
209
|
#### Workflows
|
|
195
210
|
|
|
196
211
|
GitHub Actions already has a decent vocabulary for long jobs, so DoomPi reuses it. Each job
|
|
197
|
-
declares the DoomPi session it wants. Here, implementation gets
|
|
198
|
-
|
|
212
|
+
declares the DoomPi session it wants. Here, implementation gets development tools; an
|
|
213
|
+
article waits for it and gets focused blog-writing context:
|
|
199
214
|
|
|
200
215
|
```yaml
|
|
201
216
|
on:
|
|
@@ -209,22 +224,77 @@ jobs:
|
|
|
209
224
|
timeout-minutes: 180
|
|
210
225
|
interactiveRun:
|
|
211
226
|
default: |
|
|
212
|
-
doompi --major-mode
|
|
227
|
+
doompi --major-mode examples --domains development --auto-stop \
|
|
213
228
|
--cwd "$PWD" "$JOB_SYSTEM_PROMPT"
|
|
214
229
|
|
|
215
|
-
|
|
230
|
+
article:
|
|
216
231
|
runs-on: ubuntu-latest
|
|
217
232
|
needs: implement
|
|
218
233
|
steps:
|
|
219
|
-
- name: Write the
|
|
234
|
+
- name: Write the article
|
|
220
235
|
timeout-minutes: 30
|
|
221
236
|
interactiveRun:
|
|
222
237
|
default: |
|
|
223
|
-
doompi --major-mode
|
|
224
|
-
--profile brand-voice --auto-stop \
|
|
238
|
+
doompi --major-mode examples --domains blog --auto-stop \
|
|
225
239
|
--cwd "$PWD" "$JOB_SYSTEM_PROMPT"
|
|
226
240
|
```
|
|
227
241
|
|
|
242
|
+
#### Native plugin and workflow examples
|
|
243
|
+
|
|
244
|
+
This source repository includes a complete, deliberately small example stack:
|
|
245
|
+
|
|
246
|
+
```text
|
|
247
|
+
plugins/
|
|
248
|
+
development/ implementation skill and developer agent
|
|
249
|
+
testing/ testing and review skills, tester and reviewer agents
|
|
250
|
+
blog-writing/ research, outline, drafting, and editorial skills and agents
|
|
251
|
+
automations/workflows/
|
|
252
|
+
dev-feature.workflow.yml
|
|
253
|
+
dev-fix.workflow.yml
|
|
254
|
+
blog-writing.workflow.yml
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Each plugin has both `.codex-plugin/plugin.json` and `.claude-plugin/plugin.json`, while its
|
|
258
|
+
`skills/` and `agents/` content is shared. `.doom/domains.yaml` exposes the `development`,
|
|
259
|
+
`testing`, and `blog` domains plus the `engineering` alias. `.doom/modes.yaml` mirrors the
|
|
260
|
+
standalone package set with workspace-local paths, keeps its canonical modes, and adds a layer-free
|
|
261
|
+
`examples` base mode for the tracked workflows. Inspect the exact session before launch:
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
doompi --major-mode examples --domains engineering --explain
|
|
265
|
+
doompi --major-mode examples --domains blog --explain
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
The same bundles can be installed directly through either native marketplace:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# Codex
|
|
272
|
+
codex plugin marketplace add .
|
|
273
|
+
codex plugin add development@doompi-examples
|
|
274
|
+
|
|
275
|
+
# Claude Code
|
|
276
|
+
claude plugin marketplace add ./ --scope user
|
|
277
|
+
claude plugin install development@doompi-examples --scope user
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Substitute `testing` or `blog-writing` to install another bundle. No DoomPi-specific plugin
|
|
281
|
+
schema is involved.
|
|
282
|
+
|
|
283
|
+
List and dry-run the tracked workflows before spending a model call:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
pnpm exec workflow-mcp list-workflows automations/workflows
|
|
287
|
+
pnpm exec workflow-mcp run-workflow automations/workflows/dev-feature.workflow.yml \
|
|
288
|
+
--dry-run --skip-launch --prompt "Add a health check"
|
|
289
|
+
pnpm exec workflow-mcp run-workflow automations/workflows/blog-writing.workflow.yml \
|
|
290
|
+
--dry-run --skip-launch --prompt "Write a practical guide to scoped agent tooling"
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Real runs delegate to tmux by default and accept `WORKFLOW_LAUNCHER=cmux`. Development runs do
|
|
294
|
+
not create branches, commits, or pushes. Blog runs leave review-ready Markdown, sources, and a
|
|
295
|
+
publication checklist in the workflow run directory without writing into a site or calling a CMS.
|
|
296
|
+
These examples live in the source repository and are not part of the published npm tarball.
|
|
297
|
+
|
|
228
298
|
#### Loop
|
|
229
299
|
|
|
230
300
|
Workflow definitions are exposed like skills, so the agent can choose one for the job. A
|
|
@@ -233,24 +303,32 @@ it. One session becomes the dispatcher instead of the place every job has to fit
|
|
|
233
303
|
|
|
234
304
|
## Features
|
|
235
305
|
|
|
236
|
-
DoomPi is a distribution, not one giant extension. Each package owns one job; shared TUI
|
|
237
|
-
and session contracts make them behave like one. Use the
|
|
238
|
-
|
|
306
|
+
DoomPi is a distribution, not one giant extension. Each package owns one job; shared TUI,
|
|
307
|
+
Cordis services, and session contracts make them behave like one. Use the generated
|
|
308
|
+
`default.packages` list together, remove packages you do not want, or replace its entries one
|
|
309
|
+
at a time. Selectable packages are not runtime dependencies of the root package or of one another.
|
|
239
310
|
|
|
240
311
|
### Foundation and interface
|
|
241
312
|
|
|
242
313
|
#### Configuration and composition
|
|
243
314
|
|
|
244
|
-
[`@agimon-ai/doompi`][pkg-doompi] is both an extension and the command-line config compiler.
|
|
245
|
-
creates repository config for an isolated experiment, while `doompi init` creates the
|
|
246
|
-
config and registers the permanent Pi integration. The sync commands resolve every major
|
|
315
|
+
[`@agimon-ai/doompi`][pkg-doompi] is both an extension and the command-line config compiler.
|
|
316
|
+
`dpi init` creates repository config for an isolated experiment, while `doompi init` creates the
|
|
317
|
+
personal config and registers the permanent Pi integration. The sync commands resolve every major
|
|
318
|
+
mode and domain into a distribution Pi can load quickly.
|
|
247
319
|
|
|
248
320
|
#### Supporting packages
|
|
249
321
|
|
|
250
322
|
[`@agimon-ai/doompi-config`][pkg-doompi-config] resolves the four YAML files and exposes the
|
|
251
323
|
configuration API. [`@agimon-ai/doompi-domain`][pkg-doompi-domain] owns domain selection, plugin
|
|
252
|
-
materialization, resource staging, and MCP scoping.
|
|
253
|
-
contains the shared
|
|
324
|
+
materialization, resource staging, and MCP scoping.
|
|
325
|
+
[`@agimon-ai/doompi-extension-contracts`][pkg-doompi-extension-contracts] contains the shared
|
|
326
|
+
Cordis service and event contracts used by extension authors.
|
|
327
|
+
[`@agimon-ai/doompi-hashline`][pkg-doompi-hashline] provides the shared snapshot tags and line-anchor
|
|
328
|
+
protocol. [`@agimon-ai/doompi-read`][pkg-doompi-read] and [`@agimon-ai/doompi-grep`][pkg-doompi-grep]
|
|
329
|
+
produce editable anchors for writable files while preserving Pi's native output for non-writable files.
|
|
330
|
+
[`@agimon-ai/doompi-edit`][pkg-doompi-edit] replaces Pi's search-and-replace `edit` tool with
|
|
331
|
+
stale-safe ranges anchored to the file content the model read or searched.
|
|
254
332
|
[`@agimon-ai/doompi-file-edit`][pkg-doompi-file-edit] opens files in the configured editor and
|
|
255
333
|
keeps the edit timeline. [`@agimon-ai/doompi-log`][pkg-doompi-log] collects session events, while
|
|
256
334
|
[`@agimon-ai/doompi-telemetry`][pkg-doompi-telemetry] is the library-level telemetry adapter.
|
|
@@ -285,12 +363,14 @@ should not expose the task tool.
|
|
|
285
363
|
#### Runner
|
|
286
364
|
|
|
287
365
|
[`@agimon-ai/doompi-runner`][pkg-doompi-runner] replaces Pi's blocking `bash` tool with
|
|
288
|
-
supervised command execution
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
`
|
|
292
|
-
|
|
293
|
-
|
|
366
|
+
supervised command execution. `doompi init` includes Runner in `default.packages`, so every
|
|
367
|
+
generated mode gets it. Short commands still return inline; commands that pass the configurable
|
|
368
|
+
threshold of 60 seconds by default move into the background with durable logs. Use
|
|
369
|
+
`background: true` for an immediate detached run or `interactive: true` when the command needs
|
|
370
|
+
terminal input. Runner IDs and durable logs remain available to the current session through
|
|
371
|
+
Runner Space at `SPC r r` or the `doom-runner` CLI. Platform-specific RMUX binaries are selected
|
|
372
|
+
automatically, with a fallback when RMUX is unavailable. Remove Runner from `default.packages`
|
|
373
|
+
to keep Pi's `bash`, or add it to a named layer when only selected modes should replace `bash`.
|
|
294
374
|
|
|
295
375
|
#### Auto-compact
|
|
296
376
|
|
|
@@ -310,26 +390,29 @@ being embedded as special snapshots in the compact summary.
|
|
|
310
390
|
|
|
311
391
|
#### Help mode
|
|
312
392
|
|
|
313
|
-
[`@agimon-ai/doompi-help`][pkg-doompi-help] keeps package guidance out of the default prompt. A
|
|
314
|
-
session performs no Help retrieval and exposes no Help skills. Use `SPC h e`, or the
|
|
315
|
-
`minor_mode` client in headless sessions, to activate the package indexes; use the same
|
|
316
|
-
to deactivate them before the next interaction.
|
|
317
|
-
`doompi-
|
|
318
|
-
|
|
393
|
+
[`@agimon-ai/doompi-help`][pkg-doompi-help] keeps package guidance out of the default prompt. A
|
|
394
|
+
fresh parent session performs no Help retrieval and exposes no Help skills. Use `SPC h e`, or the
|
|
395
|
+
existing `minor_mode` client in headless sessions, to activate the package indexes; use the same
|
|
396
|
+
action to deactivate them before the next interaction. Help names state their intent: authoring
|
|
397
|
+
guides use `doompi-author-*`, while operational guides use `doompi-use-*`. Core authoring guidance
|
|
398
|
+
covers extensions, runtime config, major modes, domains, profiles, hooks, workflows, and skills.
|
|
399
|
+
Parent and detached-child sessions both include the Help runtime, while root and axis authoring
|
|
400
|
+
guides remain parent-owned and all guidance stays withdrawn until Help mode is activated.
|
|
319
401
|
|
|
320
402
|
#### MCP
|
|
321
403
|
|
|
322
|
-
[`@agimon-ai/doompi-mcp`][pkg-doompi-mcp] is the gate between a session and its servers. It reads
|
|
323
|
-
and legacy plugin `.mcp.json` plus Agent Plugins v1 `mcp.json`, then exposes only the
|
|
324
|
-
proxy upstreams allowed by the selected domains. A domain switch persists an immutable
|
|
325
|
-
after Pi replaces the factories, Config publishes it through the session Cordis
|
|
326
|
-
starts a fresh in-memory `mcp-proxy` container. No Hono server or localhost proxy
|
|
404
|
+
[`@agimon-ai/doompi-mcp`][pkg-doompi-mcp] is the gate between a session and its servers. It reads
|
|
405
|
+
repository and legacy plugin `.mcp.json` plus Agent Plugins v1 `mcp.json`, then exposes only the
|
|
406
|
+
servers and proxy upstreams allowed by the selected domains. A domain switch persists an immutable
|
|
407
|
+
projection; after Pi replaces the factories, Config publishes it through the session Cordis
|
|
408
|
+
registry and MCP starts a fresh in-memory `mcp-proxy` container. No Hono server or localhost proxy
|
|
409
|
+
sits in this path.
|
|
327
410
|
|
|
328
411
|
#### Ask user question
|
|
329
412
|
|
|
330
|
-
[`@agimon-ai/doompi-user-feedback`][pkg-doompi-user-feedback] gives the agent a structured question
|
|
331
|
-
waits for an answer. In autonomous Voice mode it skips the modal, narrates the
|
|
332
|
-
and accepts the next spoken response as an ordinary user message.
|
|
413
|
+
[`@agimon-ai/doompi-user-feedback`][pkg-doompi-user-feedback] gives the agent a structured question
|
|
414
|
+
that actually waits for an answer. In autonomous Voice mode it skips the modal, narrates the
|
|
415
|
+
choices, and accepts the next spoken response as an ordinary user message.
|
|
333
416
|
|
|
334
417
|
#### Logging and telemetry
|
|
335
418
|
|
|
@@ -344,39 +427,39 @@ configured.
|
|
|
344
427
|
|
|
345
428
|
A promise to "only plan" is not a permission boundary. [`@agimon-ai/doompi-plan`][pkg-doompi-plan]
|
|
346
429
|
removes Pi's `edit` and `write` tools while the agent explores, persists the plan, and hands it back
|
|
347
|
-
for approval. It does not sandbox Bash, external tools, or the operating system. Use `SPC p p` for
|
|
348
|
-
the Fable flow, and `SPC p e` to exit.
|
|
349
|
-
before the files move.
|
|
430
|
+
for approval. It does not sandbox Bash, external tools, or the operating system. Use `SPC p p` for
|
|
431
|
+
normal planning, `SPC p d` for debug planning, `SPC p f` for the Fable flow, and `SPC p e` to exit.
|
|
432
|
+
Turn it on when the approach should be settled before the files move.
|
|
350
433
|
|
|
351
434
|
#### Loop mode
|
|
352
435
|
|
|
353
|
-
[`@agimon-ai/doompi-loop`][pkg-doompi-loop] is an in-session scheduler. It runs a prompt immediately
|
|
354
|
-
repeats it on an interval; several loops can coexist. Use `SPC l s` to start one and
|
|
355
|
-
`SPC l l` to list or stop them. It is for recurring checks and prompts that belong to the
|
|
356
|
-
|
|
436
|
+
[`@agimon-ai/doompi-loop`][pkg-doompi-loop] is an in-session scheduler. It runs a prompt immediately
|
|
437
|
+
and then repeats it on an interval; several loops can coexist. Use `SPC l s` to start one and
|
|
438
|
+
`SPC l l` to list or stop them. It is for recurring checks and prompts that belong to the current
|
|
439
|
+
session.
|
|
357
440
|
|
|
358
441
|
#### Goal mode
|
|
359
442
|
|
|
360
|
-
[`@agimon-ai/doompi-goal`][pkg-doompi-goal] pins one objective to the session until it completes or
|
|
361
|
-
it. Use `SPC g g` for status, `SPC g s` to start, `SPC g e` to end, and `SPC g p` for
|
|
362
|
-
history. Finished goals
|
|
363
|
-
want to restart one.
|
|
443
|
+
[`@agimon-ai/doompi-goal`][pkg-doompi-goal] pins one objective to the session until it completes or
|
|
444
|
+
you end it. Use `SPC g g` for status, `SPC g s` to start, `SPC g e` to end, and `SPC g p` for
|
|
445
|
+
history. Finished goals stop contributing active instructions and tools but remain in history when
|
|
446
|
+
you want to restart one.
|
|
364
447
|
|
|
365
448
|
#### Workflow mode
|
|
366
449
|
|
|
367
|
-
[`@agimon-ai/doompi-workflow`][pkg-doompi-workflow] runs GitHub Actions-style job graphs with
|
|
368
|
-
timeouts, artifacts, and a separate DoomPi session for each step. Use `SPC w w` to
|
|
369
|
-
`SPC w l` to manage, `SPC w r` to recover a failed run, and `SPC w e` to give the agent
|
|
370
|
-
workflow tools or take them back. It is for work that needs hard job boundaries and
|
|
371
|
-
|
|
450
|
+
[`@agimon-ai/doompi-workflow`][pkg-doompi-workflow] runs GitHub Actions-style job graphs with
|
|
451
|
+
dependencies, timeouts, artifacts, and a separate DoomPi session for each step. Use `SPC w w` to
|
|
452
|
+
launch, `SPC w l` to manage, `SPC w r` to recover a failed run, and `SPC w e` to give the agent
|
|
453
|
+
workflow tools or take them back. It is for work that needs hard job boundaries and explicit
|
|
454
|
+
handoffs rather than one long conversation.
|
|
372
455
|
|
|
373
456
|
#### Voice mode
|
|
374
457
|
|
|
375
|
-
[`@agimon-ai/doompi-voice`][pkg-doompi-voice] captures PCM audio through the local platform helper
|
|
376
|
-
can transcribe it locally. Transcript text, session state, and model requests may still cross
|
|
377
|
-
or provider boundaries according to the configured engines. `SPC v v` is one-shot manual
|
|
378
|
-
toggles autonomous capture; only its exact-active
|
|
379
|
-
façades plus the standalone `narrate` tool.
|
|
458
|
+
[`@agimon-ai/doompi-voice`][pkg-doompi-voice] captures PCM audio through the local platform helper
|
|
459
|
+
and can transcribe it locally. Transcript text, session state, and model requests may still cross
|
|
460
|
+
process or provider boundaries according to the configured engines. `SPC v v` is one-shot manual
|
|
461
|
+
dictation and never enables Voice tools. `SPC v a` toggles autonomous capture; only its exact-active
|
|
462
|
+
TUI session receives the two Voice façades plus the standalone `narrate` tool.
|
|
380
463
|
|
|
381
464
|
While `narrate` is available, the primary agent calls it before every user-facing final
|
|
382
465
|
response. One concise spoken answer is enough for a short conversation or clarification;
|
|
@@ -398,7 +481,7 @@ available, and the same model continues to provide bounded command correction.
|
|
|
398
481
|
DoomPi reads four configuration files:
|
|
399
482
|
|
|
400
483
|
- `config.yaml` defines runtime settings such as trust, editor, planning, and voice behavior.
|
|
401
|
-
- `modes.yaml` defines extension layers and major modes.
|
|
484
|
+
- `modes.yaml` defines default packages, extension layers, and major modes.
|
|
402
485
|
- `domains.yaml` catalogs plugins and sets session access.
|
|
403
486
|
- `profiles.yaml` supplies persona files and environment defaults.
|
|
404
487
|
|
|
@@ -411,13 +494,41 @@ from `~/.pi/.doom/`; relative paths in repository config resolve from the reposi
|
|
|
411
494
|
### `modes.yaml`: choose behavior
|
|
412
495
|
|
|
413
496
|
A layer is an ordered bundle of extension packages and hook groups. A major mode names the
|
|
414
|
-
layers that should run together. The
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
497
|
+
layers that should run together. The top-level `default.packages` list is the ordered package
|
|
498
|
+
baseline for every major mode. `doompi init` and `dpi init` write the distribution's current
|
|
499
|
+
feature packages there so the baseline is visible and replaceable. If `default` is absent,
|
|
500
|
+
DoomPi adds no default feature packages. Use `default.packages: []` for an explicit empty
|
|
501
|
+
baseline. The fixed host core remains active independently of this setting, and named layers
|
|
502
|
+
keep their existing behavior.
|
|
503
|
+
|
|
504
|
+
Launch installs missing required packages from the defaults and selected layers. `doompi sync`
|
|
505
|
+
installs missing required packages from the defaults and every declared layer, then builds the
|
|
506
|
+
synchronized matrix. `doompi sync --check` reports missing packages without modifying the
|
|
507
|
+
repository. Optional packages and local paths are not installed automatically. Removing an
|
|
508
|
+
entry stops activating it but leaves Pi's package cache available for later reuse.
|
|
509
|
+
|
|
510
|
+
Packages in `default` and named layers may be bare strings, or mappings when the package accepts
|
|
511
|
+
configuration:
|
|
419
512
|
|
|
420
513
|
```yaml
|
|
514
|
+
default:
|
|
515
|
+
packages:
|
|
516
|
+
- '@agimon-ai/doompi-help'
|
|
517
|
+
- '@agimon-ai/doompi-hook'
|
|
518
|
+
- '@agimon-ai/doompi-goal'
|
|
519
|
+
- '@agimon-ai/doompi-voice'
|
|
520
|
+
- '@agimon-ai/doompi-runner'
|
|
521
|
+
- '@agimon-ai/doompi-read'
|
|
522
|
+
- '@agimon-ai/doompi-grep'
|
|
523
|
+
- '@agimon-ai/doompi-edit'
|
|
524
|
+
- '@agimon-ai/doompi-file-edit'
|
|
525
|
+
- '@agimon-ai/doompi-autocompact'
|
|
526
|
+
- '@agimon-ai/doompi-loop'
|
|
527
|
+
- '@agimon-ai/doompi-plan'
|
|
528
|
+
- '@agimon-ai/doompi-workflow'
|
|
529
|
+
- '@agimon-ai/doompi-log'
|
|
530
|
+
- '@agimon-ai/doompi-mcp'
|
|
531
|
+
|
|
421
532
|
layers:
|
|
422
533
|
team:
|
|
423
534
|
packages:
|
|
@@ -440,17 +551,23 @@ majorMode:
|
|
|
440
551
|
layers: [team, review]
|
|
441
552
|
```
|
|
442
553
|
|
|
443
|
-
Order matters: DoomPi assembles
|
|
444
|
-
under the package that consumes them; a layer is
|
|
445
|
-
configuration. Home and repository `layers` and
|
|
446
|
-
repository definition winning a collision.
|
|
554
|
+
Order matters: DoomPi assembles `default.packages` first, then the selected layers and their
|
|
555
|
+
packages from left to right. Put settings under the package that consumes them; a layer is
|
|
556
|
+
composition, not a mystery bag of shared configuration. Home and repository `layers` and
|
|
557
|
+
`majorMode` records merge by name, with the repository definition winning a collision. If both
|
|
558
|
+
sources declare `default`, the repository block replaces the personal block as one whole package
|
|
559
|
+
list.
|
|
560
|
+
|
|
561
|
+
Configurations created before the hashline tools were split may contain only `doompi-edit`.
|
|
562
|
+
Replace that entry with the ordered `doompi-read`, `doompi-grep`, and `doompi-edit` trio. Init
|
|
563
|
+
preserves existing configuration unless it is run with `--force`.
|
|
447
564
|
|
|
448
565
|
Choose a mode with `--major-mode copilot`, switch it with `/mode`, or change
|
|
449
566
|
`defaultMajorMode` when one mode should be the ordinary starting point.
|
|
450
567
|
|
|
451
568
|
### `domains.yaml`: choose content and access
|
|
452
569
|
|
|
453
|
-
Plugins are
|
|
570
|
+
Plugins are cataloged once, then domains refer to their names. A root can be a marketplace,
|
|
454
571
|
a single plugin, or a container whose direct-child folders are plugins. Discovery is
|
|
455
572
|
intentionally nonrecursive: a tool buried five directories down should not load by accident.
|
|
456
573
|
|
|
@@ -575,26 +692,34 @@ its owning package's controls; values supplied by callers are not automatically
|
|
|
575
692
|
|
|
576
693
|
## Troubleshooting and direct use
|
|
577
694
|
|
|
578
|
-
- Run `doompi sync --check` to detect drift and `doompi sync`
|
|
695
|
+
- Run `doompi sync --check` to detect drift or missing configured packages, and `doompi sync`
|
|
696
|
+
to install them and rebuild synchronized state.
|
|
579
697
|
- If RMUX is unavailable on a supported target, Runner reports the fallback it uses. Linux native
|
|
580
698
|
artifacts require a compatible loader and libc environment.
|
|
581
699
|
- Leader menus and overlays require Pi's interactive TUI. Commands and tools remain the interface
|
|
582
700
|
for JSON, RPC, and other headless sessions where the owning package supports them.
|
|
583
701
|
- Install a directly loaded Pi subsystem with `pi install npm:@agimon-ai/<package>`. Library consumers
|
|
584
702
|
use `npm install`; native RMUX artifacts are selected by Runner and should not be installed directly.
|
|
585
|
-
The
|
|
703
|
+
The root `doom-runner` command delegates to Runner from the active repository and asks you to add
|
|
704
|
+
Runner to `modes.yaml` when it is absent. The distribution remains the supported way to get the
|
|
705
|
+
coordinated defaults.
|
|
586
706
|
|
|
587
707
|
## Architecture
|
|
588
708
|
|
|
589
|
-
See [Architecture](docs/architecture.md) for standard Pi
|
|
709
|
+
See [Architecture](https://github.com/AgiFlow/doompi/blob/main/docs/architecture.md) for standard Pi
|
|
710
|
+
package composition, canonical fingerprints, transition classification, synchronized bundles,
|
|
711
|
+
shared-host Cordis lifecycle ownership, and parent/child isolation.
|
|
590
712
|
|
|
591
713
|
## Development
|
|
592
714
|
|
|
593
715
|
```bash
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
nx
|
|
716
|
+
pnpm install
|
|
717
|
+
pnpm build
|
|
718
|
+
pnpm examples:check
|
|
719
|
+
pnpm nx build @agimon-ai/doompi
|
|
720
|
+
pnpm nx test @agimon-ai/doompi
|
|
721
|
+
pnpm nx typecheck @agimon-ai/doompi
|
|
722
|
+
pnpm nx lint @agimon-ai/doompi
|
|
598
723
|
```
|
|
599
724
|
|
|
600
725
|
DoomPi is maintained by [Agimon](https://agimon.ai/about).
|
|
@@ -603,9 +728,10 @@ DoomPi is maintained by [Agimon](https://agimon.ai/about).
|
|
|
603
728
|
|
|
604
729
|
MIT
|
|
605
730
|
|
|
606
|
-
##
|
|
731
|
+
## Maintainer release order
|
|
607
732
|
|
|
608
|
-
Publish [`@agimon-ai/doompi-extension-contracts`][pkg-doompi-extension-contracts]
|
|
733
|
+
Publish [`@agimon-ai/doompi-extension-contracts`][pkg-doompi-extension-contracts] and
|
|
734
|
+
[`@agimon-ai/doompi-hashline`][pkg-doompi-hashline] first, then
|
|
609
735
|
[`@agimon-ai/doompi-help`][pkg-doompi-help], and only then the
|
|
610
736
|
[`@agimon-ai/doompi`][pkg-doompi] runtime that consumes them. Generated changelogs remain owned
|
|
611
737
|
by the release tooling.
|
|
@@ -618,6 +744,10 @@ loaded extension graph inside the same release boundary as the packages that con
|
|
|
618
744
|
[pkg-doompi-ui]: https://www.npmjs.com/package/@agimon-ai/doompi-ui
|
|
619
745
|
[pkg-doompi-config]: https://www.npmjs.com/package/@agimon-ai/doompi-config
|
|
620
746
|
[pkg-doompi-domain]: https://www.npmjs.com/package/@agimon-ai/doompi-domain
|
|
747
|
+
[pkg-doompi-hashline]: https://www.npmjs.com/package/@agimon-ai/doompi-hashline
|
|
748
|
+
[pkg-doompi-read]: https://www.npmjs.com/package/@agimon-ai/doompi-read
|
|
749
|
+
[pkg-doompi-grep]: https://www.npmjs.com/package/@agimon-ai/doompi-grep
|
|
750
|
+
[pkg-doompi-edit]: https://www.npmjs.com/package/@agimon-ai/doompi-edit
|
|
621
751
|
[pkg-doompi-file-edit]: https://www.npmjs.com/package/@agimon-ai/doompi-file-edit
|
|
622
752
|
[pkg-doompi-log]: https://www.npmjs.com/package/@agimon-ai/doompi-log
|
|
623
753
|
[pkg-doompi-telemetry]: https://www.npmjs.com/package/@agimon-ai/doompi-telemetry
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));exports.__toESM=s;
|
package/dist/bin/cli.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const e=require("../src/commands/cli/help.cjs"),t=process.argv.slice(2),n=t[0],r=n===`init`||n===`sync`||n===`compat`,i=!r&&t.some(e=>e===`--help`||e===`-h`)?(e.printHelp(),0):!r&&t.some(e=>e===`--version`||e===`-v`)?(process.stdout.write(`${e.HARNESS_VERSION}\n`),0):void 0;(i===void 0?Promise.resolve().then(()=>require("../src/commands/cli/cliApp.cjs")).then(({runCli:e})=>e(t)):Promise.resolve(i)).then(e=>{process.exitCode=e},e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[doompi] ${t}\n`),process.exitCode=1});
|
|
3
|
+
//# sourceMappingURL=cli.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.cjs","names":["HARNESS_VERSION"],"sources":["../../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * CLI Entry Point for doom-pi\n *\n * The executable installed as the `doom-pi` binary, and the file the repository\n * launchers (pi.sh, claude.sh, codex.sh) invoke directly from source.\n */\n\nimport { HARNESS_VERSION, printHelp } from '../commands/cli/help.ts';\n\nconst args = process.argv.slice(2);\nconst command = args[0];\nconst ownsArguments = command === 'init' || command === 'sync' || command === 'compat';\n\n// Keep informational startup independent from telemetry, configuration, Pi,\n// and the extension compiler. Those graphs are useful for a real command but\n// used to account for almost all of `doompi --help` and `doompi --version`.\nconst informationalExit =\n !ownsArguments && args.some((argument) => argument === '--help' || argument === '-h')\n ? (() => {\n printHelp();\n return 0;\n })()\n : !ownsArguments && args.some((argument) => argument === '--version' || argument === '-v')\n ? (() => {\n process.stdout.write(`${HARNESS_VERSION}\\n`);\n return 0;\n })()\n : undefined;\n\nconst run =\n informationalExit === undefined\n ? import('../commands/cli/cliApp.ts').then(({ runCli }) => runCli(args))\n : Promise.resolve(informationalExit);\n\nrun.then(\n (exitCode) => {\n process.exitCode = exitCode;\n },\n (error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`[doompi] ${message}\\n`);\n process.exitCode = 1;\n },\n);\n"],"mappings":";gDAWM,EAAO,QAAQ,KAAK,MAAM,CAAC,EAC3B,EAAU,EAAK,GACf,EAAgB,IAAY,QAAU,IAAY,QAAU,IAAY,SAKxE,EACJ,CAAC,GAAiB,EAAK,KAAM,GAAa,IAAa,UAAY,IAAa,IAAI,GAE9E,EAAA,UAAU,EACH,GAET,CAAC,GAAiB,EAAK,KAAM,GAAa,IAAa,aAAe,IAAa,IAAI,GAEnF,QAAQ,OAAO,MAAM,GAAGA,EAAAA,gBAAgB,GAAG,EACpC,GAET,IAAA,IAGN,IAAsB,IAAA,GAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAClB,gCAAA,CAAA,CAAA,CAAoC,MAAM,CAAE,YAAa,EAAO,CAAI,CAAC,EACrE,QAAQ,QAAQ,CAAiB,EAAA,CAEnC,KACD,GAAa,CACZ,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACrE,QAAQ,OAAO,MAAM,YAAY,EAAQ,GAAG,EAC5C,QAAQ,SAAW,CACrB,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
package/dist/bin/cli.mjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{HARNESS_VERSION as e,printHelp as t}from"../src/commands/cli/help.mjs";const n=process.argv.slice(2),r=n[0],i=r===`init`||r===`sync`||r===`compat`,a=!i&&n.some(e=>e===`--help`||e===`-h`)?(t(),0):!i&&n.some(e=>e===`--version`||e===`-v`)?(process.stdout.write(`${e}\n`),0):void 0;(a===void 0?import(`../src/commands/cli/cliApp.mjs`).then(({runCli:e})=>e(n)):Promise.resolve(a)).then(e=>{process.exitCode=e},e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[doompi] ${t}\n`),process.exitCode=1});export{};
|
|
3
|
+
//# sourceMappingURL=cli.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.mjs","names":[],"sources":["../../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * CLI Entry Point for doom-pi\n *\n * The executable installed as the `doom-pi` binary, and the file the repository\n * launchers (pi.sh, claude.sh, codex.sh) invoke directly from source.\n */\n\nimport { HARNESS_VERSION, printHelp } from '../commands/cli/help.ts';\n\nconst args = process.argv.slice(2);\nconst command = args[0];\nconst ownsArguments = command === 'init' || command === 'sync' || command === 'compat';\n\n// Keep informational startup independent from telemetry, configuration, Pi,\n// and the extension compiler. Those graphs are useful for a real command but\n// used to account for almost all of `doompi --help` and `doompi --version`.\nconst informationalExit =\n !ownsArguments && args.some((argument) => argument === '--help' || argument === '-h')\n ? (() => {\n printHelp();\n return 0;\n })()\n : !ownsArguments && args.some((argument) => argument === '--version' || argument === '-v')\n ? (() => {\n process.stdout.write(`${HARNESS_VERSION}\\n`);\n return 0;\n })()\n : undefined;\n\nconst run =\n informationalExit === undefined\n ? import('../commands/cli/cliApp.ts').then(({ runCli }) => runCli(args))\n : Promise.resolve(informationalExit);\n\nrun.then(\n (exitCode) => {\n process.exitCode = exitCode;\n },\n (error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`[doompi] ${message}\\n`);\n process.exitCode = 1;\n },\n);\n"],"mappings":";8EAWA,MAAM,EAAO,QAAQ,KAAK,MAAM,CAAC,EAC3B,EAAU,EAAK,GACf,EAAgB,IAAY,QAAU,IAAY,QAAU,IAAY,SAKxE,EACJ,CAAC,GAAiB,EAAK,KAAM,GAAa,IAAa,UAAY,IAAa,IAAI,GAE9E,EAAU,EACH,GAET,CAAC,GAAiB,EAAK,KAAM,GAAa,IAAa,aAAe,IAAa,IAAI,GAEnF,QAAQ,OAAO,MAAM,GAAG,EAAgB,GAAG,EACpC,GAET,IAAA,IAGN,IAAsB,IAAA,GAClB,OAAO,iCAA4B,CAAC,MAAM,CAAE,YAAa,EAAO,CAAI,CAAC,EACrE,QAAQ,QAAQ,CAAiB,EAAA,CAEnC,KACD,GAAa,CACZ,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACrE,QAAQ,OAAO,MAAM,YAAY,EAAQ,GAAG,EAC5C,QAAQ,SAAW,CACrB,CACF"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../src/adapters/repository/repository.cjs"),t=require("../src/adapters/modules/moduleResolution.cjs");let n=require("node:url");const r=`@agimon-ai/doompi-runner/bin/cli`;async function i(i=process.argv.slice(2)){let a;try{a=e.findRepositoryRoot(process.cwd())}catch(e){throw Error(`doom-runner must be invoked inside a configured repository.`,{cause:e})}let o=t.consumerPackageEntry(r,a);if(!o)throw Error(`Doom Runner is not installed for this repository. Add @agimon-ai/doompi-runner to .doom/modes.yaml and run doompi sync.`);let s=await import((0,n.pathToFileURL)(o).href);if(typeof s.main!=`function`)throw Error(`${r} does not export a callable main function.`);return s.main(i)}process.argv[1]&&require("url").pathToFileURL(__filename).href===(0,n.pathToFileURL)(process.argv[1]).href&&i().then(e=>{process.exitCode=e},e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[doom-runner] ${t}\n`),process.exitCode=1}),exports.main=i;
|
|
3
|
+
//# sourceMappingURL=doomRunner.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doomRunner.cjs","names":["findRepositoryRoot","consumerPackageEntry","pathToFileURL"],"sources":["../../src/bin/doomRunner.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * CLI Entry Point for doom-runner\n *\n * The Runner package is selectable, so this compatibility executable resolves\n * it from the active repository instead of retaining it in DoomPi's dependency\n * closure. The Runner package's own entry only self-invokes when it is argv[1],\n * which it is not once this shim imports it by absolute path.\n */\n\nimport { pathToFileURL } from 'node:url';\nimport { consumerPackageEntry } from '../adapters/modules/moduleResolution.ts';\nimport { findRepositoryRoot } from '../adapters/repository/repository.ts';\n\nconst RUNNER_CLI_EXPORT = '@agimon-ai/doompi-runner/bin/cli';\n\ninterface RunnerCliModule {\n readonly main?: unknown;\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n let repoRoot: string;\n try {\n repoRoot = findRepositoryRoot(process.cwd());\n } catch (error) {\n throw new Error('doom-runner must be invoked inside a configured repository.', { cause: error });\n }\n const entry = consumerPackageEntry(RUNNER_CLI_EXPORT, repoRoot);\n if (!entry) {\n throw new Error(\n 'Doom Runner is not installed for this repository. Add @agimon-ai/doompi-runner to .doom/modes.yaml and run doompi sync.',\n );\n }\n const loaded = (await import(pathToFileURL(entry).href)) as RunnerCliModule;\n if (typeof loaded.main !== 'function') {\n throw new Error(`${RUNNER_CLI_EXPORT} does not export a callable main function.`);\n }\n return (loaded.main as (args: readonly string[]) => Promise<number>)(argv);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (exitCode) => {\n process.exitCode = exitCode;\n },\n (error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`[doom-runner] ${message}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";oNAeA,MAAM,EAAoB,mCAM1B,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAI,EACJ,GAAI,CACF,EAAWA,EAAAA,mBAAmB,QAAQ,IAAI,CAAC,CAC7C,OAAS,EAAO,CACd,MAAU,MAAM,8DAA+D,CAAE,MAAO,CAAM,CAAC,CACjG,CACA,IAAM,EAAQC,EAAAA,qBAAqB,EAAmB,CAAQ,EAC9D,GAAI,CAAC,EACH,MAAU,MACR,yHACF,EAEF,IAAM,EAAU,MAAM,QAAA,EAAOC,EAAAA,cAAAA,CAAc,CAAK,CAAC,CAAC,MAClD,GAAI,OAAO,EAAO,MAAS,WACzB,MAAU,MAAM,GAAG,EAAkB,2CAA2C,EAElF,OAAQ,EAAO,KAAsD,CAAI,CAC3E,CAEI,QAAQ,KAAK,IAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,QAAA,EAA0BA,EAAAA,cAAAA,CAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAa,CACZ,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACrE,QAAQ,OAAO,MAAM,iBAAiB,EAAQ,GAAG,EACjD,QAAQ,SAAW,CACrB,CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/bin/doomRunner.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* CLI Entry Point for doom-runner
|
|
4
|
+
*
|
|
5
|
+
* The Runner package is selectable, so this compatibility executable resolves
|
|
6
|
+
* it from the active repository instead of retaining it in DoomPi's dependency
|
|
7
|
+
* closure. The Runner package's own entry only self-invokes when it is argv[1],
|
|
8
|
+
* which it is not once this shim imports it by absolute path.
|
|
9
|
+
*/
|
|
10
|
+
declare function main(argv?: readonly string[]): Promise<number>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { main };
|
|
13
|
+
//# sourceMappingURL=doomRunner.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doomRunner.d.cts","names":[],"sources":["../../src/bin/doomRunner.ts"],"mappings":";;;;;;;;;iBAqBsB,KAAK,2BAAkD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/bin/doomRunner.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* CLI Entry Point for doom-runner
|
|
4
|
+
*
|
|
5
|
+
* The Runner package is selectable, so this compatibility executable resolves
|
|
6
|
+
* it from the active repository instead of retaining it in DoomPi's dependency
|
|
7
|
+
* closure. The Runner package's own entry only self-invokes when it is argv[1],
|
|
8
|
+
* which it is not once this shim imports it by absolute path.
|
|
9
|
+
*/
|
|
10
|
+
declare function main(argv?: readonly string[]): Promise<number>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { main };
|
|
13
|
+
//# sourceMappingURL=doomRunner.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doomRunner.d.mts","names":[],"sources":["../../src/bin/doomRunner.ts"],"mappings":";;;;;;;;;iBAqBsB,KAAK,2BAAkD"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{findRepositoryRoot as e}from"../src/adapters/repository/repository.mjs";import{consumerPackageEntry as t}from"../src/adapters/modules/moduleResolution.mjs";import{pathToFileURL as n}from"node:url";const r=`@agimon-ai/doompi-runner/bin/cli`;async function i(i=process.argv.slice(2)){let a;try{a=e(process.cwd())}catch(e){throw Error(`doom-runner must be invoked inside a configured repository.`,{cause:e})}let o=t(r,a);if(!o)throw Error(`Doom Runner is not installed for this repository. Add @agimon-ai/doompi-runner to .doom/modes.yaml and run doompi sync.`);let s=await import(n(o).href);if(typeof s.main!=`function`)throw Error(`${r} does not export a callable main function.`);return s.main(i)}process.argv[1]&&import.meta.url===n(process.argv[1]).href&&i().then(e=>{process.exitCode=e},e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[doom-runner] ${t}\n`),process.exitCode=1});export{i as main};
|
|
3
|
+
//# sourceMappingURL=doomRunner.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doomRunner.mjs","names":[],"sources":["../../src/bin/doomRunner.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * CLI Entry Point for doom-runner\n *\n * The Runner package is selectable, so this compatibility executable resolves\n * it from the active repository instead of retaining it in DoomPi's dependency\n * closure. The Runner package's own entry only self-invokes when it is argv[1],\n * which it is not once this shim imports it by absolute path.\n */\n\nimport { pathToFileURL } from 'node:url';\nimport { consumerPackageEntry } from '../adapters/modules/moduleResolution.ts';\nimport { findRepositoryRoot } from '../adapters/repository/repository.ts';\n\nconst RUNNER_CLI_EXPORT = '@agimon-ai/doompi-runner/bin/cli';\n\ninterface RunnerCliModule {\n readonly main?: unknown;\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n let repoRoot: string;\n try {\n repoRoot = findRepositoryRoot(process.cwd());\n } catch (error) {\n throw new Error('doom-runner must be invoked inside a configured repository.', { cause: error });\n }\n const entry = consumerPackageEntry(RUNNER_CLI_EXPORT, repoRoot);\n if (!entry) {\n throw new Error(\n 'Doom Runner is not installed for this repository. Add @agimon-ai/doompi-runner to .doom/modes.yaml and run doompi sync.',\n );\n }\n const loaded = (await import(pathToFileURL(entry).href)) as RunnerCliModule;\n if (typeof loaded.main !== 'function') {\n throw new Error(`${RUNNER_CLI_EXPORT} does not export a callable main function.`);\n }\n return (loaded.main as (args: readonly string[]) => Promise<number>)(argv);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (exitCode) => {\n process.exitCode = exitCode;\n },\n (error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`[doom-runner] ${message}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";4MAeA,MAAM,EAAoB,mCAM1B,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAI,EACJ,GAAI,CACF,EAAW,EAAmB,QAAQ,IAAI,CAAC,CAC7C,OAAS,EAAO,CACd,MAAU,MAAM,8DAA+D,CAAE,MAAO,CAAM,CAAC,CACjG,CACA,IAAM,EAAQ,EAAqB,EAAmB,CAAQ,EAC9D,GAAI,CAAC,EACH,MAAU,MACR,yHACF,EAEF,IAAM,EAAU,MAAM,OAAO,EAAc,CAAK,CAAC,CAAC,MAClD,GAAI,OAAO,EAAO,MAAS,WACzB,MAAU,MAAM,GAAG,EAAkB,2CAA2C,EAElF,OAAQ,EAAO,KAAsD,CAAI,CAC3E,CAEI,QAAQ,KAAK,IAAM,YAAY,MAAQ,EAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAa,CACZ,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACrE,QAAQ,OAAO,MAAM,iBAAiB,EAAQ,GAAG,EACjD,QAAQ,SAAW,CACrB,CACF"}
|