@agimon-ai/doompi 0.0.1-alpha.2 → 0.0.1-alpha.20
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 +437 -452
- package/assets/doompi-tui.png +0 -0
- package/dist/adapters/bootstrapClaim.cjs +2 -0
- package/dist/adapters/bootstrapClaim.cjs.map +1 -0
- package/dist/adapters/bootstrapClaim.mjs +2 -0
- package/dist/adapters/bootstrapClaim.mjs.map +1 -0
- package/dist/adapters/bootstrapLocator.cjs +2 -0
- package/dist/adapters/bootstrapLocator.cjs.map +1 -0
- package/dist/adapters/bootstrapLocator.d.cts +6 -0
- package/dist/adapters/bootstrapLocator.d.cts.map +1 -0
- package/dist/adapters/bootstrapLocator.d.mts +6 -0
- package/dist/adapters/bootstrapLocator.d.mts.map +1 -0
- package/dist/adapters/bootstrapLocator.mjs +2 -0
- package/dist/adapters/bootstrapLocator.mjs.map +1 -0
- package/dist/adapters/compatibility/antigravity.cjs +2 -0
- package/dist/{services → adapters}/compatibility/antigravity.cjs.map +1 -1
- package/dist/adapters/compatibility/antigravity.d.cts +11 -0
- package/dist/{services → adapters}/compatibility/antigravity.d.cts.map +1 -1
- package/dist/adapters/compatibility/antigravity.d.mts +11 -0
- package/dist/{services → adapters}/compatibility/antigravity.d.mts.map +1 -1
- package/dist/adapters/compatibility/antigravity.mjs +2 -0
- package/dist/{services → adapters}/compatibility/antigravity.mjs.map +1 -1
- package/dist/adapters/compatibility/codex.cjs +2 -0
- package/dist/{services → adapters}/compatibility/codex.cjs.map +1 -1
- package/dist/adapters/compatibility/codex.d.cts +19 -0
- package/dist/{services → adapters}/compatibility/codex.d.cts.map +1 -1
- package/dist/adapters/compatibility/codex.d.mts +19 -0
- package/dist/{services → adapters}/compatibility/codex.d.mts.map +1 -1
- package/dist/adapters/compatibility/codex.mjs +2 -0
- package/dist/{services → adapters}/compatibility/codex.mjs.map +1 -1
- package/dist/adapters/compatibility/index.cjs +2 -0
- package/dist/adapters/compatibility/index.cjs.map +1 -0
- package/dist/adapters/compatibility/index.d.cts +16 -0
- package/dist/{services → adapters}/compatibility/index.d.cts.map +1 -1
- package/dist/adapters/compatibility/index.d.mts +16 -0
- package/dist/{services → adapters}/compatibility/index.d.mts.map +1 -1
- package/dist/adapters/compatibility/index.mjs +2 -0
- package/dist/adapters/compatibility/index.mjs.map +1 -0
- package/dist/adapters/compatibility/process.cjs +2 -0
- package/dist/{services → adapters}/compatibility/process.cjs.map +1 -1
- package/dist/adapters/compatibility/process.d.cts +35 -0
- package/dist/{services → adapters}/compatibility/process.d.cts.map +1 -1
- package/dist/adapters/compatibility/process.d.mts +35 -0
- package/dist/{services → adapters}/compatibility/process.d.mts.map +1 -1
- package/dist/adapters/compatibility/process.mjs +2 -0
- package/dist/{services → adapters}/compatibility/process.mjs.map +1 -1
- package/dist/adapters/compatibility/shared.cjs +2 -0
- package/dist/{services → adapters}/compatibility/shared.cjs.map +1 -1
- package/dist/adapters/compatibility/shared.d.cts +33 -0
- package/dist/{services → adapters}/compatibility/shared.d.cts.map +1 -1
- package/dist/adapters/compatibility/shared.d.mts +33 -0
- package/dist/{services → adapters}/compatibility/shared.d.mts.map +1 -1
- package/dist/adapters/compatibility/shared.mjs +2 -0
- package/dist/{services → adapters}/compatibility/shared.mjs.map +1 -1
- package/dist/adapters/compatibilityContext.cjs +2 -0
- package/dist/adapters/compatibilityContext.cjs.map +1 -0
- package/dist/adapters/compatibilityContext.d.cts +23 -0
- package/dist/{services → adapters}/compatibilityContext.d.cts.map +1 -1
- package/dist/adapters/compatibilityContext.d.mts +23 -0
- package/dist/{services → adapters}/compatibilityContext.d.mts.map +1 -1
- package/dist/adapters/compatibilityContext.mjs +2 -0
- package/dist/adapters/compatibilityContext.mjs.map +1 -0
- package/dist/adapters/composer.cjs +2 -0
- package/dist/adapters/composer.cjs.map +1 -0
- package/dist/adapters/composer.d.cts +113 -0
- package/dist/adapters/composer.d.cts.map +1 -0
- package/dist/adapters/composer.d.mts +113 -0
- package/dist/adapters/composer.d.mts.map +1 -0
- package/dist/adapters/composer.mjs +2 -0
- package/dist/adapters/composer.mjs.map +1 -0
- package/dist/adapters/compositionState.cjs +2 -0
- package/dist/adapters/compositionState.cjs.map +1 -0
- package/dist/adapters/compositionState.d.cts +12 -0
- package/dist/adapters/compositionState.d.cts.map +1 -0
- package/dist/adapters/compositionState.d.mts +12 -0
- package/dist/adapters/compositionState.d.mts.map +1 -0
- package/dist/adapters/compositionState.mjs +2 -0
- package/dist/adapters/compositionState.mjs.map +1 -0
- package/dist/adapters/config/harnessState.cjs +2 -0
- package/dist/adapters/config/harnessState.cjs.map +1 -0
- package/dist/adapters/config/harnessState.d.cts +26 -0
- package/dist/adapters/config/harnessState.d.cts.map +1 -0
- package/dist/adapters/config/harnessState.d.mts +26 -0
- package/dist/adapters/config/harnessState.d.mts.map +1 -0
- package/dist/adapters/config/harnessState.mjs +2 -0
- package/dist/adapters/config/harnessState.mjs.map +1 -0
- package/dist/adapters/deferredSkills.cjs +12 -0
- package/dist/adapters/deferredSkills.cjs.map +1 -0
- package/dist/adapters/deferredSkills.mjs +12 -0
- package/dist/adapters/deferredSkills.mjs.map +1 -0
- package/dist/adapters/doomPackage.cjs +2 -0
- package/dist/adapters/doomPackage.cjs.map +1 -0
- package/dist/adapters/doomPackage.mjs +2 -0
- package/dist/adapters/doomPackage.mjs.map +1 -0
- package/dist/adapters/dpiRunner.cjs +3 -0
- package/dist/adapters/dpiRunner.cjs.map +1 -0
- package/dist/adapters/dpiRunner.mjs +3 -0
- package/dist/adapters/dpiRunner.mjs.map +1 -0
- package/dist/adapters/dpiSettings.cjs +2 -0
- package/dist/adapters/dpiSettings.cjs.map +1 -0
- package/dist/adapters/dpiSettings.mjs +2 -0
- package/dist/adapters/dpiSettings.mjs.map +1 -0
- package/dist/adapters/extensionCompiler.cjs +3 -0
- package/dist/adapters/extensionCompiler.cjs.map +1 -0
- package/dist/adapters/extensionCompiler.mjs +3 -0
- package/dist/adapters/extensionCompiler.mjs.map +1 -0
- package/dist/adapters/harnessContext.cjs +2 -0
- package/dist/adapters/harnessContext.cjs.map +1 -0
- package/dist/adapters/harnessContext.d.cts +61 -0
- package/dist/{services → adapters}/harnessContext.d.cts.map +1 -1
- package/dist/adapters/harnessContext.d.mts +61 -0
- package/dist/{services → adapters}/harnessContext.d.mts.map +1 -1
- package/dist/adapters/harnessContext.mjs +2 -0
- package/dist/adapters/harnessContext.mjs.map +1 -0
- package/dist/adapters/helpSkills.cjs +2 -0
- package/dist/adapters/helpSkills.cjs.map +1 -0
- package/dist/adapters/helpSkills.mjs +2 -0
- package/dist/adapters/helpSkills.mjs.map +1 -0
- package/dist/adapters/layerPackageInstaller.cjs +2 -0
- package/dist/adapters/layerPackageInstaller.cjs.map +1 -0
- package/dist/adapters/layerPackageInstaller.mjs +2 -0
- package/dist/adapters/layerPackageInstaller.mjs.map +1 -0
- package/dist/adapters/matrixSwitcher.cjs +2 -0
- package/dist/adapters/matrixSwitcher.cjs.map +1 -0
- package/dist/adapters/matrixSwitcher.d.cts +46 -0
- package/dist/{services → adapters}/matrixSwitcher.d.cts.map +1 -1
- package/dist/adapters/matrixSwitcher.d.mts +46 -0
- package/dist/{services → adapters}/matrixSwitcher.d.mts.map +1 -1
- package/dist/adapters/matrixSwitcher.mjs +2 -0
- package/dist/adapters/matrixSwitcher.mjs.map +1 -0
- package/dist/adapters/mcpFilter.cjs +3 -0
- package/dist/adapters/mcpFilter.cjs.map +1 -0
- package/dist/adapters/mcpFilter.d.cts +40 -0
- package/dist/adapters/mcpFilter.d.cts.map +1 -0
- package/dist/adapters/mcpFilter.d.mts +40 -0
- package/dist/adapters/mcpFilter.d.mts.map +1 -0
- package/dist/adapters/mcpFilter.mjs +3 -0
- package/dist/adapters/mcpFilter.mjs.map +1 -0
- package/dist/adapters/modules/moduleResolution.cjs +2 -0
- package/dist/adapters/modules/moduleResolution.cjs.map +1 -0
- package/dist/adapters/modules/moduleResolution.d.cts +69 -0
- package/dist/adapters/modules/moduleResolution.d.cts.map +1 -0
- package/dist/adapters/modules/moduleResolution.d.mts +69 -0
- package/dist/adapters/modules/moduleResolution.d.mts.map +1 -0
- package/dist/adapters/modules/moduleResolution.mjs +2 -0
- package/dist/adapters/modules/moduleResolution.mjs.map +1 -0
- package/dist/adapters/packageBootstrap.cjs +2 -0
- package/dist/adapters/packageBootstrap.cjs.map +1 -0
- package/dist/adapters/packageBootstrap.d.cts +8 -0
- package/dist/adapters/packageBootstrap.d.cts.map +1 -0
- package/dist/adapters/packageBootstrap.d.mts +8 -0
- package/dist/adapters/packageBootstrap.d.mts.map +1 -0
- package/dist/adapters/packageBootstrap.mjs +2 -0
- package/dist/adapters/packageBootstrap.mjs.map +1 -0
- package/dist/adapters/piExtensionAlias.cjs +2 -0
- package/dist/adapters/piExtensionAlias.cjs.map +1 -0
- package/dist/adapters/piExtensionAlias.mjs +2 -0
- package/dist/adapters/piExtensionAlias.mjs.map +1 -0
- package/dist/adapters/piSettings.cjs +2 -0
- package/dist/adapters/piSettings.cjs.map +1 -0
- package/dist/adapters/piSettings.d.cts +25 -0
- package/dist/adapters/piSettings.d.cts.map +1 -0
- package/dist/adapters/piSettings.d.mts +25 -0
- package/dist/adapters/piSettings.d.mts.map +1 -0
- package/dist/adapters/piSettings.mjs +2 -0
- package/dist/adapters/piSettings.mjs.map +1 -0
- package/dist/adapters/pluginMaterializer.cjs +2 -0
- package/dist/adapters/pluginMaterializer.cjs.map +1 -0
- package/dist/adapters/pluginMaterializer.mjs +2 -0
- package/dist/adapters/pluginMaterializer.mjs.map +1 -0
- package/dist/adapters/projectPiSettings.cjs +2 -0
- package/dist/adapters/projectPiSettings.cjs.map +1 -0
- package/dist/adapters/projectPiSettings.d.cts +29 -0
- package/dist/adapters/projectPiSettings.d.cts.map +1 -0
- package/dist/adapters/projectPiSettings.d.mts +29 -0
- package/dist/adapters/projectPiSettings.d.mts.map +1 -0
- package/dist/adapters/projectPiSettings.mjs +2 -0
- package/dist/adapters/projectPiSettings.mjs.map +1 -0
- package/dist/adapters/repository/repository.cjs +2 -0
- package/dist/adapters/repository/repository.cjs.map +1 -0
- package/dist/adapters/repository/repository.d.cts +21 -0
- package/dist/adapters/repository/repository.d.cts.map +1 -0
- package/dist/adapters/repository/repository.d.mts +21 -0
- package/dist/adapters/repository/repository.d.mts.map +1 -0
- package/dist/adapters/repository/repository.mjs +2 -0
- package/dist/adapters/repository/repository.mjs.map +1 -0
- package/dist/adapters/resourceCollector.cjs +3 -0
- package/dist/adapters/resourceCollector.cjs.map +1 -0
- package/dist/adapters/resourceCollector.d.cts +25 -0
- package/dist/adapters/resourceCollector.d.cts.map +1 -0
- package/dist/adapters/resourceCollector.d.mts +25 -0
- package/dist/adapters/resourceCollector.d.mts.map +1 -0
- package/dist/adapters/resourceCollector.mjs +3 -0
- package/dist/adapters/resourceCollector.mjs.map +1 -0
- package/dist/adapters/runtimeBundle.cjs +2 -0
- package/dist/adapters/runtimeBundle.cjs.map +1 -0
- package/dist/{services → adapters}/runtimeBundle.d.cts +4 -2
- package/dist/adapters/runtimeBundle.d.cts.map +1 -0
- package/dist/{services → adapters}/runtimeBundle.d.mts +4 -2
- package/dist/adapters/runtimeBundle.d.mts.map +1 -0
- package/dist/adapters/runtimeBundle.mjs +2 -0
- package/dist/adapters/runtimeBundle.mjs.map +1 -0
- package/dist/adapters/serialization/json.cjs +2 -0
- package/dist/adapters/serialization/json.cjs.map +1 -0
- package/dist/adapters/serialization/json.d.cts +23 -0
- package/dist/adapters/serialization/json.d.cts.map +1 -0
- package/dist/adapters/serialization/json.d.mts +23 -0
- package/dist/adapters/serialization/json.d.mts.map +1 -0
- package/dist/adapters/serialization/json.mjs +2 -0
- package/dist/adapters/serialization/json.mjs.map +1 -0
- package/dist/adapters/sharedBuildCache.cjs +2 -0
- package/dist/adapters/sharedBuildCache.cjs.map +1 -0
- package/dist/adapters/sharedBuildCache.mjs +2 -0
- package/dist/adapters/sharedBuildCache.mjs.map +1 -0
- package/dist/adapters/skillCatalog.cjs +2 -0
- package/dist/adapters/skillCatalog.cjs.map +1 -0
- package/dist/adapters/skillCatalog.d.cts +61 -0
- package/dist/adapters/skillCatalog.d.cts.map +1 -0
- package/dist/adapters/skillCatalog.d.mts +61 -0
- package/dist/adapters/skillCatalog.d.mts.map +1 -0
- package/dist/adapters/skillCatalog.mjs +2 -0
- package/dist/adapters/skillCatalog.mjs.map +1 -0
- package/dist/adapters/skillSources.cjs +2 -0
- package/dist/{services → adapters}/skillSources.cjs.map +1 -1
- package/dist/adapters/skillSources.d.cts +24 -0
- package/dist/{services → adapters}/skillSources.d.cts.map +1 -1
- package/dist/adapters/skillSources.d.mts +24 -0
- package/dist/{services → adapters}/skillSources.d.mts.map +1 -1
- package/dist/adapters/skillSources.mjs +2 -0
- package/dist/{services → adapters}/skillSources.mjs.map +1 -1
- package/dist/adapters/startupPrecompiler.cjs +2 -0
- package/dist/adapters/startupPrecompiler.cjs.map +1 -0
- package/dist/adapters/startupPrecompiler.d.cts +13 -0
- package/dist/adapters/startupPrecompiler.d.cts.map +1 -0
- package/dist/adapters/startupPrecompiler.d.mts +13 -0
- package/dist/adapters/startupPrecompiler.d.mts.map +1 -0
- package/dist/adapters/startupPrecompiler.mjs +2 -0
- package/dist/adapters/startupPrecompiler.mjs.map +1 -0
- package/dist/adapters/syncLocation.cjs +2 -0
- package/dist/adapters/syncLocation.cjs.map +1 -0
- package/dist/adapters/syncLocation.d.cts +19 -0
- package/dist/adapters/syncLocation.d.cts.map +1 -0
- package/dist/adapters/syncLocation.d.mts +19 -0
- package/dist/adapters/syncLocation.d.mts.map +1 -0
- package/dist/adapters/syncLocation.mjs +2 -0
- package/dist/adapters/syncLocation.mjs.map +1 -0
- package/dist/adapters/syncState.cjs +2 -0
- package/dist/adapters/syncState.cjs.map +1 -0
- package/dist/adapters/syncState.d.cts +153 -0
- package/dist/adapters/syncState.d.cts.map +1 -0
- package/dist/adapters/syncState.d.mts +153 -0
- package/dist/adapters/syncState.d.mts.map +1 -0
- package/dist/adapters/syncState.mjs +2 -0
- package/dist/adapters/syncState.mjs.map +1 -0
- package/dist/adapters/syncStateContract.cjs +2 -0
- package/dist/adapters/syncStateContract.cjs.map +1 -0
- package/dist/adapters/syncStateContract.d.cts +13 -0
- package/dist/adapters/syncStateContract.d.cts.map +1 -0
- package/dist/adapters/syncStateContract.d.mts +13 -0
- package/dist/adapters/syncStateContract.d.mts.map +1 -0
- package/dist/adapters/syncStateContract.mjs +2 -0
- package/dist/adapters/syncStateContract.mjs.map +1 -0
- package/dist/adapters/syncedRuntimeBuilder.cjs +2 -0
- package/dist/adapters/syncedRuntimeBuilder.cjs.map +1 -0
- package/dist/adapters/syncedRuntimeBuilder.d.cts +11 -0
- package/dist/adapters/syncedRuntimeBuilder.d.cts.map +1 -0
- package/dist/adapters/syncedRuntimeBuilder.d.mts +11 -0
- package/dist/adapters/syncedRuntimeBuilder.d.mts.map +1 -0
- package/dist/adapters/syncedRuntimeBuilder.mjs +2 -0
- package/dist/adapters/syncedRuntimeBuilder.mjs.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.cjs +2 -0
- package/dist/adapters/telemetry/logSinkTelemetry.cjs.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts +51 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts +51 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.mjs +2 -0
- package/dist/adapters/telemetry/logSinkTelemetry.mjs.map +1 -0
- package/dist/bin/cli.cjs +1 -1
- package/dist/bin/cli.cjs.map +1 -1
- package/dist/bin/cli.mjs +1 -1
- package/dist/bin/cli.mjs.map +1 -1
- 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 -2
- package/dist/cli/cliApp.d.cts +2 -45
- package/dist/cli/cliApp.d.mts +2 -45
- package/dist/cli/cliApp.mjs +1 -2
- package/dist/cli/compatibilityOptions.cjs +1 -2
- package/dist/cli/compatibilityOptions.d.cts +2 -15
- package/dist/cli/compatibilityOptions.d.mts +2 -15
- package/dist/cli/compatibilityOptions.mjs +1 -2
- package/dist/cli/help.cjs +1 -63
- package/dist/cli/help.d.cts +2 -6
- package/dist/cli/help.d.mts +2 -6
- package/dist/cli/help.mjs +1 -63
- package/dist/cli/index.cjs +1 -1
- package/dist/cli/index.d.cts +4 -4
- package/dist/cli/index.d.mts +4 -4
- package/dist/cli/index.mjs +1 -1
- package/dist/cli/matrixOptions.cjs +1 -2
- package/dist/cli/matrixOptions.d.cts +2 -99
- package/dist/cli/matrixOptions.d.mts +2 -99
- package/dist/cli/matrixOptions.mjs +1 -2
- package/dist/cli/options.cjs +1 -2
- package/dist/cli/options.d.cts +2 -7
- package/dist/cli/options.d.mts +2 -7
- package/dist/cli/options.mjs +1 -2
- package/dist/commands/baseCommand.cjs.map +1 -1
- package/dist/commands/baseCommand.d.cts +3 -3
- package/dist/commands/baseCommand.d.mts +3 -3
- package/dist/commands/baseCommand.mjs.map +1 -1
- package/dist/commands/buildCommand.cjs +2 -2
- package/dist/commands/buildCommand.cjs.map +1 -1
- package/dist/commands/buildCommand.mjs +2 -2
- package/dist/commands/buildCommand.mjs.map +1 -1
- package/dist/commands/cli/cliApp.cjs +2 -0
- package/dist/commands/cli/cliApp.cjs.map +1 -0
- package/dist/commands/cli/cliApp.d.cts +45 -0
- package/dist/commands/cli/cliApp.d.cts.map +1 -0
- package/dist/commands/cli/cliApp.d.mts +45 -0
- package/dist/commands/cli/cliApp.d.mts.map +1 -0
- package/dist/commands/cli/cliApp.mjs +2 -0
- package/dist/commands/cli/cliApp.mjs.map +1 -0
- package/dist/commands/cli/compatibilityOptions.cjs +2 -0
- package/dist/commands/cli/compatibilityOptions.cjs.map +1 -0
- package/dist/commands/cli/compatibilityOptions.d.cts +15 -0
- package/dist/commands/cli/compatibilityOptions.d.cts.map +1 -0
- package/dist/commands/cli/compatibilityOptions.d.mts +15 -0
- package/dist/commands/cli/compatibilityOptions.d.mts.map +1 -0
- package/dist/commands/cli/compatibilityOptions.mjs +2 -0
- package/dist/commands/cli/compatibilityOptions.mjs.map +1 -0
- package/dist/commands/cli/help.cjs +68 -0
- package/dist/{cli → commands/cli}/help.cjs.map +1 -1
- package/dist/commands/cli/help.d.cts +6 -0
- package/dist/commands/cli/help.d.cts.map +1 -0
- package/dist/commands/cli/help.d.mts +6 -0
- package/dist/commands/cli/help.d.mts.map +1 -0
- package/dist/commands/cli/help.mjs +68 -0
- package/dist/{cli → commands/cli}/help.mjs.map +1 -1
- package/dist/commands/cli/index.cjs +1 -0
- package/dist/commands/cli/index.d.cts +4 -0
- package/dist/commands/cli/index.d.mts +4 -0
- package/dist/commands/cli/index.mjs +1 -0
- package/dist/commands/cli/matrixOptions.cjs +2 -0
- package/dist/commands/cli/matrixOptions.cjs.map +1 -0
- package/dist/commands/cli/matrixOptions.d.cts +99 -0
- package/dist/commands/cli/matrixOptions.d.cts.map +1 -0
- package/dist/commands/cli/matrixOptions.d.mts +99 -0
- package/dist/commands/cli/matrixOptions.d.mts.map +1 -0
- package/dist/commands/cli/matrixOptions.mjs +2 -0
- package/dist/commands/cli/matrixOptions.mjs.map +1 -0
- package/dist/commands/cli/options.cjs +2 -0
- package/dist/commands/cli/options.cjs.map +1 -0
- package/dist/commands/cli/options.d.cts +7 -0
- package/dist/commands/cli/options.d.cts.map +1 -0
- package/dist/commands/cli/options.d.mts +7 -0
- package/dist/commands/cli/options.d.mts.map +1 -0
- package/dist/commands/cli/options.mjs +2 -0
- package/dist/commands/cli/options.mjs.map +1 -0
- package/dist/commands/compatibilityCommand.cjs +1 -1
- package/dist/commands/compatibilityCommand.cjs.map +1 -1
- package/dist/commands/compatibilityCommand.d.cts +1 -1
- package/dist/commands/compatibilityCommand.d.cts.map +1 -1
- package/dist/commands/compatibilityCommand.d.mts +1 -1
- package/dist/commands/compatibilityCommand.d.mts.map +1 -1
- package/dist/commands/compatibilityCommand.mjs +1 -1
- package/dist/commands/compatibilityCommand.mjs.map +1 -1
- package/dist/commands/emitMcpCommand.cjs +1 -1
- package/dist/commands/emitMcpCommand.cjs.map +1 -1
- package/dist/commands/emitMcpCommand.d.cts +2 -2
- package/dist/commands/emitMcpCommand.d.mts +2 -2
- package/dist/commands/emitMcpCommand.mjs +1 -1
- package/dist/commands/emitMcpCommand.mjs.map +1 -1
- package/dist/commands/explainCommand.cjs +2 -2
- package/dist/commands/explainCommand.cjs.map +1 -1
- package/dist/commands/explainCommand.d.cts +2 -2
- package/dist/commands/explainCommand.d.mts +2 -2
- package/dist/commands/explainCommand.mjs +2 -2
- package/dist/commands/explainCommand.mjs.map +1 -1
- package/dist/commands/index.cjs +1 -1
- package/dist/commands/index.d.cts +2 -3
- package/dist/commands/index.d.mts +2 -3
- package/dist/commands/index.mjs +1 -1
- package/dist/commands/initCommand.cjs +1 -2
- package/dist/commands/initCommand.cjs.map +1 -1
- package/dist/commands/initCommand.d.cts +4 -3
- package/dist/commands/initCommand.d.cts.map +1 -1
- package/dist/commands/initCommand.d.mts +4 -3
- package/dist/commands/initCommand.d.mts.map +1 -1
- package/dist/commands/initCommand.mjs +1 -2
- package/dist/commands/initCommand.mjs.map +1 -1
- package/dist/commands/initPresenter.cjs +3 -0
- package/dist/commands/initPresenter.cjs.map +1 -0
- package/dist/commands/initPresenter.d.cts +8 -0
- package/dist/commands/initPresenter.d.cts.map +1 -0
- package/dist/commands/initPresenter.d.mts +8 -0
- package/dist/commands/initPresenter.d.mts.map +1 -0
- package/dist/commands/initPresenter.mjs +3 -0
- package/dist/commands/initPresenter.mjs.map +1 -0
- package/dist/commands/launchCommand.cjs +1 -1
- package/dist/commands/launchCommand.cjs.map +1 -1
- package/dist/commands/launchCommand.d.cts +6 -4
- package/dist/commands/launchCommand.d.cts.map +1 -1
- package/dist/commands/launchCommand.d.mts +6 -4
- package/dist/commands/launchCommand.d.mts.map +1 -1
- package/dist/commands/launchCommand.mjs +1 -1
- package/dist/commands/launchCommand.mjs.map +1 -1
- package/dist/commands/syncCommand.cjs +5 -5
- package/dist/commands/syncCommand.cjs.map +1 -1
- package/dist/commands/syncCommand.d.cts +19 -7
- package/dist/commands/syncCommand.d.cts.map +1 -1
- package/dist/commands/syncCommand.d.mts +19 -7
- package/dist/commands/syncCommand.d.mts.map +1 -1
- package/dist/commands/syncCommand.mjs +5 -5
- package/dist/commands/syncCommand.mjs.map +1 -1
- package/dist/commands/syncPipeline.cjs +2 -0
- package/dist/commands/syncPipeline.cjs.map +1 -0
- package/dist/commands/syncPipeline.mjs +2 -0
- package/dist/commands/syncPipeline.mjs.map +1 -0
- package/dist/config/harnessState.cjs +1 -2
- package/dist/config/harnessState.d.cts +2 -24
- package/dist/config/harnessState.d.mts +2 -24
- package/dist/config/harnessState.mjs +1 -2
- package/dist/config/index.cjs +1 -1
- package/dist/config/index.d.cts +4 -7
- package/dist/config/index.d.mts +4 -7
- package/dist/config/index.mjs +1 -1
- package/dist/config/projectTrust.cjs +1 -2
- package/dist/config/projectTrust.d.cts +2 -14
- package/dist/config/projectTrust.d.mts +2 -14
- package/dist/config/projectTrust.mjs +1 -2
- package/dist/entries/autoStop.cjs +1 -2
- package/dist/entries/autoStop.d.cts +2 -6
- package/dist/entries/autoStop.d.mts +2 -7
- package/dist/entries/autoStop.mjs +1 -2
- package/dist/entries/components/matrixPicker.cjs +1 -2
- package/dist/entries/components/matrixPicker.d.cts +2 -55
- package/dist/entries/components/matrixPicker.d.mts +2 -55
- package/dist/entries/components/matrixPicker.mjs +1 -2
- package/dist/entries/components/skillsOverlay.cjs +1 -4
- package/dist/entries/components/skillsOverlay.d.cts +2 -58
- package/dist/entries/components/skillsOverlay.d.mts +2 -58
- package/dist/entries/components/skillsOverlay.mjs +1 -4
- package/dist/entries/domains.cjs +1 -2
- package/dist/entries/domains.d.cts +2 -10
- package/dist/entries/domains.d.mts +2 -10
- package/dist/entries/domains.mjs +1 -2
- package/dist/entries/doom.cjs +1 -2
- package/dist/entries/doom.d.cts +2 -13
- package/dist/entries/doom.d.mts +2 -14
- package/dist/entries/doom.mjs +1 -2
- package/dist/entries/effort.cjs +1 -2
- package/dist/entries/effort.d.cts +2 -10
- package/dist/entries/effort.d.mts +2 -10
- package/dist/entries/effort.mjs +1 -2
- package/dist/entries/majorMode.cjs +1 -6
- package/dist/entries/majorMode.d.cts +2 -29
- package/dist/entries/majorMode.d.mts +2 -29
- package/dist/entries/majorMode.mjs +1 -6
- 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/notifications.cjs +1 -2
- package/dist/entries/notifications.d.cts +2 -13
- package/dist/entries/notifications.d.mts +2 -13
- package/dist/entries/notifications.mjs +1 -2
- package/dist/entries/ollamaProvider.cjs +1 -2
- package/dist/entries/ollamaProvider.d.cts +2 -6
- package/dist/entries/ollamaProvider.d.mts +2 -7
- package/dist/entries/ollamaProvider.mjs +1 -2
- package/dist/entries/persona.cjs +1 -2
- package/dist/entries/persona.d.cts +2 -14
- package/dist/entries/persona.d.mts +2 -15
- package/dist/entries/persona.mjs +1 -2
- package/dist/entries/profile.cjs +1 -3
- package/dist/entries/profile.d.cts +2 -16
- package/dist/entries/profile.d.mts +2 -16
- package/dist/entries/profile.mjs +1 -3
- package/dist/entries/repositoryHooks.cjs +1 -9
- package/dist/entries/repositoryHooks.d.cts +2 -7
- package/dist/entries/repositoryHooks.d.mts +2 -8
- package/dist/entries/repositoryHooks.mjs +1 -9
- package/dist/entries/skills.cjs +1 -2
- package/dist/entries/skills.d.cts +2 -34
- package/dist/entries/skills.d.mts +2 -34
- package/dist/entries/skills.mjs +1 -2
- package/dist/entries/styleSystem.cjs +1 -4
- package/dist/entries/styleSystem.d.cts +2 -32
- package/dist/entries/styleSystem.d.mts +2 -32
- package/dist/entries/styleSystem.mjs +1 -4
- package/dist/extensions/entries/autoStop.cjs +2 -0
- package/dist/extensions/entries/autoStop.cjs.map +1 -0
- package/dist/extensions/entries/autoStop.d.cts +7 -0
- package/dist/extensions/entries/autoStop.d.cts.map +1 -0
- package/dist/extensions/entries/autoStop.d.mts +7 -0
- package/dist/extensions/entries/autoStop.d.mts.map +1 -0
- package/dist/extensions/entries/autoStop.mjs +2 -0
- package/dist/extensions/entries/autoStop.mjs.map +1 -0
- package/dist/extensions/entries/cacheOptimizer.mjs +2 -0
- package/dist/extensions/entries/cacheOptimizer.mjs.map +1 -0
- package/dist/extensions/entries/components/matrixPicker.cjs +2 -0
- package/dist/extensions/entries/components/matrixPicker.cjs.map +1 -0
- package/dist/extensions/entries/components/matrixPicker.d.cts +55 -0
- package/dist/extensions/entries/components/matrixPicker.d.cts.map +1 -0
- package/dist/extensions/entries/components/matrixPicker.d.mts +55 -0
- package/dist/extensions/entries/components/matrixPicker.d.mts.map +1 -0
- package/dist/extensions/entries/components/matrixPicker.mjs +2 -0
- package/dist/extensions/entries/components/matrixPicker.mjs.map +1 -0
- package/dist/extensions/entries/components/skillsOverlay.cjs +4 -0
- package/dist/extensions/entries/components/skillsOverlay.cjs.map +1 -0
- package/dist/extensions/entries/components/skillsOverlay.d.cts +58 -0
- package/dist/extensions/entries/components/skillsOverlay.d.cts.map +1 -0
- package/dist/extensions/entries/components/skillsOverlay.d.mts +58 -0
- package/dist/extensions/entries/components/skillsOverlay.d.mts.map +1 -0
- package/dist/extensions/entries/components/skillsOverlay.mjs +4 -0
- package/dist/extensions/entries/components/skillsOverlay.mjs.map +1 -0
- package/dist/extensions/entries/domains.cjs +2 -0
- package/dist/extensions/entries/domains.cjs.map +1 -0
- package/dist/extensions/entries/domains.d.cts +18 -0
- package/dist/extensions/entries/domains.d.cts.map +1 -0
- package/dist/extensions/entries/domains.d.mts +18 -0
- package/dist/extensions/entries/domains.d.mts.map +1 -0
- package/dist/extensions/entries/domains.mjs +2 -0
- package/dist/extensions/entries/domains.mjs.map +1 -0
- package/dist/extensions/entries/doom.cjs +2 -0
- package/dist/extensions/entries/doom.cjs.map +1 -0
- package/dist/extensions/entries/doom.d.cts +14 -0
- package/dist/extensions/entries/doom.d.cts.map +1 -0
- package/dist/extensions/entries/doom.d.mts +14 -0
- package/dist/extensions/entries/doom.d.mts.map +1 -0
- package/dist/extensions/entries/doom.mjs +2 -0
- package/dist/extensions/entries/doom.mjs.map +1 -0
- package/dist/extensions/entries/effort.cjs +2 -0
- package/dist/extensions/entries/effort.cjs.map +1 -0
- package/dist/extensions/entries/effort.d.cts +10 -0
- package/dist/extensions/entries/effort.d.cts.map +1 -0
- package/dist/extensions/entries/effort.d.mts +10 -0
- package/dist/extensions/entries/effort.d.mts.map +1 -0
- package/dist/extensions/entries/effort.mjs +2 -0
- package/dist/extensions/entries/effort.mjs.map +1 -0
- package/dist/extensions/entries/majorMode.cjs +6 -0
- package/dist/extensions/entries/majorMode.cjs.map +1 -0
- package/dist/extensions/entries/majorMode.d.cts +27 -0
- package/dist/extensions/entries/majorMode.d.cts.map +1 -0
- package/dist/extensions/entries/majorMode.d.mts +27 -0
- package/dist/extensions/entries/majorMode.d.mts.map +1 -0
- package/dist/extensions/entries/majorMode.mjs +6 -0
- package/dist/extensions/entries/majorMode.mjs.map +1 -0
- package/dist/extensions/entries/modeCatalog.cjs +2 -0
- package/dist/extensions/entries/modeCatalog.cjs.map +1 -0
- package/dist/extensions/entries/modeCatalog.d.cts +7 -0
- package/dist/extensions/entries/modeCatalog.d.cts.map +1 -0
- package/dist/extensions/entries/modeCatalog.d.mts +7 -0
- package/dist/extensions/entries/modeCatalog.d.mts.map +1 -0
- package/dist/extensions/entries/modeCatalog.mjs +2 -0
- package/dist/extensions/entries/modeCatalog.mjs.map +1 -0
- package/dist/extensions/entries/notifications.cjs +2 -0
- package/dist/extensions/entries/notifications.cjs.map +1 -0
- package/dist/extensions/entries/notifications.d.cts +14 -0
- package/dist/extensions/entries/notifications.d.cts.map +1 -0
- package/dist/extensions/entries/notifications.d.mts +14 -0
- package/dist/extensions/entries/notifications.d.mts.map +1 -0
- package/dist/extensions/entries/notifications.mjs +2 -0
- package/dist/extensions/entries/notifications.mjs.map +1 -0
- package/dist/extensions/entries/ollamaProvider.cjs +2 -0
- package/dist/extensions/entries/ollamaProvider.cjs.map +1 -0
- package/dist/extensions/entries/ollamaProvider.d.cts +7 -0
- package/dist/extensions/entries/ollamaProvider.d.cts.map +1 -0
- package/dist/extensions/entries/ollamaProvider.d.mts +7 -0
- package/dist/extensions/entries/ollamaProvider.d.mts.map +1 -0
- package/dist/extensions/entries/ollamaProvider.mjs +2 -0
- package/dist/extensions/entries/ollamaProvider.mjs.map +1 -0
- package/dist/extensions/entries/persona.cjs +2 -0
- package/dist/extensions/entries/persona.cjs.map +1 -0
- package/dist/extensions/entries/persona.d.cts +15 -0
- package/dist/extensions/entries/persona.d.cts.map +1 -0
- package/dist/extensions/entries/persona.d.mts +15 -0
- package/dist/extensions/entries/persona.d.mts.map +1 -0
- package/dist/extensions/entries/persona.mjs +2 -0
- package/dist/extensions/entries/persona.mjs.map +1 -0
- package/dist/extensions/entries/profile.cjs +3 -0
- package/dist/extensions/entries/profile.cjs.map +1 -0
- package/dist/extensions/entries/profile.d.cts +18 -0
- package/dist/extensions/entries/profile.d.cts.map +1 -0
- package/dist/extensions/entries/profile.d.mts +18 -0
- package/dist/extensions/entries/profile.d.mts.map +1 -0
- package/dist/extensions/entries/profile.mjs +3 -0
- package/dist/extensions/entries/profile.mjs.map +1 -0
- package/dist/extensions/entries/repositoryHooks.cjs +9 -0
- package/dist/extensions/entries/repositoryHooks.cjs.map +1 -0
- package/dist/extensions/entries/repositoryHooks.d.cts +8 -0
- package/dist/extensions/entries/repositoryHooks.d.cts.map +1 -0
- package/dist/extensions/entries/repositoryHooks.d.mts +8 -0
- package/dist/extensions/entries/repositoryHooks.d.mts.map +1 -0
- package/dist/extensions/entries/repositoryHooks.mjs +9 -0
- package/dist/extensions/entries/repositoryHooks.mjs.map +1 -0
- package/dist/extensions/entries/shellTitleController.cjs +27 -0
- package/dist/extensions/entries/shellTitleController.cjs.map +1 -0
- package/dist/extensions/entries/shellTitleController.d.cts +11 -0
- package/dist/extensions/entries/shellTitleController.d.cts.map +1 -0
- package/dist/extensions/entries/shellTitleController.d.mts +11 -0
- package/dist/extensions/entries/shellTitleController.d.mts.map +1 -0
- package/dist/extensions/entries/shellTitleController.mjs +27 -0
- package/dist/extensions/entries/shellTitleController.mjs.map +1 -0
- package/dist/extensions/entries/skills.cjs +4 -0
- package/dist/extensions/entries/skills.cjs.map +1 -0
- package/dist/extensions/entries/skills.d.cts +34 -0
- package/dist/extensions/entries/skills.d.cts.map +1 -0
- package/dist/extensions/entries/skills.d.mts +34 -0
- package/dist/extensions/entries/skills.d.mts.map +1 -0
- package/dist/extensions/entries/skills.mjs +4 -0
- package/dist/extensions/entries/skills.mjs.map +1 -0
- package/dist/extensions/entries/styleSystem.cjs +4 -0
- package/dist/extensions/entries/styleSystem.cjs.map +1 -0
- package/dist/extensions/entries/styleSystem.d.cts +32 -0
- package/dist/extensions/entries/styleSystem.d.cts.map +1 -0
- package/dist/extensions/entries/styleSystem.d.mts +32 -0
- package/dist/extensions/entries/styleSystem.d.mts.map +1 -0
- package/dist/extensions/entries/styleSystem.mjs +4 -0
- package/dist/{entries/styleSystem.cjs.map → extensions/entries/styleSystem.mjs.map} +1 -1
- 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/extensions/services/domainSwitchHandoff.cjs +2 -0
- package/dist/extensions/services/domainSwitchHandoff.cjs.map +1 -0
- package/dist/extensions/services/domainSwitchHandoff.mjs +2 -0
- package/dist/extensions/services/domainSwitchHandoff.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +33 -29
- package/dist/index.d.mts +33 -29
- package/dist/index.mjs +1 -1
- package/dist/logSinkTelemetry.cjs +1 -2
- package/dist/logSinkTelemetry.d.cts +2 -51
- package/dist/logSinkTelemetry.d.mts +2 -51
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/pi-cache-optimizer-D9beVnnH.mjs +50 -0
- package/dist/pi-cache-optimizer-D9beVnnH.mjs.map +1 -0
- package/dist/schemas/domainVoiceTools.cjs +2 -0
- package/dist/schemas/domainVoiceTools.cjs.map +1 -0
- package/dist/schemas/domainVoiceTools.mjs +2 -0
- package/dist/schemas/domainVoiceTools.mjs.map +1 -0
- package/dist/schemas/majorModeVoiceTools.cjs +2 -0
- package/dist/schemas/majorModeVoiceTools.cjs.map +1 -0
- package/dist/schemas/majorModeVoiceTools.mjs +2 -0
- package/dist/schemas/majorModeVoiceTools.mjs.map +1 -0
- package/dist/services/compatibility/antigravity.cjs +1 -2
- package/dist/services/compatibility/antigravity.d.cts +2 -11
- package/dist/services/compatibility/antigravity.d.mts +2 -11
- package/dist/services/compatibility/antigravity.mjs +1 -2
- package/dist/services/compatibility/codex.cjs +1 -2
- package/dist/services/compatibility/codex.d.cts +2 -19
- package/dist/services/compatibility/codex.d.mts +2 -19
- package/dist/services/compatibility/codex.mjs +1 -2
- package/dist/services/compatibility/index.cjs +1 -2
- package/dist/services/compatibility/index.d.cts +6 -16
- package/dist/services/compatibility/index.d.mts +6 -16
- package/dist/services/compatibility/index.mjs +1 -2
- package/dist/services/compatibility/process.cjs +1 -2
- package/dist/services/compatibility/process.d.cts +2 -35
- package/dist/services/compatibility/process.d.mts +2 -35
- package/dist/services/compatibility/process.mjs +1 -2
- package/dist/services/compatibility/shared.cjs +1 -2
- package/dist/services/compatibility/shared.d.cts +2 -33
- package/dist/services/compatibility/shared.d.mts +2 -33
- package/dist/services/compatibility/shared.mjs +1 -2
- package/dist/services/compatibilityContext.cjs +1 -2
- package/dist/services/compatibilityContext.d.cts +2 -23
- package/dist/services/compatibilityContext.d.mts +2 -23
- package/dist/services/compatibilityContext.mjs +1 -2
- package/dist/services/composer.cjs +1 -2
- package/dist/services/composer.d.cts +4 -135
- package/dist/services/composer.d.mts +4 -135
- package/dist/services/composer.mjs +1 -2
- package/dist/services/config/index.cjs +1 -0
- package/dist/services/config/index.d.cts +7 -0
- package/dist/services/config/index.d.mts +7 -0
- package/dist/services/config/index.mjs +1 -0
- package/dist/services/config/projectTrust.cjs +2 -0
- package/dist/services/config/projectTrust.cjs.map +1 -0
- package/dist/services/config/projectTrust.d.cts +14 -0
- package/dist/services/config/projectTrust.d.cts.map +1 -0
- package/dist/services/config/projectTrust.d.mts +14 -0
- package/dist/services/config/projectTrust.d.mts.map +1 -0
- package/dist/services/config/projectTrust.mjs +2 -0
- package/dist/services/config/projectTrust.mjs.map +1 -0
- package/dist/services/extensionAssembler.cjs +1 -1
- package/dist/services/extensionAssembler.cjs.map +1 -1
- package/dist/services/extensionAssembler.d.cts +13 -6
- package/dist/services/extensionAssembler.d.cts.map +1 -1
- package/dist/services/extensionAssembler.d.mts +13 -6
- package/dist/services/extensionAssembler.d.mts.map +1 -1
- package/dist/services/extensionAssembler.mjs +1 -1
- package/dist/services/extensionAssembler.mjs.map +1 -1
- package/dist/services/harnessContext.cjs +1 -2
- package/dist/services/harnessContext.d.cts +2 -61
- package/dist/services/harnessContext.d.mts +2 -61
- package/dist/services/harnessContext.mjs +1 -2
- package/dist/services/index.cjs +1 -1
- package/dist/services/index.d.cts +18 -14
- package/dist/services/index.d.mts +18 -14
- package/dist/services/index.mjs +1 -1
- package/dist/services/matrixSwitcher.cjs +1 -2
- package/dist/services/matrixSwitcher.d.cts +2 -46
- package/dist/services/matrixSwitcher.d.mts +2 -46
- package/dist/services/matrixSwitcher.mjs +1 -2
- package/dist/services/mcpFilter.cjs +1 -3
- package/dist/services/mcpFilter.d.cts +2 -40
- package/dist/services/mcpFilter.d.mts +2 -40
- package/dist/services/mcpFilter.mjs +1 -3
- package/dist/services/modeCatalog.cjs +2 -0
- package/dist/services/modeCatalog.cjs.map +1 -0
- package/dist/services/modeCatalog.d.cts +18 -0
- package/dist/services/modeCatalog.d.cts.map +1 -0
- package/dist/services/modeCatalog.d.mts +18 -0
- package/dist/services/modeCatalog.d.mts.map +1 -0
- package/dist/services/modeCatalog.mjs +2 -0
- package/dist/services/modeCatalog.mjs.map +1 -0
- package/dist/services/piSettings.cjs +1 -2
- package/dist/services/piSettings.d.cts +2 -24
- package/dist/services/piSettings.d.mts +2 -24
- package/dist/services/piSettings.mjs +1 -2
- package/dist/services/resourceCollector.cjs +1 -3
- package/dist/services/resourceCollector.d.cts +2 -23
- package/dist/services/resourceCollector.d.mts +2 -23
- package/dist/services/resourceCollector.mjs +1 -3
- package/dist/services/skillCatalog.cjs +1 -2
- package/dist/services/skillCatalog.d.cts +2 -56
- package/dist/services/skillCatalog.d.mts +2 -56
- package/dist/services/skillCatalog.mjs +1 -2
- package/dist/services/skillSources.cjs +1 -2
- package/dist/services/skillSources.d.cts +2 -24
- package/dist/services/skillSources.d.mts +2 -24
- package/dist/services/skillSources.mjs +1 -2
- package/dist/services/syncState.cjs +1 -2
- package/dist/services/syncState.d.cts +3 -133
- package/dist/services/syncState.d.mts +3 -133
- package/dist/services/syncState.mjs +1 -2
- package/dist/services/tools/toolNames.cjs +2 -0
- package/dist/services/tools/toolNames.cjs.map +1 -0
- package/dist/services/tools/toolNames.d.cts +25 -0
- package/dist/services/tools/toolNames.d.cts.map +1 -0
- package/dist/services/tools/toolNames.d.mts +25 -0
- package/dist/services/tools/toolNames.d.mts.map +1 -0
- package/dist/services/tools/toolNames.mjs +2 -0
- package/dist/services/tools/toolNames.mjs.map +1 -0
- package/dist/{interfaces → types/interfaces}/compatibility.d.cts +1 -1
- package/dist/types/interfaces/compatibility.d.cts.map +1 -0
- package/dist/{interfaces → types/interfaces}/compatibility.d.mts +1 -1
- package/dist/types/interfaces/compatibility.d.mts.map +1 -0
- package/dist/{interfaces → types/interfaces}/harness.d.cts +6 -2
- package/dist/types/interfaces/harness.d.cts.map +1 -0
- package/dist/{interfaces → types/interfaces}/harness.d.mts +6 -2
- package/dist/types/interfaces/harness.d.mts.map +1 -0
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +5 -5
- package/dist/utils/index.d.mts +5 -5
- package/dist/utils/index.mjs +1 -1
- package/dist/utils/json.cjs +1 -2
- package/dist/utils/json.d.cts +2 -23
- package/dist/utils/json.d.mts +2 -23
- package/dist/utils/json.mjs +1 -2
- package/dist/utils/moduleResolution.cjs +1 -2
- package/dist/utils/moduleResolution.d.cts +2 -56
- package/dist/utils/moduleResolution.d.mts +2 -56
- package/dist/utils/moduleResolution.mjs +1 -2
- package/dist/utils/repository.cjs +1 -2
- package/dist/utils/repository.d.cts +2 -21
- package/dist/utils/repository.d.mts +2 -21
- package/dist/utils/repository.mjs +1 -2
- package/dist/utils/toolNames.cjs +1 -2
- package/dist/utils/toolNames.d.cts +2 -25
- package/dist/utils/toolNames.d.mts +2 -25
- package/dist/utils/toolNames.mjs +1 -2
- package/package.json +59 -37
- package/dist/cli/cliApp.cjs.map +0 -1
- package/dist/cli/cliApp.d.cts.map +0 -1
- package/dist/cli/cliApp.d.mts.map +0 -1
- package/dist/cli/cliApp.mjs.map +0 -1
- package/dist/cli/compatibilityOptions.cjs.map +0 -1
- package/dist/cli/compatibilityOptions.d.cts.map +0 -1
- package/dist/cli/compatibilityOptions.d.mts.map +0 -1
- package/dist/cli/compatibilityOptions.mjs.map +0 -1
- package/dist/cli/help.d.cts.map +0 -1
- package/dist/cli/help.d.mts.map +0 -1
- package/dist/cli/matrixOptions.cjs.map +0 -1
- package/dist/cli/matrixOptions.d.cts.map +0 -1
- package/dist/cli/matrixOptions.d.mts.map +0 -1
- package/dist/cli/matrixOptions.mjs.map +0 -1
- package/dist/cli/options.cjs.map +0 -1
- package/dist/cli/options.d.cts.map +0 -1
- package/dist/cli/options.d.mts.map +0 -1
- package/dist/cli/options.mjs.map +0 -1
- package/dist/commands/buildCommand.d.cts +0 -23
- package/dist/commands/buildCommand.d.cts.map +0 -1
- package/dist/commands/buildCommand.d.mts +0 -23
- package/dist/commands/buildCommand.d.mts.map +0 -1
- package/dist/config/harnessState.cjs.map +0 -1
- package/dist/config/harnessState.d.cts.map +0 -1
- package/dist/config/harnessState.d.mts.map +0 -1
- package/dist/config/harnessState.mjs.map +0 -1
- package/dist/config/projectTrust.cjs.map +0 -1
- package/dist/config/projectTrust.d.cts.map +0 -1
- package/dist/config/projectTrust.d.mts.map +0 -1
- package/dist/config/projectTrust.mjs.map +0 -1
- package/dist/entries/addDirCompatibility.cjs +0 -2
- package/dist/entries/addDirCompatibility.cjs.map +0 -1
- package/dist/entries/addDirCompatibility.d.cts +0 -13
- package/dist/entries/addDirCompatibility.d.cts.map +0 -1
- package/dist/entries/addDirCompatibility.d.mts +0 -14
- package/dist/entries/addDirCompatibility.d.mts.map +0 -1
- package/dist/entries/addDirCompatibility.mjs +0 -2
- package/dist/entries/addDirCompatibility.mjs.map +0 -1
- package/dist/entries/autoStop.cjs.map +0 -1
- package/dist/entries/autoStop.d.cts.map +0 -1
- package/dist/entries/autoStop.d.mts.map +0 -1
- package/dist/entries/autoStop.mjs.map +0 -1
- package/dist/entries/components/matrixPicker.cjs.map +0 -1
- package/dist/entries/components/matrixPicker.d.cts.map +0 -1
- package/dist/entries/components/matrixPicker.d.mts.map +0 -1
- package/dist/entries/components/matrixPicker.mjs.map +0 -1
- package/dist/entries/components/skillsOverlay.cjs.map +0 -1
- package/dist/entries/components/skillsOverlay.d.cts.map +0 -1
- package/dist/entries/components/skillsOverlay.d.mts.map +0 -1
- package/dist/entries/components/skillsOverlay.mjs.map +0 -1
- package/dist/entries/domains.cjs.map +0 -1
- package/dist/entries/domains.d.cts.map +0 -1
- package/dist/entries/domains.d.mts.map +0 -1
- package/dist/entries/domains.mjs.map +0 -1
- package/dist/entries/doom.cjs.map +0 -1
- package/dist/entries/doom.d.cts.map +0 -1
- package/dist/entries/doom.d.mts.map +0 -1
- package/dist/entries/doom.mjs.map +0 -1
- package/dist/entries/effort.cjs.map +0 -1
- package/dist/entries/effort.d.cts.map +0 -1
- package/dist/entries/effort.d.mts.map +0 -1
- package/dist/entries/effort.mjs.map +0 -1
- package/dist/entries/majorMode.cjs.map +0 -1
- package/dist/entries/majorMode.d.cts.map +0 -1
- package/dist/entries/majorMode.d.mts.map +0 -1
- package/dist/entries/majorMode.mjs.map +0 -1
- package/dist/entries/notifications.cjs.map +0 -1
- package/dist/entries/notifications.d.cts.map +0 -1
- package/dist/entries/notifications.d.mts.map +0 -1
- package/dist/entries/notifications.mjs.map +0 -1
- package/dist/entries/ollamaProvider.cjs.map +0 -1
- package/dist/entries/ollamaProvider.d.cts.map +0 -1
- package/dist/entries/ollamaProvider.d.mts.map +0 -1
- package/dist/entries/ollamaProvider.mjs.map +0 -1
- package/dist/entries/persona.cjs.map +0 -1
- package/dist/entries/persona.d.cts.map +0 -1
- package/dist/entries/persona.d.mts.map +0 -1
- package/dist/entries/persona.mjs.map +0 -1
- package/dist/entries/profile.cjs.map +0 -1
- package/dist/entries/profile.d.cts.map +0 -1
- package/dist/entries/profile.d.mts.map +0 -1
- package/dist/entries/profile.mjs.map +0 -1
- package/dist/entries/repositoryHooks.cjs.map +0 -1
- package/dist/entries/repositoryHooks.d.cts.map +0 -1
- package/dist/entries/repositoryHooks.d.mts.map +0 -1
- package/dist/entries/repositoryHooks.mjs.map +0 -1
- package/dist/entries/skills.cjs.map +0 -1
- package/dist/entries/skills.d.cts.map +0 -1
- package/dist/entries/skills.d.mts.map +0 -1
- package/dist/entries/skills.mjs.map +0 -1
- package/dist/entries/styleSystem.d.cts.map +0 -1
- package/dist/entries/styleSystem.d.mts.map +0 -1
- package/dist/entries/styleSystem.mjs.map +0 -1
- package/dist/interfaces/compatibility.d.cts.map +0 -1
- package/dist/interfaces/compatibility.d.mts.map +0 -1
- package/dist/interfaces/harness.d.cts.map +0 -1
- package/dist/interfaces/harness.d.mts.map +0 -1
- package/dist/logSinkTelemetry.cjs.map +0 -1
- package/dist/logSinkTelemetry.d.cts.map +0 -1
- package/dist/logSinkTelemetry.d.mts.map +0 -1
- package/dist/logSinkTelemetry.mjs.map +0 -1
- package/dist/node_modules/.pnpm/@juicesharp_rpiv-ask-user-question@2.2.0_@earendil-works_pi-coding-agent@0.84.1_support_6ba1249e24a50b62791c1c91c9f324c6/node_modules/@juicesharp/rpiv-ask-user-question/events.cjs +0 -2
- package/dist/node_modules/.pnpm/@juicesharp_rpiv-ask-user-question@2.2.0_@earendil-works_pi-coding-agent@0.84.1_support_6ba1249e24a50b62791c1c91c9f324c6/node_modules/@juicesharp/rpiv-ask-user-question/events.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@juicesharp_rpiv-ask-user-question@2.2.0_@earendil-works_pi-coding-agent@0.84.1_support_6ba1249e24a50b62791c1c91c9f324c6/node_modules/@juicesharp/rpiv-ask-user-question/events.mjs +0 -2
- package/dist/node_modules/.pnpm/@juicesharp_rpiv-ask-user-question@2.2.0_@earendil-works_pi-coding-agent@0.84.1_support_6ba1249e24a50b62791c1c91c9f324c6/node_modules/@juicesharp/rpiv-ask-user-question/events.mjs.map +0 -1
- package/dist/services/compatibility/index.cjs.map +0 -1
- package/dist/services/compatibility/index.mjs.map +0 -1
- package/dist/services/compatibilityContext.cjs.map +0 -1
- package/dist/services/compatibilityContext.mjs.map +0 -1
- package/dist/services/composer.cjs.map +0 -1
- package/dist/services/composer.d.cts.map +0 -1
- package/dist/services/composer.d.mts.map +0 -1
- package/dist/services/composer.mjs.map +0 -1
- package/dist/services/extensionCompiler.cjs +0 -3
- package/dist/services/extensionCompiler.cjs.map +0 -1
- package/dist/services/extensionCompiler.mjs +0 -3
- package/dist/services/extensionCompiler.mjs.map +0 -1
- package/dist/services/harnessContext.cjs.map +0 -1
- package/dist/services/harnessContext.mjs.map +0 -1
- package/dist/services/matrixSwitcher.cjs.map +0 -1
- package/dist/services/matrixSwitcher.mjs.map +0 -1
- package/dist/services/mcpFilter.cjs.map +0 -1
- package/dist/services/mcpFilter.d.cts.map +0 -1
- package/dist/services/mcpFilter.d.mts.map +0 -1
- package/dist/services/mcpFilter.mjs.map +0 -1
- package/dist/services/piSettings.cjs.map +0 -1
- package/dist/services/piSettings.d.cts.map +0 -1
- package/dist/services/piSettings.d.mts.map +0 -1
- package/dist/services/piSettings.mjs.map +0 -1
- package/dist/services/resourceCollector.cjs.map +0 -1
- package/dist/services/resourceCollector.d.cts.map +0 -1
- package/dist/services/resourceCollector.d.mts.map +0 -1
- package/dist/services/resourceCollector.mjs.map +0 -1
- package/dist/services/runtimeBundle.cjs +0 -2
- package/dist/services/runtimeBundle.cjs.map +0 -1
- package/dist/services/runtimeBundle.d.cts.map +0 -1
- package/dist/services/runtimeBundle.d.mts.map +0 -1
- package/dist/services/runtimeBundle.mjs +0 -2
- package/dist/services/runtimeBundle.mjs.map +0 -1
- package/dist/services/skillCatalog.cjs.map +0 -1
- package/dist/services/skillCatalog.d.cts.map +0 -1
- package/dist/services/skillCatalog.d.mts.map +0 -1
- package/dist/services/skillCatalog.mjs.map +0 -1
- package/dist/services/syncState.cjs.map +0 -1
- package/dist/services/syncState.d.cts.map +0 -1
- package/dist/services/syncState.d.mts.map +0 -1
- package/dist/services/syncState.mjs.map +0 -1
- package/dist/utils/json.cjs.map +0 -1
- package/dist/utils/json.d.cts.map +0 -1
- package/dist/utils/json.d.mts.map +0 -1
- package/dist/utils/json.mjs.map +0 -1
- package/dist/utils/moduleResolution.cjs.map +0 -1
- package/dist/utils/moduleResolution.d.cts.map +0 -1
- package/dist/utils/moduleResolution.d.mts.map +0 -1
- package/dist/utils/moduleResolution.mjs.map +0 -1
- package/dist/utils/repository.cjs.map +0 -1
- package/dist/utils/repository.d.cts.map +0 -1
- package/dist/utils/repository.d.mts.map +0 -1
- package/dist/utils/repository.mjs.map +0 -1
- package/dist/utils/toolNames.cjs.map +0 -1
- package/dist/utils/toolNames.d.cts.map +0 -1
- package/dist/utils/toolNames.d.mts.map +0 -1
- package/dist/utils/toolNames.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -2,358 +2,229 @@
|
|
|
2
2
|
|
|
3
3
|
**A coding agent that loads only the skills and tools you name.**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
migration or a landing page.
|
|
5
|
+
> It begins with one useful MCP server. Then another. Soon the agent fixing a heading
|
|
6
|
+
> wakes up with database tools, browser controls, and their small novel of schemas. This
|
|
7
|
+
> is our config.
|
|
9
8
|
|
|
10
|
-
Doompi
|
|
11
|
-
|
|
9
|
+
Doompi is a configuration framework for [Pi](https://github.com/earendil-works/pi)
|
|
10
|
+
tailored for people whose agent has one MCP server too many. It turns extensions, skills,
|
|
11
|
+
MCP servers, and system prompts into config instead of background noise.
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
Plugin systems scope what an agent knows. Nothing scopes what it can reach. Claude Code's
|
|
16
|
+
`enableAllProjectMcpServers` and static denylist are repository-wide. Doompi draws that
|
|
17
|
+
boundary around the session. Pick a major mode and some domains; add a profile if you want
|
|
18
|
+
one. Four YAML files decide what loads; `doompi --explain` tells you what got in, why, and
|
|
19
|
+
what it costs before launch.
|
|
20
|
+
|
|
21
|
+
It borrows its shape from [Doom Emacs Core](https://github.com/doomemacs/core): quick to
|
|
22
|
+
start, close to Pi, opinionated where defaults help, and easy to pull apart when they do
|
|
23
|
+
not. Use it as-is, build your own config on top, or raid it for parts.
|
|
12
24
|
|
|
13
25
|
## Install
|
|
14
26
|
|
|
15
27
|
```bash
|
|
16
|
-
npm install -g @agimon-ai/doompi
|
|
28
|
+
npm install -g @agimon-ai/doompi
|
|
17
29
|
```
|
|
18
30
|
|
|
19
|
-
|
|
31
|
+
The package pins and installs the upstream Pi version used by `dpi`.
|
|
20
32
|
|
|
21
|
-
|
|
22
|
-
doompi init # seed ~/.pi/.doom, once per machine
|
|
23
|
-
mkdir .doom && cp ~/.pi/.doom/*.yaml .doom/ # the repository config Doompi reads
|
|
24
|
-
doompi --explain # what would load, and why
|
|
25
|
-
doompi # start a session
|
|
26
|
-
```
|
|
33
|
+
## Try DoomPi without replacing your Pi setup
|
|
27
34
|
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
`dpi` is the comparison runner. Use it to try DoomPi beside your current `pi` customization
|
|
36
|
+
before registering anything in Pi's settings:
|
|
30
37
|
|
|
31
38
|
```bash
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
dpi init # create this repository's .doom configuration
|
|
40
|
+
dpi sync # resolve and synchronize the DoomPi experiment
|
|
41
|
+
dpi # run the DoomPi experiment
|
|
42
|
+
pi # run your existing Pi setup for comparison
|
|
35
43
|
```
|
|
36
44
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
resolves a declared configuration into a session rather than asking you to wire one up.
|
|
41
|
-
The three choices are independent: adding a domain requires no knowledge of major modes,
|
|
42
|
-
and swapping a profile changes nothing about either.
|
|
45
|
+
`dpi init` creates `.doom/config.yaml`, `.doom/modes.yaml`, `.doom/domains.yaml`, and
|
|
46
|
+
`.doom/profiles.yaml` in the current repository. It preserves existing files unless you pass
|
|
47
|
+
`--force` and does not create or change `.pi/settings.json`.
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
| **Major mode** | what the agent is wrapped in | `.doom/modes.yaml` |
|
|
47
|
-
| **Domains** | what it knows, and what it can reach | `.doom/domains.yaml` |
|
|
48
|
-
| **Profile** | who it speaks as | `.doom/profiles.yaml` |
|
|
49
|
+
`dpi sync` writes DoomPi's generated state, package alias, and theme resource, but it does
|
|
50
|
+
not register DoomPi in either normal Pi settings file.
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
`--domains development` are the same agent with different knowledge and a different reach,
|
|
52
|
-
not two different agents. That is the lever for keeping context small, and
|
|
53
|
-
[`--explain`](#minimal-context) prices it before you commit.
|
|
52
|
+
### Sync storage and worktrees
|
|
54
53
|
|
|
55
|
-
|
|
54
|
+
Generated sync artifacts are kept out of the repository at:
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
```text
|
|
57
|
+
~/.pi/.doom/sync/<repo-label>--<repo-id-32hex>/
|
|
58
|
+
shared-cache/objects/<full-build-sha256>/
|
|
59
|
+
worktrees/<worktree-label>--<worktree-id-32hex>/
|
|
60
|
+
```
|
|
62
61
|
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
The repository identity comes from Git's canonical common directory, while each
|
|
63
|
+
worktree gets its own identity. Linked worktrees therefore share immutable,
|
|
64
|
+
content-addressed build objects but never share state, `dist`, manifests, staged
|
|
65
|
+
resources, or per-process `run` files. Runtime loading uses only verified artifacts
|
|
66
|
+
materialized in the current worktree directory; it never loads directly from the
|
|
67
|
+
shared cache. The global `~/.pi/.doom/*.yaml` configuration and persistent
|
|
68
|
+
`~/.pi/.doom/plugin-cache` behavior are unchanged.
|
|
69
|
+
|
|
70
|
+
Older releases may have written state under `<repository>/.pi/doom`. That location
|
|
71
|
+
is a read-only fallback only when the corresponding home-scoped state is absent.
|
|
72
|
+
`doompi sync --check` reports that migration is required, and `doompi sync` rebuilds
|
|
73
|
+
into the home-scoped worktree namespace rather than copying the legacy files. DoomPi
|
|
74
|
+
does not automatically delete legacy, orphaned, or unused generated directories.
|
|
75
|
+
|
|
76
|
+
For a fair comparison, `dpi` lets Pi merge the same ordinary settings from
|
|
77
|
+
`~/.pi/agent/settings.json` and `<repo>/.pi/settings.json`. It then overlays only these
|
|
78
|
+
DoomPi-owned values in memory:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"extensions": ["@agimon-ai/doompi", "!extensions/**"],
|
|
83
|
+
"themes": ["themes/doom-pi-dark.json"],
|
|
84
|
+
"theme": "doom-pi-dark",
|
|
85
|
+
"quietStartup": true
|
|
86
|
+
}
|
|
87
|
+
```
|
|
65
88
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
itself.
|
|
89
|
+
Those four values are never written by `dpi`, including when Pi saves an unrelated option.
|
|
90
|
+
Every other value keeps Pi's normal global/project precedence and trust handling.
|
|
69
91
|
|
|
70
|
-
|
|
92
|
+
When you are comfortable with DoomPi and no longer need the side-by-side experiment, register
|
|
93
|
+
it for normal Pi:
|
|
71
94
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
the
|
|
95
|
+
```bash
|
|
96
|
+
doompi init # seed ~/.pi/.doom and Pi integration resources
|
|
97
|
+
doompi sync # register DoomPi in normal Pi settings
|
|
98
|
+
pi # DoomPi now starts through the regular Pi command
|
|
99
|
+
```
|
|
76
100
|
|
|
77
|
-
|
|
78
|
-
shaped](#workflows), with jobs, dependencies, steps, timeouts, and declared artifacts, so
|
|
79
|
-
the same job resolves the same way every time.
|
|
101
|
+
`doompi` remains available as an explicit harness when you want one-run matrix flags:
|
|
80
102
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
103
|
+
```bash
|
|
104
|
+
doompi --major-mode dev --domains development
|
|
105
|
+
doompi --domains marketing --profile marketing
|
|
106
|
+
doompi --domains analytics --explain
|
|
107
|
+
```
|
|
84
108
|
|
|
85
|
-
|
|
86
|
-
voice, and workflows ship in the box, but [core is not a
|
|
87
|
-
layer](#core-is-not-a-layer) and every opinion waits behind a layer or a domain.
|
|
109
|
+
## Philosophy
|
|
88
110
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
111
|
+
An agent does not need every tool for every job. Doompi separates the base session from
|
|
112
|
+
the things you switch on for a while: modes choose behavior, domains choose subject
|
|
113
|
+
matter, and profiles choose a point of view.
|
|
92
114
|
|
|
93
|
-
|
|
115
|
+
### Major and minor modes
|
|
94
116
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
resolution cost.
|
|
117
|
+
A major mode is the base config. It names the extension layers for development, marketing,
|
|
118
|
+
or whatever else you do. Define as many as you like; only one is active at a time, and you
|
|
119
|
+
can switch it without leaving the session.
|
|
99
120
|
|
|
100
|
-
|
|
101
|
-
|
|
121
|
+
Minor modes are battery-included switches inside that base. They start off, stack freely,
|
|
122
|
+
and keep their model tools and skills out of context until turned on. Doompi ships six:
|
|
102
123
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
124
|
+
- **Help mode** — expose package-owned guidance only while you need it.
|
|
125
|
+
- **Plan mode** — make the repository read-only while you agree on an approach.
|
|
126
|
+
- **Loop mode** — run a prompt now, then run it again on a schedule.
|
|
127
|
+
- **Goal mode** — keep one objective in view until it is done or dismissed.
|
|
128
|
+
- **Workflow mode** — run jobs with dependencies, timeouts, and artifacts.
|
|
129
|
+
- **Voice mode** — replace typing with local speech.
|
|
108
130
|
|
|
109
|
-
|
|
110
|
-
```
|
|
131
|
+
### Domains
|
|
111
132
|
|
|
112
|
-
A
|
|
113
|
-
|
|
114
|
-
extension set is composed on every load rather than frozen at startup, so a reload is
|
|
115
|
-
enough.
|
|
116
|
-
|
|
117
|
-
Both paths compose the extension set from the same function, `assembleExtensions`, which
|
|
118
|
-
owns load order. Two things differ. A synced session forces `--auto-stop` off, and it
|
|
119
|
-
reads mute from `DOOMPI_MUTE` instead of an argument.
|
|
120
|
-
|
|
121
|
-
`doompi build` is the launcher warm-up step, analogous to `doom build`: it resolves the
|
|
122
|
-
selected matrix, compiles its exact extension graph into one `.pi/doom/dist` ESM file,
|
|
123
|
-
and warms the persistent skill manifest without starting Pi or changing
|
|
124
|
-
`.pi/settings.json`. A sidecar manifest retains every original extension and exact
|
|
125
|
-
`SKILL.md` path, so resource discovery never depends on the bundle's location.
|
|
126
|
-
Launch still builds on a cache miss, so the command is optional; run it after installing
|
|
127
|
-
or upgrading Doom packages when first-input latency matters.
|
|
128
|
-
|
|
129
|
-
Syncing does not disturb the launcher. Pi merges the extensions a project declares with
|
|
130
|
-
the ones passed on the command line, so the synced entry stands down whenever it sees the
|
|
131
|
-
composed set already there, which is what the launcher and every detached subagent pass.
|
|
132
|
-
|
|
133
|
-
## For humans
|
|
134
|
-
|
|
135
|
-
### Leader Space
|
|
136
|
-
|
|
137
|
-
`@agimon-ai/doompi-ui` owns the leader state machine, rendering, conflict handling, and the
|
|
138
|
-
core bindings.
|
|
139
|
-
|
|
140
|
-
Space opens the leader **only when the draft is empty**. With text in the editor, space is
|
|
141
|
-
a space. `ctrl+space` opens the leader either way, and the draft survives the sequence, so
|
|
142
|
-
you never lose a half-written prompt to a keystroke. That is the space the human keeps.
|
|
143
|
-
|
|
144
|
-
Inside a sequence: `escape` cancels, `backspace` pops one segment, and any key that
|
|
145
|
-
matches nothing cancels. There is no partial state to get stuck in.
|
|
146
|
-
|
|
147
|
-
Core groups. Every level of the map renders in leader-key alphabetical order, so the table
|
|
148
|
-
below is the order you see:
|
|
149
|
-
|
|
150
|
-
| Key | Group | Bindings |
|
|
151
|
-
| --- | --------- | ---------------------------------------- |
|
|
152
|
-
| `e` | extension | `e` external editor, `t` tools browser |
|
|
153
|
-
| `h` | help | `h` hotkeys, `l` log metrics |
|
|
154
|
-
| `m` | models | `m` select, `n` next, `t` thinking level |
|
|
155
|
-
| `q` | quit | `q` exit |
|
|
156
|
-
| `s` | sessions | `f` fork, `n` new, `r` resume, `t` tree |
|
|
157
|
-
|
|
158
|
-
`t` is deliberately left out of core at the root and reserved for doom-task.
|
|
159
|
-
|
|
160
|
-
Optional feature extensions own the bindings for their own commands. The UI never
|
|
161
|
-
hardcodes a binding for a layer that may not be loaded, so a group appears only while its
|
|
162
|
-
extension is loaded:
|
|
163
|
-
|
|
164
|
-
| Chord | Source | Opens |
|
|
165
|
-
| -------------------- | ----------------------------- | ------------------------------ |
|
|
166
|
-
| `SPC a` | `@agimon-ai/doompi-team` | subagent fleet |
|
|
167
|
-
| `SPC h l` | `@agimon-ai/doompi-log` | log metrics |
|
|
168
|
-
| `SPC l s`, `SPC l l` | `@agimon-ai/doompi-loop` | start loops, list/stop loops |
|
|
169
|
-
| `SPC p p/c/d/f` | `@agimon-ai/doompi-plan` | plan normal/cancel/debug/fable |
|
|
170
|
-
| `SPC t t` | `@agimon-ai/doompi-task` | tasks |
|
|
171
|
-
| `SPC r r` | `@agimon-ai/doompi-runner` | background processes |
|
|
172
|
-
| `SPC v v` | `@agimon-ai/doompi-voice` | record or transcribe |
|
|
173
|
-
| `SPC w w/l/r` | `@agimon-ai/doompi-workflow` | launch/manage/recover |
|
|
174
|
-
| `SPC e f` | `@agimon-ai/doompi-file-edit` | session edits |
|
|
175
|
-
| `SPC e s` | `@agimon-ai/doompi` | skills catalog |
|
|
176
|
-
| `SPC e c` | `@agimon-ai/doompi-ui` | config panel (core binding) |
|
|
177
|
-
|
|
178
|
-
Contributions go through the public `@agimon-ai/doompi-ui/leader` API:
|
|
179
|
-
|
|
180
|
-
```ts
|
|
181
|
-
registerDoomLeaderContribution(pi, {
|
|
182
|
-
source: '@agimon-ai/doompi-log',
|
|
183
|
-
bindings: [
|
|
184
|
-
{
|
|
185
|
-
id: 'log.metrics',
|
|
186
|
-
path: [
|
|
187
|
-
{ key: 'h', label: 'help', order: 70 },
|
|
188
|
-
{ key: 'l', label: 'logs', detail: 'telemetry' },
|
|
189
|
-
],
|
|
190
|
-
command: { name: 'log-metrics' },
|
|
191
|
-
},
|
|
192
|
-
],
|
|
193
|
-
});
|
|
194
|
-
```
|
|
133
|
+
A domain is a named group of Pi plugins. It carries the skills and MCP servers for one
|
|
134
|
+
kind of work, and `/domains` switches it while the session is running.
|
|
195
135
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
stay owned by the extension that registered the slash command; actions route back to the
|
|
200
|
-
contributor through `registerDoomLeaderActionHandlers`, which is what doom-plan uses.
|
|
201
|
-
|
|
202
|
-
The map is deterministic because the registry is strict:
|
|
203
|
-
|
|
204
|
-
- Keys are a single lowercase alphanumeric character, paths are at most four segments.
|
|
205
|
-
- Shared group prefixes must agree on label, detail, and order, or the contribution is
|
|
206
|
-
rejected.
|
|
207
|
-
- Exact chord conflicts are rejected rather than silently overridden. A conflict in a core
|
|
208
|
-
binding throws; a conflict from a contributor produces a diagnostic and a warning.
|
|
209
|
-
- Re-registering the same `source` replaces that source's complete binding set. Registering
|
|
210
|
-
an empty set removes it.
|
|
211
|
-
- Rebuilds sort by source name then binding id, so load order does not affect the result.
|
|
212
|
-
- Options render in leader-key alphabetical order at every level. A segment's `order` is
|
|
213
|
-
group identity that shared prefixes must agree on, not a display position.
|
|
214
|
-
|
|
215
|
-
Registration runs over Pi's shared extension event bus with a 250 ms timeout. A timeout is
|
|
216
|
-
swallowed, so an extension loaded without the UI degrades quietly instead of failing.
|
|
217
|
-
|
|
218
|
-
### Major modes, domains, profiles
|
|
219
|
-
|
|
220
|
-
Three choices, three files, committed to git. They are independent. Adding a domain
|
|
221
|
-
requires no knowledge of major modes, and swapping a profile changes nothing about either.
|
|
222
|
-
|
|
223
|
-
| Choice | Loads | Declared in |
|
|
224
|
-
| --------------- | ------------------------------------- | --------------------- |
|
|
225
|
-
| **Major modes** | a named set of layers | `.doom/modes.yaml` |
|
|
226
|
-
| **Domains** | plugins, meaning skills and MCP | `.doom/domains.yaml` |
|
|
227
|
-
| **Profiles** | a persona and the brand it speaks for | `.doom/profiles.yaml` |
|
|
228
|
-
|
|
229
|
-
**Layers are protection and steering.** A layer is a set of Pi extensions plus a set of
|
|
230
|
-
hook groups. The extensions add behavior the agent runs with; the hooks fire around its
|
|
231
|
-
tool calls and can block it, warn it, or steer it back. You define the set you want, along
|
|
232
|
-
the lines of `guardrails`, `lint`, `code-intel`, `team`, `plan-mode`, `runner`, and
|
|
233
|
-
`ask-user`. The hooks themselves live in `.doom/hooks.yaml`, one registry shared by every
|
|
234
|
-
frontend, where a group is either `core` and always loads, or is pulled in by whichever
|
|
235
|
-
layer wants it.
|
|
236
|
-
|
|
237
|
-
**A major mode is the one you actually pick.** You do not assemble layers one by one at the
|
|
238
|
-
prompt. You select one named major mode with `--major-mode <name>`, and
|
|
239
|
-
`.doom/modes.yaml` says which layers it contains. A session has exactly one, the way
|
|
240
|
-
an Emacs buffer has exactly one major mode. The file can choose the fallback without
|
|
241
|
-
renaming that mode:
|
|
136
|
+
Plugins are catalogued once and domains refer to their names. A configured root may be a
|
|
137
|
+
Codex-compatible marketplace or a folder whose direct children are plugins, so a repository
|
|
138
|
+
with many plugins does not need one entry per directory:
|
|
242
139
|
|
|
243
140
|
```yaml
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
`defaultMajorMode`. Omitting the field preserves the compatible `copilot` fallback.
|
|
141
|
+
plugins:
|
|
142
|
+
roots: [plugins]
|
|
143
|
+
entries:
|
|
144
|
+
remote-review:
|
|
145
|
+
source: url
|
|
146
|
+
url: https://github.com/acme/review-plugin.git
|
|
147
|
+
ref: v1.2.0
|
|
252
148
|
|
|
253
|
-
The flag is `--major-mode` and not `--mode` because Pi already owns `--mode` for its output
|
|
254
|
-
mode (`text`, `json`, `rpc`), and for any other value it consumes the argument and ignores
|
|
255
|
-
it without a diagnostic. Use `--output-format` for Pi's output mode.
|
|
256
|
-
|
|
257
|
-
**Domains are plugins, and a plugin is skills plus MCP.** Selecting a domain decides which
|
|
258
|
-
plugins contribute their skills and subagents, which MCP servers the session can reach,
|
|
259
|
-
and whether the always-on shared skills apply. A domain can take a whole plugin or a named
|
|
260
|
-
subset of one. This is the choice that decides how much the agent can see, so it is also
|
|
261
|
-
the lever for keeping context small. Defaults are plural because domains compose:
|
|
262
|
-
|
|
263
|
-
```yaml
|
|
264
|
-
defaultDomains: [development, qa]
|
|
265
149
|
domains:
|
|
266
150
|
development:
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
plugins: [plugins/qa]
|
|
151
|
+
description: Implementation and code-review tools.
|
|
152
|
+
plugins: [pi-development, remote-review]
|
|
270
153
|
```
|
|
271
154
|
|
|
272
|
-
|
|
273
|
-
`
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
and `AGENTS.md` into the system prompt: identity and the brand it represents, then voice,
|
|
278
|
-
then role and rules. A profile also carries environment defaults, and nothing else. It
|
|
279
|
-
cannot select domains, major modes, models, presets, or policy, and an exported value
|
|
280
|
-
always beats a profile default.
|
|
155
|
+
DoomPi also checks personal and repository Codex marketplace layouts. Marketplace IDs use
|
|
156
|
+
`plugin@marketplace`. Remote Git and npm sources are downloaded once into the persistent
|
|
157
|
+
`~/.pi/.doom/plugin-cache` directory. Cache entries are reused until their source descriptor
|
|
158
|
+
changes; use a Git SHA or exact npm version for reproducible installs. Home and repository
|
|
159
|
+
catalogs merge, and repository names replace matching home names.
|
|
281
160
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
applies in place too unless the new mode changes which extension packages load, since Pi
|
|
285
|
-
freezes the `--extension` set at construction; the picker tells you when a relaunch is
|
|
286
|
-
needed.
|
|
161
|
+
A blog is not one task. Research it, draft it, make the assets, then review it. Turn on the
|
|
162
|
+
`visual` domain while making assets; the other three steps have no reason to carry it.
|
|
287
163
|
|
|
288
|
-
###
|
|
164
|
+
### Profile
|
|
289
165
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
which extensions are loaded.
|
|
166
|
+
An LLM has no house style until you give it one. A profile can supply a narrative, brand
|
|
167
|
+
rules, or a different voice. It is optional; no profile is a perfectly good profile.
|
|
293
168
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
| loop | `/loop`, `SPC l` | `@agimon-ai/doompi-loop` |
|
|
298
|
-
| workflow | `/workflow`, `SPC w` | `@agimon-ai/doompi-workflow` |
|
|
169
|
+
Profile roots remove the need to list every persona folder. A root may itself contain the
|
|
170
|
+
persona files, or its direct-child folders become profiles named after those folders. DoomPi
|
|
171
|
+
recognizes `profile.md`, `SOUL.md`, and `AGENTS.md` and never searches deeper directories.
|
|
299
172
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
173
|
+
```yaml
|
|
174
|
+
profiles:
|
|
175
|
+
roots: [agents/acme]
|
|
176
|
+
entries:
|
|
177
|
+
editor:
|
|
178
|
+
persona: agents/special/editor
|
|
179
|
+
env:
|
|
180
|
+
EDITOR_MODE: strict
|
|
181
|
+
```
|
|
303
182
|
|
|
304
|
-
|
|
183
|
+
Roots from the home and repository files accumulate relative to their declaring config.
|
|
184
|
+
Repository discoveries replace same-named home discoveries. Explicit entries override
|
|
185
|
+
discovery and can add string environment defaults; repository entries replace matching home
|
|
186
|
+
entries. Select one at launch with `--profile editor` or switch with `/profile`.
|
|
305
187
|
|
|
306
|
-
|
|
188
|
+
## What this buys you
|
|
307
189
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
and one with an `mcp` allowlist reaches only the servers and proxy upstreams it names.
|
|
190
|
+
Every tool schema and skill name competes for the same context. Loading less has two
|
|
191
|
+
immediate effects:
|
|
311
192
|
|
|
312
|
-
|
|
193
|
+
1. You spend fewer tokens before the work begins.
|
|
194
|
+
2. The model has fewer plausible-but-wrong tools and skills to choose from.
|
|
313
195
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
...
|
|
317
|
-
skills: 24 (from 3 directories)
|
|
318
|
-
|
|
319
|
-
context cost (tokens)
|
|
320
|
-
skills prompt 3,772 always on
|
|
321
|
-
persona 0 always on
|
|
322
|
-
startup total 3,772
|
|
323
|
-
skill bodies 54,145 read on demand
|
|
324
|
-
|
|
325
|
-
Excludes MCP tool schemas, which the servers only report once connected,
|
|
326
|
-
and skills contributed by extensions, which register after startup.
|
|
327
|
-
```
|
|
196
|
+
The savings get larger when each workflow job starts with its own config instead of
|
|
197
|
+
inheriting the last job's toolbox.
|
|
328
198
|
|
|
329
|
-
|
|
330
|
-
numbers and you can reproduce them on your own repository rather than trusting these.
|
|
199
|
+
### Copilot
|
|
331
200
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
201
|
+
I got tired of remembering slash commands, so `SPC` is the map. It opens only when the
|
|
202
|
+
draft is empty; a space in the middle of a prompt remains a space. Press it, read the
|
|
203
|
+
choices, then press the next key.
|
|
335
204
|
|
|
336
|
-
|
|
337
|
-
|
|
205
|
+
When the keyboard is the wrong tool, autonomous Voice mode keeps the conversation going.
|
|
206
|
+
You can talk to the agent while doing the chores instead of carrying a laptop around the
|
|
207
|
+
house, and the primary agent can speak its own opening, milestone, and final updates.
|
|
338
208
|
|
|
339
|
-
|
|
209
|
+
### Autopilot
|
|
340
210
|
|
|
341
|
-
|
|
211
|
+
Copilot helps while you are present. Loop and Workflow keep work moving when you are not.
|
|
212
|
+
Together they can dispatch structured jobs from one live session.
|
|
342
213
|
|
|
343
|
-
|
|
344
|
-
`on:`, `jobs:`, `needs:`, `steps:`, timeouts, and declared artifacts.
|
|
214
|
+
#### Workflows
|
|
345
215
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
else:
|
|
216
|
+
GitHub Actions already has a decent vocabulary for long jobs, so Doompi reuses it. Each job
|
|
217
|
+
declares the Doompi session it wants. Here, implementation gets coding tools; the release
|
|
218
|
+
note waits for it and gets marketing context plus a brand voice:
|
|
350
219
|
|
|
351
220
|
```yaml
|
|
221
|
+
on:
|
|
222
|
+
workflow_dispatch:
|
|
223
|
+
|
|
352
224
|
jobs:
|
|
353
225
|
implement:
|
|
354
|
-
needs: intake
|
|
355
226
|
steps:
|
|
356
|
-
- name:
|
|
227
|
+
- name: Build the feature
|
|
357
228
|
timeout-minutes: 180
|
|
358
229
|
artifacts: [implementation/report.md]
|
|
359
230
|
interactiveRun:
|
|
@@ -361,10 +232,10 @@ jobs:
|
|
|
361
232
|
doompi --major-mode dev --domains development --auto-stop \
|
|
362
233
|
--cwd "$PWD" "$JOB_SYSTEM_PROMPT"
|
|
363
234
|
|
|
364
|
-
|
|
235
|
+
release-note:
|
|
365
236
|
needs: implement
|
|
366
237
|
steps:
|
|
367
|
-
- name:
|
|
238
|
+
- name: Write the release note
|
|
368
239
|
timeout-minutes: 30
|
|
369
240
|
artifacts: [marketing/release-note.md]
|
|
370
241
|
interactiveRun:
|
|
@@ -374,208 +245,322 @@ jobs:
|
|
|
374
245
|
--cwd "$PWD" "$JOB_SYSTEM_PROMPT"
|
|
375
246
|
```
|
|
376
247
|
|
|
377
|
-
|
|
378
|
-
intelligence and a domain carrying coding skills. `announce` drops both, takes a domain
|
|
379
|
-
scoped to a handful of MCP servers, and adds a profile, so the release note comes out in a
|
|
380
|
-
named persona's voice rather than the agent's own. Neither job can drift into the other's
|
|
381
|
-
context, and the same job resolves the same way on every run.
|
|
382
|
-
|
|
383
|
-
The one real departure from GitHub Actions is `extends:`, which lets a job inherit shared
|
|
384
|
-
setup from a named template rather than repeating it.
|
|
248
|
+
#### Loop
|
|
385
249
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
hook group is `core`, so it loads in any major mode.
|
|
250
|
+
Workflow definitions are exposed like skills, so the agent can choose one for the job. A
|
|
251
|
+
loop can send a subagent to fetch the next task, then dispatch the workflow that matches
|
|
252
|
+
it. One session becomes the dispatcher instead of the place every job has to fit.
|
|
390
253
|
|
|
391
|
-
|
|
254
|
+
## Features
|
|
392
255
|
|
|
393
|
-
|
|
394
|
-
|
|
256
|
+
Doompi is a distribution, not one giant extension. Each package owns one job; shared TUI
|
|
257
|
+
and session contracts make them behave like one. Use the defaults together or replace
|
|
258
|
+
them one at a time.
|
|
395
259
|
|
|
396
|
-
|
|
397
|
-
scratch list.
|
|
398
|
-
- **Teams** (`SPC a`) run named subagents asynchronously against that same board,
|
|
399
|
-
sequentially or in parallel.
|
|
400
|
-
- **Runners** (`SPC r`) replace the bash tool and detach long commands, then reconcile
|
|
401
|
-
them afterwards.
|
|
402
|
-
- **Compaction** runs on a three-pass ladder in a worker thread, so the session never
|
|
403
|
-
blocks on it.
|
|
260
|
+
### Configuration and composition
|
|
404
261
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
is doing what.
|
|
262
|
+
[`@agimon-ai/doompi`][pkg-doompi] is both an extension and the command-line config compiler. `dpi init`
|
|
263
|
+
creates repository config for an isolated experiment, while `doompi init` creates the personal
|
|
264
|
+
config and registers the permanent Pi integration. The sync commands resolve every major mode
|
|
265
|
+
and domain into a distribution Pi can load quickly. A large major mode with 15 extensions adds
|
|
266
|
+
only 400 ms of code startup time.
|
|
411
267
|
|
|
412
|
-
|
|
268
|
+
### Leader key
|
|
413
269
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
are for opinions, not foundations.
|
|
270
|
+
[`@agimon-ai/doompi-ui`][pkg-doompi-ui] turns `SPC` into a map of the available commands. It stays out of
|
|
271
|
+
the way when a draft is not empty, and other packages contribute bindings through one
|
|
272
|
+
leader API instead of hardcoding their own menus.
|
|
418
273
|
|
|
419
|
-
|
|
274
|
+
### Agent team
|
|
420
275
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
276
|
+
[`@agimon-ai/doompi-team`][pkg-doompi-team] runs named subagents asynchronously against a shared task board.
|
|
277
|
+
They can work in parallel, message one another, and use the model policy attached to the
|
|
278
|
+
selected Team package entry. `SPC a l` lists available agents; `SPC a r` opens current-session runs and
|
|
279
|
+
their controls.
|
|
425
280
|
|
|
426
|
-
|
|
427
|
-
from the repository root, walking its module chain; anything that does not resolve there
|
|
428
|
-
falls back to what ships with the installed meta-package. So a consumer can add a layer
|
|
429
|
-
without Doom Pi knowing the package exists, and Doom Pi can ship its own closure without
|
|
430
|
-
the consumer declaring it.
|
|
281
|
+
### Tasks
|
|
431
282
|
|
|
432
|
-
|
|
433
|
-
and
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
283
|
+
[`@agimon-ai/doompi-task`][pkg-doompi-task] keeps a task graph on disk, not a disposable checklist in the
|
|
284
|
+
transcript. Dependencies and delegation survive compaction, and work can be handed to a
|
|
285
|
+
subagent—including a smaller model when the job does not need the expensive one. Seeded
|
|
286
|
+
`minimal` and `copilot` modes select its `task` layer; omit that layer when a major mode
|
|
287
|
+
should not expose the task tool.
|
|
437
288
|
|
|
438
|
-
|
|
439
|
-
existing `.pi/settings.json`. No Nx, pnpm workspace, or plugins profile is required, so a
|
|
440
|
-
plain repository that installs the package can launch it.
|
|
289
|
+
### Runner
|
|
441
290
|
|
|
442
|
-
|
|
291
|
+
[`@agimon-ai/doompi-runner`][pkg-doompi-runner] replaces Pi's blocking `bash` tool with
|
|
292
|
+
supervised command execution in the generated default Copilot mode. Short commands still return
|
|
293
|
+
inline; commands that pass the configurable threshold—60 seconds by default—move into the
|
|
294
|
+
background with durable logs. Use `background: true` for an immediate detached run or
|
|
295
|
+
`interactive: true` when the command needs terminal input. Runner IDs, controls, and logs survive
|
|
296
|
+
compaction and context rewrites and remain available through Runner Space at `SPC r r` or the
|
|
297
|
+
`doom-runner` CLI. Platform-specific RMUX binaries are selected automatically, with a fallback
|
|
298
|
+
when RMUX is unavailable. Custom modes must include the `runner` layer to replace `bash`.
|
|
443
299
|
|
|
444
|
-
|
|
445
|
-
repository. Editing a YAML file is the entire change.
|
|
300
|
+
### Auto-compact
|
|
446
301
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
next session says the config changed, the way doom emacs asks you to re-run `doom sync`.
|
|
302
|
+
Ordinary compaction waits for one summary to save an overgrown session.
|
|
303
|
+
[`@agimon-ai/doompi-autocompact`][pkg-doompi-autocompact] leaves checkpoints instead:
|
|
450
304
|
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
305
|
+
1. At 50%, it writes the first compact summary.
|
|
306
|
+
2. Later, it combines that summary with the messages since; the model decides whether the
|
|
307
|
+
result is ready to use.
|
|
308
|
+
3. On the third pass, it combines them again and forces compaction.
|
|
454
309
|
|
|
455
|
-
|
|
456
|
-
|
|
310
|
+
The work runs off-thread. Each checkpoint carries the live plan, task graph, team state,
|
|
311
|
+
and user request with it, so coordination does not have to be guessed back out of prose.
|
|
457
312
|
|
|
458
|
-
|
|
313
|
+
### Help mode
|
|
459
314
|
|
|
460
|
-
|
|
461
|
-
|
|
315
|
+
[`@agimon-ai/doompi-help`][pkg-doompi-help] keeps package guidance out of the default prompt. A fresh parent
|
|
316
|
+
session performs no Help retrieval and exposes no Help skills. Use `SPC h e`, or the existing
|
|
317
|
+
`minor_mode` client in headless sessions, to activate the package indexes; use the same action
|
|
318
|
+
to deactivate them before the next interaction. The initial contributors expose
|
|
319
|
+
`doompi-help`, `workflow-help`, and `doompi-config-help`. Child sessions never assemble the
|
|
320
|
+
Help runtime.
|
|
462
321
|
|
|
463
|
-
|
|
464
|
-
| ------------------- | ----------------- | ----------------------------- | ------------------------ | ------------------- |
|
|
465
|
-
| domains to plugins | yes | yes | yes | yes |
|
|
466
|
-
| hooks | from the registry | generated `settings.json` | generated `hooks.json` | copied `hooks.json` |
|
|
467
|
-
| MCP servers | scoped | scoped | unscoped | scoped |
|
|
468
|
-
| MCP proxy upstreams | scoped | scoped | scoped | scoped |
|
|
469
|
-
| major mode | packages + hooks | shared hook groups | shared hook groups | shared hook groups |
|
|
470
|
-
| personas | system prompt | `--append-system-prompt-file` | `developer_instructions` | no |
|
|
322
|
+
### MCP
|
|
471
323
|
|
|
472
|
-
|
|
473
|
-
and
|
|
324
|
+
[`@agimon-ai/doompi-mcp`][pkg-doompi-mcp] is the gate between a session and its servers. It reads `.mcp.json`
|
|
325
|
+
and other common formats, then exposes only the servers and proxy upstreams allowed by the
|
|
326
|
+
selected domains. Switch domains and that boundary reloads with them.
|
|
474
327
|
|
|
475
|
-
|
|
476
|
-
user's home directory rather than from arguments, so every selection is written to disk
|
|
477
|
-
before launch and reverted when it is no longer selected. Everything the harness writes is
|
|
478
|
-
tracked in a managed-state file, so a file you created by hand is never silently replaced.
|
|
479
|
-
Its hooks are copied from `.antigravity-local/hooks.json`, which is maintained by hand
|
|
480
|
-
rather than generated from the registry.
|
|
328
|
+
### Ask user question
|
|
481
329
|
|
|
482
|
-
|
|
330
|
+
[`@agimon-ai/doompi-user-feedback`][pkg-doompi-user-feedback] gives the agent a structured question that actually
|
|
331
|
+
waits for an answer. In autonomous Voice mode it skips the modal, narrates the choices,
|
|
332
|
+
and accepts the next spoken response as an ordinary user message.
|
|
483
333
|
|
|
484
|
-
|
|
334
|
+
### Logging and telemetry
|
|
485
335
|
|
|
486
|
-
|
|
336
|
+
Doompi telemetry records counters and spans, never prompt text or file content, in a local
|
|
337
|
+
SQLite database by default. `SPC h l` opens the metrics, and
|
|
338
|
+
[`@agimon-ai/log-sink-mcp`][pkg-log-sink-mcp] gives the agent CLI tools for inspecting its own
|
|
339
|
+
runs.
|
|
487
340
|
|
|
488
|
-
|
|
489
|
-
.doom/
|
|
490
|
-
config.yaml projectTrust, plus the selection sync pins
|
|
491
|
-
domains.yaml domains, plus aliases for shorthand bundles
|
|
492
|
-
modes.yaml layer definitions and the named major modes built from them
|
|
493
|
-
hooks.yaml canonical hooks for all three frontends
|
|
494
|
-
profiles.yaml persona and environment profiles
|
|
495
|
-
|
|
496
|
-
agents/<product>/<person>/ persona source, referenced never copied
|
|
497
|
-
```
|
|
341
|
+
### Plan mode
|
|
498
342
|
|
|
499
|
-
`doompi
|
|
343
|
+
A promise to "only plan" is not a permission boundary. [`@agimon-ai/doompi-plan`][pkg-doompi-plan] makes the
|
|
344
|
+
repository read-only while the agent explores, persists the plan, and hands it back for
|
|
345
|
+
approval. Use `SPC p p` for normal planning, `SPC p d` for debug planning, `SPC p f` for
|
|
346
|
+
the Fable flow, and `SPC p e` to exit. Turn it on when the approach should be settled
|
|
347
|
+
before the files move.
|
|
500
348
|
|
|
501
|
-
|
|
502
|
-
.pi/settings.json committed; sync owns extensions, themes, and theme
|
|
503
|
-
.pi/doom/ generated and gitignored
|
|
504
|
-
state.json environment, resolved paths, and the inputs hash
|
|
505
|
-
mcp.json mcp-extension.ts agents/ persona.md doom-pi-dark.json
|
|
506
|
-
run/<pid>/ one session's live switches, never the baseline
|
|
507
|
-
harness-state.json that session's own state, owned by its process
|
|
508
|
-
```
|
|
349
|
+
### Loop mode
|
|
509
350
|
|
|
510
|
-
|
|
351
|
+
[`@agimon-ai/doompi-loop`][pkg-doompi-loop] is an in-session scheduler. It runs a prompt immediately and then
|
|
352
|
+
repeats it on an interval; several loops can coexist. Use `SPC l s` to start one and
|
|
353
|
+
`SPC l l` to list or stop them. It is for recurring checks and prompts that belong to the
|
|
354
|
+
current session.
|
|
511
355
|
|
|
512
|
-
|
|
513
|
-
`DOOMPI_STATE` points at it, and everything else the harness exports is derived from
|
|
514
|
-
it: a projection published for the readers that can only see an environment, which are bash
|
|
515
|
-
hooks, the shell launchers, `agent-hooks`, and any process spawned by any of them. Two
|
|
516
|
-
fields never appear there at all, because nothing outside `@agimon-ai/doompi-config` reads
|
|
517
|
-
them and every hook spawn would otherwise copy them: the plugin hook list and the profile's
|
|
518
|
-
environment defaults.
|
|
356
|
+
### Goal mode
|
|
519
357
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
nor lose its own when the parent cleans up.
|
|
358
|
+
[`@agimon-ai/doompi-goal`][pkg-doompi-goal] pins one objective to the session until it completes or you end
|
|
359
|
+
it. Use `SPC g g` for status, `SPC g s` to start, `SPC g e` to end, and `SPC g p` for
|
|
360
|
+
history. Finished goals leave the prompt and tools behind but remain in history when you
|
|
361
|
+
want to restart one.
|
|
525
362
|
|
|
526
|
-
|
|
527
|
-
runs, which live outside `.pi/`:
|
|
363
|
+
### Workflow mode
|
|
528
364
|
|
|
365
|
+
[`@agimon-ai/doompi-workflow`][pkg-doompi-workflow] runs GitHub Actions-style job graphs with dependencies,
|
|
366
|
+
timeouts, artifacts, and a separate Doompi session for each step. Use `SPC w w` to launch,
|
|
367
|
+
`SPC w l` to manage, `SPC w r` to recover a failed run, and `SPC w e` to give the agent
|
|
368
|
+
workflow tools or take them back. It is for work that needs hard job boundaries and
|
|
369
|
+
explicit handoffs rather than one long conversation.
|
|
370
|
+
|
|
371
|
+
### Voice mode
|
|
372
|
+
|
|
373
|
+
[`@agimon-ai/doompi-voice`][pkg-doompi-voice] records and transcribes speech locally; audio stays on the
|
|
374
|
+
machine. `SPC v v` is one-shot manual dictation and never enables Voice tools. `SPC v a`
|
|
375
|
+
toggles autonomous capture; only its exact-active TUI session receives the two Voice
|
|
376
|
+
façades plus the standalone `narrate` tool.
|
|
377
|
+
|
|
378
|
+
While `narrate` is available, the primary agent calls it before every user-facing final
|
|
379
|
+
response. One concise spoken answer is enough for a short conversation or clarification;
|
|
380
|
+
longer work also gets an opening and meaningful milestone calls. Each ready-to-speak
|
|
381
|
+
utterance is limited to 4,096 characters, waits for physical playback, and returns
|
|
382
|
+
`completed`, `interrupted`, `superseded`, or `failed`.
|
|
383
|
+
|
|
384
|
+
If the agent never attempts `narrate` during a run, exact-active Voice speaks one sanitized
|
|
385
|
+
turn-end fallback rather than leaving the final response silent. Finals of at most 320
|
|
386
|
+
characters use deterministic speech; longer finals use the configured
|
|
387
|
+
`voice.autoCapture.model` for one bounded summary, with deterministic degradation on
|
|
388
|
+
failure or timeout. Any `narrate` attempt suppresses this safety net, so it cannot duplicate
|
|
389
|
+
or retry direct speech. Voice does not generate automatic intent, plan, milestone, or tool
|
|
390
|
+
progress narration. External task, workflow, and user-feedback narration remains
|
|
391
|
+
available, and the same model continues to provide bounded command correction.
|
|
392
|
+
|
|
393
|
+
## Configuration
|
|
394
|
+
|
|
395
|
+
Doompi reads four configuration files:
|
|
396
|
+
|
|
397
|
+
- `config.yaml` defines runtime settings such as trust, editor, planning, and voice behavior.
|
|
398
|
+
- `modes.yaml` defines extension layers and major modes.
|
|
399
|
+
- `domains.yaml` catalogs plugins and sets session access.
|
|
400
|
+
- `profiles.yaml` supplies persona files and environment defaults.
|
|
401
|
+
|
|
402
|
+
Each matrix file has two optional layers: personal defaults in `~/.pi/.doom/` and repository
|
|
403
|
+
overrides in `<repository>/.doom/`. Doompi loads both. Unique named entries from either layer
|
|
404
|
+
remain available; a same-named repository entry replaces the complete personal entry. Plugin
|
|
405
|
+
and profile roots from both layers are retained. Relative paths in personal config resolve
|
|
406
|
+
from `~/.pi/.doom/`; relative paths in repository config resolve from the repository root.
|
|
407
|
+
|
|
408
|
+
### `modes.yaml`: choose behavior
|
|
409
|
+
|
|
410
|
+
A layer is an ordered bundle of extension packages and hook groups. A major mode names the
|
|
411
|
+
layers that should run together. Packages may be bare strings, or mappings when the package
|
|
412
|
+
accepts configuration:
|
|
413
|
+
|
|
414
|
+
```yaml
|
|
415
|
+
layers:
|
|
416
|
+
team:
|
|
417
|
+
packages:
|
|
418
|
+
- name: '@agimon-ai/doompi-team'
|
|
419
|
+
config:
|
|
420
|
+
models:
|
|
421
|
+
- model: provider/model-id
|
|
422
|
+
thinking: high
|
|
423
|
+
review:
|
|
424
|
+
packages:
|
|
425
|
+
- '@scope/review-extension'
|
|
426
|
+
|
|
427
|
+
defaultMajorMode: copilot
|
|
428
|
+
majorMode:
|
|
429
|
+
minimal:
|
|
430
|
+
description: Lean sessions with delegation and little else.
|
|
431
|
+
layers: [team]
|
|
432
|
+
copilot:
|
|
433
|
+
description: General coding with delegation and review tools.
|
|
434
|
+
layers: [team, review]
|
|
529
435
|
```
|
|
530
|
-
.claude/settings.json the "hooks" key only; every other key is preserved
|
|
531
|
-
.codex-local/hooks.json the whole file
|
|
532
|
-
```
|
|
533
436
|
|
|
534
|
-
|
|
437
|
+
Order matters: Doompi assembles layers and their packages from left to right. Put settings
|
|
438
|
+
under the package that consumes them; a layer is composition, not a mystery bag of shared
|
|
439
|
+
configuration. Home and repository `layers` and `majorMode` records merge by name, with the
|
|
440
|
+
repository definition winning a collision.
|
|
441
|
+
|
|
442
|
+
Choose a mode with `--major-mode copilot`, switch it with `/mode`, or change
|
|
443
|
+
`defaultMajorMode` when one mode should be the ordinary starting point.
|
|
444
|
+
|
|
445
|
+
### `domains.yaml`: choose content and access
|
|
535
446
|
|
|
536
|
-
|
|
447
|
+
Plugins are catalogued once, then domains refer to their names. A root can be a marketplace,
|
|
448
|
+
a single plugin, or a container whose direct-child folders are plugins. Discovery is
|
|
449
|
+
intentionally nonrecursive: a tool buried five directories down should not load by accident.
|
|
537
450
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
451
|
+
```yaml
|
|
452
|
+
defaultDomains: [development]
|
|
453
|
+
|
|
454
|
+
plugins:
|
|
455
|
+
roots: [plugins]
|
|
456
|
+
entries:
|
|
457
|
+
remote-review:
|
|
458
|
+
source: url
|
|
459
|
+
url: https://github.com/acme/review-plugin.git
|
|
460
|
+
ref: v1.2.0
|
|
461
|
+
published-research:
|
|
462
|
+
source: npm
|
|
463
|
+
package: '@acme/research-plugin'
|
|
464
|
+
version: 1.4.0
|
|
544
465
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
466
|
+
domains:
|
|
467
|
+
development:
|
|
468
|
+
description: Repository implementation tools.
|
|
469
|
+
plugins: [coding-tools]
|
|
470
|
+
review:
|
|
471
|
+
description: Focused review skills with a narrow MCP boundary.
|
|
472
|
+
plugins:
|
|
473
|
+
- name: remote-review
|
|
474
|
+
skills: [typescript]
|
|
475
|
+
agents: [reviewer]
|
|
476
|
+
hooks: false
|
|
477
|
+
mcp: true
|
|
478
|
+
mcp:
|
|
479
|
+
servers: [filesystem]
|
|
480
|
+
proxy: [github]
|
|
481
|
+
|
|
482
|
+
aliases:
|
|
483
|
+
work: [development, review]
|
|
484
|
+
```
|
|
549
485
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
486
|
+
Here, `coding-tools` is discovered from `plugins/coding-tools`; its manifest name, or its
|
|
487
|
+
folder name when no manifest name exists, becomes the catalog ID. Local roots and entries
|
|
488
|
+
resolve beside the declaring file. Git and npm entries are cached in
|
|
489
|
+
`~/.pi/.doom/plugin-cache`; pin a Git SHA or exact package version when reproducibility
|
|
490
|
+
matters. Domains may load an entire plugin or select only its skills, agents, hooks, and MCP
|
|
491
|
+
configuration. The optional `mcp` mapping is an allowlist, not a request to start every server
|
|
492
|
+
in the repository.
|
|
554
493
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
overrides. These used to be two variables, `DOOM_PI_*` for the selection and
|
|
559
|
-
`AGENT_HARNESS_*` for the resolved projection, with the second outranking the first. Any
|
|
560
|
-
surviving `AGENT_HARNESS_*` variable now throws and names its replacement, because a stale
|
|
561
|
-
export in a shell profile is worth an error.
|
|
494
|
+
Select one or more domains with `--domains development,review`, use an alias such as
|
|
495
|
+
`--domains work`, or switch them with `/domains`. `--no-domains` is useful when the right
|
|
496
|
+
amount of repository context is none.
|
|
562
497
|
|
|
563
|
-
`
|
|
564
|
-
resolved layer components rather than the mode that selected them.
|
|
498
|
+
### `profiles.yaml`: choose a point of view
|
|
565
499
|
|
|
566
|
-
A
|
|
567
|
-
`
|
|
568
|
-
|
|
569
|
-
`defaultDomains`:
|
|
500
|
+
A profile directory becomes discoverable when it directly contains `profile.md`, `SOUL.md`,
|
|
501
|
+
or `AGENTS.md`. A root may be one profile or a container of direct-child profiles. The folder
|
|
502
|
+
name becomes the profile name; Doompi concatenates those three files in that order.
|
|
570
503
|
|
|
571
504
|
```yaml
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
505
|
+
profiles:
|
|
506
|
+
roots: [personas]
|
|
507
|
+
entries:
|
|
508
|
+
release-writer:
|
|
509
|
+
persona: personas/release-writer
|
|
510
|
+
env:
|
|
511
|
+
BRAND: acme
|
|
512
|
+
TONE: concise
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
With that config, `personas/release-writer/profile.md` is enough to discover
|
|
516
|
+
`release-writer`. The explicit entry is optional; use one when the profile needs another name,
|
|
517
|
+
an exact persona path, or string environment defaults. Explicit entries override discovered
|
|
518
|
+
folders. Already exported environment values win, so selecting a profile never quietly
|
|
519
|
+
replaces a value supplied by the caller.
|
|
520
|
+
|
|
521
|
+
Discovery never recurses. Persona paths must remain under `agents/` or a root declared in the
|
|
522
|
+
same file, and symlinks may not escape the persona boundary. Legacy profiles written directly
|
|
523
|
+
under `profiles` still load, but new configuration should use `roots` and `entries`.
|
|
524
|
+
|
|
525
|
+
Select a profile with `--profile release-writer` or switch it with `/profile`. Leaving the
|
|
526
|
+
catalog empty is valid; no profile remains a first-class choice.
|
|
527
|
+
|
|
528
|
+
### Check the matrix before launch
|
|
529
|
+
|
|
530
|
+
The fastest configuration debugger is the one that does not start a model:
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
doompi --major-mode copilot --domains work --profile release-writer --explain
|
|
534
|
+
dpi sync
|
|
535
|
+
doompi sync --check
|
|
577
536
|
```
|
|
578
537
|
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
538
|
+
`--explain` prints the resolved mode, domains, profile, plugins, skills, agents, MCP boundary,
|
|
539
|
+
and estimated prompt cost. `dpi sync` resolves the repository configuration and synchronizes
|
|
540
|
+
DPI without registering it in normal Pi settings. `doompi sync --check` turns drift into a
|
|
541
|
+
non-zero exit code for CI. If the explanation is surprising, fix the YAML before paying a model
|
|
542
|
+
to be surprised with you.
|
|
543
|
+
|
|
544
|
+
## Package release order
|
|
545
|
+
|
|
546
|
+
Publish [`@agimon-ai/doompi-extension-contracts`][pkg-doompi-extension-contracts] first, then
|
|
547
|
+
[`@agimon-ai/doompi-help`][pkg-doompi-help], and only then the
|
|
548
|
+
[`@agimon-ai/doompi`][pkg-doompi] runtime that consumes them. Generated changelogs remain owned
|
|
549
|
+
by the release tooling.
|
|
550
|
+
|
|
551
|
+
[pkg-doompi]: https://www.npmjs.com/package/@agimon-ai/doompi
|
|
552
|
+
[pkg-doompi-ui]: https://www.npmjs.com/package/@agimon-ai/doompi-ui
|
|
553
|
+
[pkg-doompi-team]: https://www.npmjs.com/package/@agimon-ai/doompi-team
|
|
554
|
+
[pkg-doompi-task]: https://www.npmjs.com/package/@agimon-ai/doompi-task
|
|
555
|
+
[pkg-doompi-runner]: https://www.npmjs.com/package/@agimon-ai/doompi-runner
|
|
556
|
+
[pkg-doompi-autocompact]: https://www.npmjs.com/package/@agimon-ai/doompi-autocompact
|
|
557
|
+
[pkg-doompi-help]: https://www.npmjs.com/package/@agimon-ai/doompi-help
|
|
558
|
+
[pkg-doompi-mcp]: https://www.npmjs.com/package/@agimon-ai/doompi-mcp
|
|
559
|
+
[pkg-doompi-user-feedback]: https://www.npmjs.com/package/@agimon-ai/doompi-user-feedback
|
|
560
|
+
[pkg-log-sink-mcp]: https://www.npmjs.com/package/@agimon-ai/log-sink-mcp
|
|
561
|
+
[pkg-doompi-plan]: https://www.npmjs.com/package/@agimon-ai/doompi-plan
|
|
562
|
+
[pkg-doompi-loop]: https://www.npmjs.com/package/@agimon-ai/doompi-loop
|
|
563
|
+
[pkg-doompi-goal]: https://www.npmjs.com/package/@agimon-ai/doompi-goal
|
|
564
|
+
[pkg-doompi-workflow]: https://www.npmjs.com/package/@agimon-ai/doompi-workflow
|
|
565
|
+
[pkg-doompi-voice]: https://www.npmjs.com/package/@agimon-ai/doompi-voice
|
|
566
|
+
[pkg-doompi-extension-contracts]: https://www.npmjs.com/package/@agimon-ai/doompi-extension-contracts
|