@agimon-ai/doompi 0.0.1-alpha.76 → 0.0.1-alpha.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/antigravity.cjs +5 -0
- package/dist/antigravity.d.cts +2 -0
- package/dist/antigravity.d.mts +2 -0
- package/dist/antigravity.mjs +2 -0
- package/dist/api-contracts.cjs +11 -0
- package/dist/api-contracts.cjs.map +1 -0
- package/dist/api-contracts.d.cts +52 -0
- package/dist/api-contracts.d.cts.map +1 -0
- package/dist/api-contracts.d.mts +52 -0
- package/dist/api-contracts.d.mts.map +1 -0
- package/dist/api-contracts.mjs +7 -0
- package/dist/api-contracts.mjs.map +1 -0
- package/dist/base-command.cjs +3 -0
- package/dist/base-command.d.cts +2 -0
- package/dist/base-command.d.mts +2 -0
- package/dist/base-command.mjs +2 -0
- package/dist/bin/cli.cjs +29 -0
- package/dist/bin/cli.cjs.map +1 -0
- package/dist/bin/cli.d.cts +1 -0
- package/dist/bin/cli.d.mts +1 -0
- package/dist/bin/cli.mjs +30 -0
- package/dist/bin/cli.mjs.map +1 -0
- package/dist/bin/doomRunner.cjs +39 -0
- package/dist/bin/doomRunner.cjs.map +1 -0
- package/dist/bin/doomRunner.d.cts +12 -0
- package/dist/bin/doomRunner.d.cts.map +1 -0
- package/dist/bin/doomRunner.d.mts +12 -0
- package/dist/bin/doomRunner.d.mts.map +1 -0
- package/dist/bin/doomRunner.mjs +38 -0
- package/dist/bin/doomRunner.mjs.map +1 -0
- package/dist/bin/dpi.cjs +12 -0
- package/dist/bin/dpi.cjs.map +1 -0
- package/dist/bin/dpi.d.cts +1 -0
- package/dist/bin/dpi.d.mts +1 -0
- package/dist/bin/dpi.mjs +14 -0
- package/dist/bin/dpi.mjs.map +1 -0
- package/dist/bin/serve.cjs +11 -0
- package/dist/bin/serve.cjs.map +1 -0
- package/dist/bin/serve.d.cts +1 -0
- package/dist/bin/serve.d.mts +1 -0
- package/dist/bin/serve.mjs +13 -0
- package/dist/bin/serve.mjs.map +1 -0
- package/dist/builders/apiContractExport/index.cjs +81 -0
- package/dist/builders/apiContractExport/index.cjs.map +1 -0
- package/dist/builders/apiContractExport/index.mjs +77 -0
- package/dist/builders/apiContractExport/index.mjs.map +1 -0
- package/dist/builders/apiContracts/index.cjs +87 -0
- package/dist/builders/apiContracts/index.cjs.map +1 -0
- package/dist/builders/apiContracts/index.mjs +82 -0
- package/dist/builders/apiContracts/index.mjs.map +1 -0
- package/dist/builders/cli/bootstrapClaim.cjs +53 -0
- package/dist/builders/cli/bootstrapClaim.cjs.map +1 -0
- package/dist/builders/cli/bootstrapClaim.mjs +51 -0
- package/dist/builders/cli/bootstrapClaim.mjs.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.cjs +204 -0
- package/dist/builders/cli/bootstrapLocator/index.cjs.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.d.cts +5 -0
- package/dist/builders/cli/bootstrapLocator/index.d.cts.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.d.mts +5 -0
- package/dist/builders/cli/bootstrapLocator/index.d.mts.map +1 -0
- package/dist/builders/cli/bootstrapLocator/index.mjs +196 -0
- package/dist/builders/cli/bootstrapLocator/index.mjs.map +1 -0
- package/dist/builders/cli/composition.cjs +378 -0
- package/dist/builders/cli/composition.cjs.map +1 -0
- package/dist/builders/cli/composition.d.cts +119 -0
- package/dist/builders/cli/composition.d.cts.map +1 -0
- package/dist/builders/cli/composition.d.mts +119 -0
- package/dist/builders/cli/composition.d.mts.map +1 -0
- package/dist/builders/cli/composition.mjs +351 -0
- package/dist/builders/cli/composition.mjs.map +1 -0
- package/dist/builders/cli/compositionState.cjs +33 -0
- package/dist/builders/cli/compositionState.cjs.map +1 -0
- package/dist/builders/cli/compositionState.d.cts +9 -0
- package/dist/builders/cli/compositionState.d.cts.map +1 -0
- package/dist/builders/cli/compositionState.d.mts +9 -0
- package/dist/builders/cli/compositionState.d.mts.map +1 -0
- package/dist/builders/cli/compositionState.mjs +30 -0
- package/dist/builders/cli/compositionState.mjs.map +1 -0
- package/dist/builders/cli/constants.cjs +20 -0
- package/dist/builders/cli/constants.cjs.map +1 -0
- package/dist/builders/cli/constants.d.cts +17 -0
- package/dist/builders/cli/constants.d.cts.map +1 -0
- package/dist/builders/cli/constants.d.mts +17 -0
- package/dist/builders/cli/constants.d.mts.map +1 -0
- package/dist/builders/cli/constants.mjs +19 -0
- package/dist/builders/cli/constants.mjs.map +1 -0
- package/dist/builders/cli/contextCatalog.cjs +130 -0
- package/dist/builders/cli/contextCatalog.cjs.map +1 -0
- package/dist/builders/cli/contextCatalog.mjs +130 -0
- package/dist/builders/cli/contextCatalog.mjs.map +1 -0
- package/dist/builders/cli/dpiSettings.cjs +118 -0
- package/dist/builders/cli/dpiSettings.cjs.map +1 -0
- package/dist/builders/cli/dpiSettings.mjs +111 -0
- package/dist/builders/cli/dpiSettings.mjs.map +1 -0
- package/dist/builders/cli/entryResolution.cjs +23 -0
- package/dist/builders/cli/entryResolution.cjs.map +1 -0
- package/dist/builders/cli/entryResolution.d.cts +5 -0
- package/dist/builders/cli/entryResolution.d.cts.map +1 -0
- package/dist/builders/cli/entryResolution.d.mts +5 -0
- package/dist/builders/cli/entryResolution.d.mts.map +1 -0
- package/dist/builders/cli/entryResolution.mjs +20 -0
- package/dist/builders/cli/entryResolution.mjs.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.cjs +386 -0
- package/dist/builders/cli/extensionAssembler/index.cjs.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.d.cts +113 -0
- package/dist/builders/cli/extensionAssembler/index.d.cts.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.d.mts +113 -0
- package/dist/builders/cli/extensionAssembler/index.d.mts.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.mjs +376 -0
- package/dist/builders/cli/extensionAssembler/index.mjs.map +1 -0
- package/dist/builders/cli/harnessContext.cjs +186 -0
- package/dist/builders/cli/harnessContext.cjs.map +1 -0
- package/dist/builders/cli/harnessContext.d.cts +51 -0
- package/dist/builders/cli/harnessContext.d.cts.map +1 -0
- package/dist/builders/cli/harnessContext.d.mts +51 -0
- package/dist/builders/cli/harnessContext.d.mts.map +1 -0
- package/dist/builders/cli/harnessContext.mjs +179 -0
- package/dist/builders/cli/harnessContext.mjs.map +1 -0
- package/dist/builders/cli/index.cjs +151 -0
- package/dist/builders/cli/index.cjs.map +1 -0
- package/dist/builders/cli/index.d.cts +22 -0
- package/dist/builders/cli/index.d.cts.map +1 -0
- package/dist/builders/cli/index.d.mts +22 -0
- package/dist/builders/cli/index.d.mts.map +1 -0
- package/dist/builders/cli/index.mjs +147 -0
- package/dist/builders/cli/index.mjs.map +1 -0
- package/dist/builders/cli/launchPlan/index.cjs +102 -0
- package/dist/builders/cli/launchPlan/index.cjs.map +1 -0
- package/dist/builders/cli/launchPlan/index.d.cts +43 -0
- package/dist/builders/cli/launchPlan/index.d.cts.map +1 -0
- package/dist/builders/cli/launchPlan/index.d.mts +43 -0
- package/dist/builders/cli/launchPlan/index.d.mts.map +1 -0
- package/dist/builders/cli/launchPlan/index.mjs +100 -0
- package/dist/builders/cli/launchPlan/index.mjs.map +1 -0
- package/dist/builders/cli/launcherComposition/index.cjs +84 -0
- package/dist/builders/cli/launcherComposition/index.cjs.map +1 -0
- package/dist/builders/cli/launcherComposition/index.mjs +80 -0
- package/dist/builders/cli/launcherComposition/index.mjs.map +1 -0
- package/dist/builders/cli/piExtensionAlias/index.cjs +40 -0
- package/dist/builders/cli/piExtensionAlias/index.cjs.map +1 -0
- package/dist/builders/cli/piExtensionAlias/index.mjs +35 -0
- package/dist/builders/cli/piExtensionAlias/index.mjs.map +1 -0
- package/dist/builders/cli/piExtensionDispatcher/index.cjs +205 -0
- package/dist/builders/cli/piExtensionDispatcher/index.cjs.map +1 -0
- package/dist/builders/cli/piExtensionDispatcher/index.mjs +198 -0
- package/dist/builders/cli/piExtensionDispatcher/index.mjs.map +1 -0
- package/dist/builders/cli/prepare.cjs +64 -0
- package/dist/builders/cli/prepare.cjs.map +1 -0
- package/dist/builders/cli/prepare.mjs +62 -0
- package/dist/builders/cli/prepare.mjs.map +1 -0
- package/dist/builders/cli/projectSettings.cjs +155 -0
- package/dist/builders/cli/projectSettings.cjs.map +1 -0
- package/dist/builders/cli/projectSettings.d.cts +27 -0
- package/dist/builders/cli/projectSettings.d.cts.map +1 -0
- package/dist/builders/cli/projectSettings.d.mts +27 -0
- package/dist/builders/cli/projectSettings.d.mts.map +1 -0
- package/dist/builders/cli/projectSettings.mjs +144 -0
- package/dist/builders/cli/projectSettings.mjs.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.cjs +130 -0
- package/dist/builders/cli/runtimeBundle/index.cjs.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.d.cts +21 -0
- package/dist/builders/cli/runtimeBundle/index.d.cts.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.d.mts +21 -0
- package/dist/builders/cli/runtimeBundle/index.d.mts.map +1 -0
- package/dist/builders/cli/runtimeBundle/index.mjs +126 -0
- package/dist/builders/cli/runtimeBundle/index.mjs.map +1 -0
- package/dist/builders/server/index.cjs +184 -0
- package/dist/builders/server/index.cjs.map +1 -0
- package/dist/builders/server/index.mjs +181 -0
- package/dist/builders/server/index.mjs.map +1 -0
- package/dist/builders/server/runtime.cjs +603 -0
- package/dist/builders/server/runtime.cjs.map +1 -0
- package/dist/builders/server/runtime.mjs +595 -0
- package/dist/builders/server/runtime.mjs.map +1 -0
- package/dist/builders/server/selectionStatus.cjs +12 -0
- package/dist/builders/server/selectionStatus.cjs.map +1 -0
- package/dist/builders/server/selectionStatus.mjs +12 -0
- package/dist/builders/server/selectionStatus.mjs.map +1 -0
- package/dist/builders/server/sessionArguments.cjs +22 -0
- package/dist/builders/server/sessionArguments.cjs.map +1 -0
- package/dist/builders/server/sessionArguments.mjs +22 -0
- package/dist/builders/server/sessionArguments.mjs.map +1 -0
- package/dist/builders/web/bundle.cjs +110 -0
- package/dist/builders/web/bundle.cjs.map +1 -0
- package/dist/builders/web/bundle.d.cts +29 -0
- package/dist/builders/web/bundle.d.cts.map +1 -0
- package/dist/builders/web/bundle.d.mts +29 -0
- package/dist/builders/web/bundle.d.mts.map +1 -0
- package/dist/builders/web/bundle.mjs +107 -0
- package/dist/builders/web/bundle.mjs.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.cjs +96 -0
- package/dist/builders/web/bundleAssetPolicy.cjs.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.d.cts +22 -0
- package/dist/builders/web/bundleAssetPolicy.d.cts.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.d.mts +22 -0
- package/dist/builders/web/bundleAssetPolicy.d.mts.map +1 -0
- package/dist/builders/web/bundleAssetPolicy.mjs +95 -0
- package/dist/builders/web/bundleAssetPolicy.mjs.map +1 -0
- package/dist/builders/web/index.cjs +75 -0
- package/dist/builders/web/index.cjs.map +1 -0
- package/dist/builders/web/index.d.cts +29 -0
- package/dist/builders/web/index.d.cts.map +1 -0
- package/dist/builders/web/index.d.mts +29 -0
- package/dist/builders/web/index.d.mts.map +1 -0
- package/dist/builders/web/index.mjs +72 -0
- package/dist/builders/web/index.mjs.map +1 -0
- package/dist/builders/web/webDevRoots.cjs +27 -0
- package/dist/builders/web/webDevRoots.cjs.map +1 -0
- package/dist/builders/web/webDevRoots.d.cts +22 -0
- package/dist/builders/web/webDevRoots.d.cts.map +1 -0
- package/dist/builders/web/webDevRoots.d.mts +22 -0
- package/dist/builders/web/webDevRoots.d.mts.map +1 -0
- package/dist/builders/web/webDevRoots.mjs +25 -0
- package/dist/builders/web/webDevRoots.mjs.map +1 -0
- package/dist/builders/web/webPluginGenerate.cjs +113 -0
- package/dist/builders/web/webPluginGenerate.cjs.map +1 -0
- package/dist/builders/web/webPluginGenerate.d.cts +28 -0
- package/dist/builders/web/webPluginGenerate.d.cts.map +1 -0
- package/dist/builders/web/webPluginGenerate.d.mts +28 -0
- package/dist/builders/web/webPluginGenerate.d.mts.map +1 -0
- package/dist/builders/web/webPluginGenerate.mjs +106 -0
- package/dist/builders/web/webPluginGenerate.mjs.map +1 -0
- package/dist/builders/web/webPluginManifest.cjs +92 -0
- package/dist/builders/web/webPluginManifest.cjs.map +1 -0
- package/dist/builders/web/webPluginManifest.d.cts +44 -0
- package/dist/builders/web/webPluginManifest.d.cts.map +1 -0
- package/dist/builders/web/webPluginManifest.d.mts +44 -0
- package/dist/builders/web/webPluginManifest.d.mts.map +1 -0
- package/dist/builders/web/webPluginManifest.mjs +88 -0
- package/dist/builders/web/webPluginManifest.mjs.map +1 -0
- package/dist/builders/web/webPluginScan.cjs +53 -0
- package/dist/builders/web/webPluginScan.cjs.map +1 -0
- package/dist/builders/web/webPluginScan.d.cts +16 -0
- package/dist/builders/web/webPluginScan.d.cts.map +1 -0
- package/dist/builders/web/webPluginScan.d.mts +16 -0
- package/dist/builders/web/webPluginScan.d.mts.map +1 -0
- package/dist/builders/web/webPluginScan.mjs +50 -0
- package/dist/builders/web/webPluginScan.mjs.map +1 -0
- package/dist/builders/web/webPluginVite.cjs +124 -0
- package/dist/builders/web/webPluginVite.cjs.map +1 -0
- package/dist/builders/web/webPluginVite.d.cts +36 -0
- package/dist/builders/web/webPluginVite.d.cts.map +1 -0
- package/dist/builders/web/webPluginVite.d.mts +36 -0
- package/dist/builders/web/webPluginVite.d.mts.map +1 -0
- package/dist/builders/web/webPluginVite.mjs +116 -0
- package/dist/builders/web/webPluginVite.mjs.map +1 -0
- package/dist/builders/web.cjs +33 -0
- package/dist/builders/web.d.cts +9 -0
- package/dist/builders/web.d.mts +9 -0
- package/dist/builders/web.mjs +9 -0
- package/dist/cli/cliApp.cjs +177 -0
- package/dist/cli/cliApp.cjs.map +1 -0
- package/dist/cli/cliApp.d.cts +25 -0
- package/dist/cli/cliApp.d.cts.map +1 -0
- package/dist/cli/cliApp.d.mts +25 -0
- package/dist/cli/cliApp.d.mts.map +1 -0
- package/dist/cli/cliApp.mjs +175 -0
- package/dist/cli/cliApp.mjs.map +1 -0
- package/dist/cli/commands/api-export/index.cjs +65 -0
- package/dist/cli/commands/api-export/index.cjs.map +1 -0
- package/dist/cli/commands/api-export/index.mjs +61 -0
- package/dist/cli/commands/api-export/index.mjs.map +1 -0
- package/dist/cli/commands/baseCommand.cjs +16 -0
- package/dist/cli/commands/baseCommand.cjs.map +1 -0
- package/dist/cli/commands/baseCommand.d.cts +24 -0
- package/dist/cli/commands/baseCommand.d.cts.map +1 -0
- package/dist/cli/commands/baseCommand.d.mts +24 -0
- package/dist/cli/commands/baseCommand.d.mts.map +1 -0
- package/dist/cli/commands/baseCommand.mjs +16 -0
- package/dist/cli/commands/baseCommand.mjs.map +1 -0
- package/dist/cli/commands/compat/context.cjs +115 -0
- package/dist/cli/commands/compat/context.cjs.map +1 -0
- package/dist/cli/commands/compat/context.d.cts +22 -0
- package/dist/cli/commands/compat/context.d.cts.map +1 -0
- package/dist/cli/commands/compat/context.d.mts +22 -0
- package/dist/cli/commands/compat/context.d.mts.map +1 -0
- package/dist/cli/commands/compat/context.mjs +110 -0
- package/dist/cli/commands/compat/context.mjs.map +1 -0
- package/dist/cli/commands/compat/help.cjs +26 -0
- package/dist/cli/commands/compat/help.cjs.map +1 -0
- package/dist/cli/commands/compat/help.d.cts +4 -0
- package/dist/cli/commands/compat/help.d.cts.map +1 -0
- package/dist/cli/commands/compat/help.d.mts +4 -0
- package/dist/cli/commands/compat/help.d.mts.map +1 -0
- package/dist/cli/commands/compat/help.mjs +25 -0
- package/dist/cli/commands/compat/help.mjs.map +1 -0
- package/dist/cli/commands/compat/index.cjs +73 -0
- package/dist/cli/commands/compat/index.cjs.map +1 -0
- package/dist/cli/commands/compat/index.d.cts +14 -0
- package/dist/cli/commands/compat/index.d.cts.map +1 -0
- package/dist/cli/commands/compat/index.d.mts +14 -0
- package/dist/cli/commands/compat/index.d.mts.map +1 -0
- package/dist/cli/commands/compat/index.mjs +70 -0
- package/dist/cli/commands/compat/index.mjs.map +1 -0
- package/dist/cli/commands/compat/options.cjs +88 -0
- package/dist/cli/commands/compat/options.cjs.map +1 -0
- package/dist/cli/commands/compat/options.d.cts +15 -0
- package/dist/cli/commands/compat/options.d.cts.map +1 -0
- package/dist/cli/commands/compat/options.d.mts +15 -0
- package/dist/cli/commands/compat/options.d.mts.map +1 -0
- package/dist/cli/commands/compat/options.mjs +86 -0
- package/dist/cli/commands/compat/options.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.cjs +294 -0
- package/dist/cli/commands/compat/providers/antigravity.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.d.cts +9 -0
- package/dist/cli/commands/compat/providers/antigravity.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.d.mts +9 -0
- package/dist/cli/commands/compat/providers/antigravity.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/antigravity.mjs +289 -0
- package/dist/cli/commands/compat/providers/antigravity.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/codex.cjs +178 -0
- package/dist/cli/commands/compat/providers/codex.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/codex.d.cts +17 -0
- package/dist/cli/commands/compat/providers/codex.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/codex.d.mts +17 -0
- package/dist/cli/commands/compat/providers/codex.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/codex.mjs +170 -0
- package/dist/cli/commands/compat/providers/codex.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/index.cjs +65 -0
- package/dist/cli/commands/compat/providers/index.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/index.d.cts +15 -0
- package/dist/cli/commands/compat/providers/index.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/index.d.mts +15 -0
- package/dist/cli/commands/compat/providers/index.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/index.mjs +45 -0
- package/dist/cli/commands/compat/providers/index.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/process.cjs +172 -0
- package/dist/cli/commands/compat/providers/process.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/process.d.cts +33 -0
- package/dist/cli/commands/compat/providers/process.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/process.d.mts +33 -0
- package/dist/cli/commands/compat/providers/process.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/process.mjs +159 -0
- package/dist/cli/commands/compat/providers/process.mjs.map +1 -0
- package/dist/cli/commands/compat/providers/shared.cjs +76 -0
- package/dist/cli/commands/compat/providers/shared.cjs.map +1 -0
- package/dist/cli/commands/compat/providers/shared.d.cts +40 -0
- package/dist/cli/commands/compat/providers/shared.d.cts.map +1 -0
- package/dist/cli/commands/compat/providers/shared.d.mts +40 -0
- package/dist/cli/commands/compat/providers/shared.d.mts.map +1 -0
- package/dist/cli/commands/compat/providers/shared.mjs +61 -0
- package/dist/cli/commands/compat/providers/shared.mjs.map +1 -0
- package/dist/cli/commands/compat/types.d.cts +31 -0
- package/dist/cli/commands/compat/types.d.cts.map +1 -0
- package/dist/cli/commands/compat/types.d.mts +31 -0
- package/dist/cli/commands/compat/types.d.mts.map +1 -0
- package/dist/cli/commands/doctor/help.cjs +19 -0
- package/dist/cli/commands/doctor/help.cjs.map +1 -0
- package/dist/cli/commands/doctor/help.d.cts +4 -0
- package/dist/cli/commands/doctor/help.d.cts.map +1 -0
- package/dist/cli/commands/doctor/help.d.mts +4 -0
- package/dist/cli/commands/doctor/help.d.mts.map +1 -0
- package/dist/cli/commands/doctor/help.mjs +19 -0
- package/dist/cli/commands/doctor/help.mjs.map +1 -0
- package/dist/cli/commands/doctor/index.cjs +116 -0
- package/dist/cli/commands/doctor/index.cjs.map +1 -0
- package/dist/cli/commands/doctor/index.d.cts +12 -0
- package/dist/cli/commands/doctor/index.d.cts.map +1 -0
- package/dist/cli/commands/doctor/index.d.mts +12 -0
- package/dist/cli/commands/doctor/index.d.mts.map +1 -0
- package/dist/cli/commands/doctor/index.mjs +112 -0
- package/dist/cli/commands/doctor/index.mjs.map +1 -0
- package/dist/cli/commands/emit-mcp/index.cjs +32 -0
- package/dist/cli/commands/emit-mcp/index.cjs.map +1 -0
- package/dist/cli/commands/emit-mcp/index.d.cts +19 -0
- package/dist/cli/commands/emit-mcp/index.d.cts.map +1 -0
- package/dist/cli/commands/emit-mcp/index.d.mts +19 -0
- package/dist/cli/commands/emit-mcp/index.d.mts.map +1 -0
- package/dist/cli/commands/emit-mcp/index.mjs +31 -0
- package/dist/cli/commands/emit-mcp/index.mjs.map +1 -0
- package/dist/cli/commands/explain/index.cjs +155 -0
- package/dist/cli/commands/explain/index.cjs.map +1 -0
- package/dist/cli/commands/explain/index.d.cts +57 -0
- package/dist/cli/commands/explain/index.d.cts.map +1 -0
- package/dist/cli/commands/explain/index.d.mts +57 -0
- package/dist/cli/commands/explain/index.d.mts.map +1 -0
- package/dist/cli/commands/explain/index.mjs +150 -0
- package/dist/cli/commands/explain/index.mjs.map +1 -0
- package/dist/cli/commands/history-export/help.cjs +18 -0
- package/dist/cli/commands/history-export/help.cjs.map +1 -0
- package/dist/cli/commands/history-export/help.d.cts +4 -0
- package/dist/cli/commands/history-export/help.d.cts.map +1 -0
- package/dist/cli/commands/history-export/help.d.mts +4 -0
- package/dist/cli/commands/history-export/help.d.mts.map +1 -0
- package/dist/cli/commands/history-export/help.mjs +18 -0
- package/dist/cli/commands/history-export/help.mjs.map +1 -0
- package/dist/cli/commands/history-export/index.cjs +76 -0
- package/dist/cli/commands/history-export/index.cjs.map +1 -0
- package/dist/cli/commands/history-export/index.mjs +74 -0
- package/dist/cli/commands/history-export/index.mjs.map +1 -0
- package/dist/cli/commands/history-import/help.cjs +20 -0
- package/dist/cli/commands/history-import/help.cjs.map +1 -0
- package/dist/cli/commands/history-import/help.d.cts +4 -0
- package/dist/cli/commands/history-import/help.d.cts.map +1 -0
- package/dist/cli/commands/history-import/help.d.mts +4 -0
- package/dist/cli/commands/history-import/help.d.mts.map +1 -0
- package/dist/cli/commands/history-import/help.mjs +20 -0
- package/dist/cli/commands/history-import/help.mjs.map +1 -0
- package/dist/cli/commands/history-import/index.cjs +78 -0
- package/dist/cli/commands/history-import/index.cjs.map +1 -0
- package/dist/cli/commands/history-import/index.mjs +75 -0
- package/dist/cli/commands/history-import/index.mjs.map +1 -0
- package/dist/cli/commands/init/constants.cjs +11 -0
- package/dist/cli/commands/init/constants.cjs.map +1 -0
- package/dist/cli/commands/init/constants.mjs +11 -0
- package/dist/cli/commands/init/constants.mjs.map +1 -0
- package/dist/cli/commands/init/help.cjs +17 -0
- package/dist/cli/commands/init/help.cjs.map +1 -0
- package/dist/cli/commands/init/help.d.cts +4 -0
- package/dist/cli/commands/init/help.d.cts.map +1 -0
- package/dist/cli/commands/init/help.d.mts +4 -0
- package/dist/cli/commands/init/help.d.mts.map +1 -0
- package/dist/cli/commands/init/help.mjs +17 -0
- package/dist/cli/commands/init/help.mjs.map +1 -0
- package/dist/cli/commands/init/index.cjs +87 -0
- package/dist/cli/commands/init/index.cjs.map +1 -0
- package/dist/cli/commands/init/index.d.cts +12 -0
- package/dist/cli/commands/init/index.d.cts.map +1 -0
- package/dist/cli/commands/init/index.d.mts +12 -0
- package/dist/cli/commands/init/index.d.mts.map +1 -0
- package/dist/cli/commands/init/index.mjs +83 -0
- package/dist/cli/commands/init/index.mjs.map +1 -0
- package/dist/cli/commands/init/presenter.cjs +170 -0
- package/dist/cli/commands/init/presenter.cjs.map +1 -0
- package/dist/cli/commands/init/presenter.d.cts +8 -0
- package/dist/cli/commands/init/presenter.d.cts.map +1 -0
- package/dist/cli/commands/init/presenter.d.mts +8 -0
- package/dist/cli/commands/init/presenter.d.mts.map +1 -0
- package/dist/cli/commands/init/presenter.mjs +170 -0
- package/dist/cli/commands/init/presenter.mjs.map +1 -0
- package/dist/cli/commands/launch/index.cjs +128 -0
- package/dist/cli/commands/launch/index.cjs.map +1 -0
- package/dist/cli/commands/launch/index.d.cts +29 -0
- package/dist/cli/commands/launch/index.d.cts.map +1 -0
- package/dist/cli/commands/launch/index.d.mts +29 -0
- package/dist/cli/commands/launch/index.d.mts.map +1 -0
- package/dist/cli/commands/launch/index.mjs +122 -0
- package/dist/cli/commands/launch/index.mjs.map +1 -0
- package/dist/cli/commands/sandbox/args.cjs +50 -0
- package/dist/cli/commands/sandbox/args.cjs.map +1 -0
- package/dist/cli/commands/sandbox/args.mjs +50 -0
- package/dist/cli/commands/sandbox/args.mjs.map +1 -0
- package/dist/cli/commands/sandbox/harness.cjs +61 -0
- package/dist/cli/commands/sandbox/harness.cjs.map +1 -0
- package/dist/cli/commands/sandbox/harness.mjs +60 -0
- package/dist/cli/commands/sandbox/harness.mjs.map +1 -0
- package/dist/cli/commands/sandbox/index.cjs +57 -0
- package/dist/cli/commands/sandbox/index.cjs.map +1 -0
- package/dist/cli/commands/sandbox/index.mjs +56 -0
- package/dist/cli/commands/sandbox/index.mjs.map +1 -0
- package/dist/cli/commands/sync/help.cjs +31 -0
- package/dist/cli/commands/sync/help.cjs.map +1 -0
- package/dist/cli/commands/sync/help.d.cts +4 -0
- package/dist/cli/commands/sync/help.d.cts.map +1 -0
- package/dist/cli/commands/sync/help.d.mts +4 -0
- package/dist/cli/commands/sync/help.d.mts.map +1 -0
- package/dist/cli/commands/sync/help.mjs +31 -0
- package/dist/cli/commands/sync/help.mjs.map +1 -0
- package/dist/cli/commands/sync/index.cjs +577 -0
- package/dist/cli/commands/sync/index.cjs.map +1 -0
- package/dist/cli/commands/sync/index.d.cts +65 -0
- package/dist/cli/commands/sync/index.d.cts.map +1 -0
- package/dist/cli/commands/sync/index.d.mts +65 -0
- package/dist/cli/commands/sync/index.d.mts.map +1 -0
- package/dist/cli/commands/sync/index.mjs +560 -0
- package/dist/cli/commands/sync/index.mjs.map +1 -0
- package/dist/cli/commands/sync/prepare.cjs +43 -0
- package/dist/cli/commands/sync/prepare.cjs.map +1 -0
- package/dist/cli/commands/sync/prepare.mjs +40 -0
- package/dist/cli/commands/sync/prepare.mjs.map +1 -0
- package/dist/cli/commands/sync/presenter.cjs +58 -0
- package/dist/cli/commands/sync/presenter.cjs.map +1 -0
- package/dist/cli/commands/sync/presenter.d.cts +16 -0
- package/dist/cli/commands/sync/presenter.d.cts.map +1 -0
- package/dist/cli/commands/sync/presenter.d.mts +16 -0
- package/dist/cli/commands/sync/presenter.d.mts.map +1 -0
- package/dist/cli/commands/sync/presenter.mjs +57 -0
- package/dist/cli/commands/sync/presenter.mjs.map +1 -0
- package/dist/cli/commands/sync/workflow.cjs +99 -0
- package/dist/cli/commands/sync/workflow.cjs.map +1 -0
- package/dist/cli/commands/sync/workflow.mjs +96 -0
- package/dist/cli/commands/sync/workflow.mjs.map +1 -0
- package/dist/cli/dpi.cjs +98 -0
- package/dist/cli/dpi.cjs.map +1 -0
- package/dist/cli/dpi.mjs +91 -0
- package/dist/cli/dpi.mjs.map +1 -0
- package/dist/cli/harnessOptions.cjs +60 -0
- package/dist/cli/harnessOptions.cjs.map +1 -0
- package/dist/cli/harnessOptions.d.cts +24 -0
- package/dist/cli/harnessOptions.d.cts.map +1 -0
- package/dist/cli/harnessOptions.d.mts +24 -0
- package/dist/cli/harnessOptions.d.mts.map +1 -0
- package/dist/cli/harnessOptions.mjs +57 -0
- package/dist/cli/harnessOptions.mjs.map +1 -0
- package/dist/cli/help.cjs +89 -0
- package/dist/cli/help.cjs.map +1 -0
- package/dist/cli/help.d.cts +12 -0
- package/dist/cli/help.d.cts.map +1 -0
- package/dist/cli/help.d.mts +12 -0
- package/dist/cli/help.d.mts.map +1 -0
- package/dist/cli/help.mjs +83 -0
- package/dist/cli/help.mjs.map +1 -0
- package/dist/cli/matrixOptions.cjs +178 -0
- package/dist/cli/matrixOptions.cjs.map +1 -0
- package/dist/cli/matrixOptions.d.cts +90 -0
- package/dist/cli/matrixOptions.d.cts.map +1 -0
- package/dist/cli/matrixOptions.d.mts +90 -0
- package/dist/cli/matrixOptions.d.mts.map +1 -0
- package/dist/cli/matrixOptions.mjs +151 -0
- package/dist/cli/matrixOptions.mjs.map +1 -0
- package/dist/cli/options.cjs +306 -0
- package/dist/cli/options.cjs.map +1 -0
- package/dist/cli/options.d.cts +5 -0
- package/dist/cli/options.d.cts.map +1 -0
- package/dist/cli/options.d.mts +5 -0
- package/dist/cli/options.d.mts.map +1 -0
- package/dist/cli/options.mjs +304 -0
- package/dist/cli/options.mjs.map +1 -0
- package/dist/cli/router.cjs +59 -0
- package/dist/cli/router.cjs.map +1 -0
- package/dist/cli/router.d.cts +32 -0
- package/dist/cli/router.d.cts.map +1 -0
- package/dist/cli/router.d.mts +32 -0
- package/dist/cli/router.d.mts.map +1 -0
- package/dist/cli/router.mjs +56 -0
- package/dist/cli/router.mjs.map +1 -0
- package/dist/cli/server/options.cjs +71 -0
- package/dist/cli/server/options.cjs.map +1 -0
- package/dist/cli/server/options.mjs +70 -0
- package/dist/cli/server/options.mjs.map +1 -0
- package/dist/cli/server/run.cjs +45 -0
- package/dist/cli/server/run.cjs.map +1 -0
- package/dist/cli/server/run.mjs +45 -0
- package/dist/cli/server/run.mjs.map +1 -0
- package/dist/cli-app.cjs +5 -0
- package/dist/cli-app.d.cts +2 -0
- package/dist/cli-app.d.mts +2 -0
- package/dist/cli-app.mjs +2 -0
- package/dist/cli.cjs +28 -0
- package/dist/cli.d.cts +11 -0
- package/dist/cli.d.mts +11 -0
- package/dist/cli.mjs +11 -0
- package/dist/codex.cjs +8 -0
- package/dist/codex.d.cts +2 -0
- package/dist/codex.d.mts +2 -0
- package/dist/codex.mjs +2 -0
- package/dist/commands.cjs +23 -0
- package/dist/commands.d.cts +9 -0
- package/dist/commands.d.mts +9 -0
- package/dist/commands.mjs +9 -0
- package/dist/compatibility-command.cjs +4 -0
- package/dist/compatibility-command.d.cts +2 -0
- package/dist/compatibility-command.d.mts +2 -0
- package/dist/compatibility-command.mjs +2 -0
- package/dist/compatibility-context.cjs +3 -0
- package/dist/compatibility-context.d.cts +2 -0
- package/dist/compatibility-context.d.mts +2 -0
- package/dist/compatibility-context.mjs +2 -0
- package/dist/compatibility-options.cjs +5 -0
- package/dist/compatibility-options.d.cts +2 -0
- package/dist/compatibility-options.d.mts +2 -0
- package/dist/compatibility-options.mjs +2 -0
- package/dist/compatibility.cjs +27 -0
- package/dist/compatibility.d.cts +6 -0
- package/dist/compatibility.d.mts +6 -0
- package/dist/compatibility.mjs +6 -0
- package/dist/compiler/cache.cjs +331 -0
- package/dist/compiler/cache.cjs.map +1 -0
- package/dist/compiler/cache.mjs +323 -0
- package/dist/compiler/cache.mjs.map +1 -0
- package/dist/compiler/index.cjs +996 -0
- package/dist/compiler/index.cjs.map +1 -0
- package/dist/compiler/index.mjs +988 -0
- package/dist/compiler/index.mjs.map +1 -0
- package/dist/compiler/inputs.cjs +83 -0
- package/dist/compiler/inputs.cjs.map +1 -0
- package/dist/compiler/inputs.mjs +78 -0
- package/dist/compiler/inputs.mjs.map +1 -0
- package/dist/composer.cjs +28 -0
- package/dist/composer.d.cts +4 -0
- package/dist/composer.d.mts +4 -0
- package/dist/composer.mjs +4 -0
- package/dist/composition/harnessState/index.cjs +48 -0
- package/dist/composition/harnessState/index.cjs.map +1 -0
- package/dist/composition/harnessState/index.d.cts +19 -0
- package/dist/composition/harnessState/index.d.cts.map +1 -0
- package/dist/composition/harnessState/index.d.mts +19 -0
- package/dist/composition/harnessState/index.d.mts.map +1 -0
- package/dist/composition/harnessState/index.mjs +34 -0
- package/dist/composition/harnessState/index.mjs.map +1 -0
- package/dist/composition/layerPackageInstaller/index.cjs +342 -0
- package/dist/composition/layerPackageInstaller/index.cjs.map +1 -0
- package/dist/composition/layerPackageInstaller/index.d.cts +45 -0
- package/dist/composition/layerPackageInstaller/index.d.cts.map +1 -0
- package/dist/composition/layerPackageInstaller/index.d.mts +45 -0
- package/dist/composition/layerPackageInstaller/index.d.mts.map +1 -0
- package/dist/composition/layerPackageInstaller/index.mjs +334 -0
- package/dist/composition/layerPackageInstaller/index.mjs.map +1 -0
- package/dist/composition/projectTrust/index.cjs +51 -0
- package/dist/composition/projectTrust/index.cjs.map +1 -0
- package/dist/composition/projectTrust/index.d.cts +22 -0
- package/dist/composition/projectTrust/index.d.cts.map +1 -0
- package/dist/composition/projectTrust/index.d.mts +22 -0
- package/dist/composition/projectTrust/index.d.mts.map +1 -0
- package/dist/composition/projectTrust/index.mjs +48 -0
- package/dist/composition/projectTrust/index.mjs.map +1 -0
- package/dist/composition/repository/index.cjs +69 -0
- package/dist/composition/repository/index.cjs.map +1 -0
- package/dist/composition/repository/index.d.cts +22 -0
- package/dist/composition/repository/index.d.cts.map +1 -0
- package/dist/composition/repository/index.d.mts +22 -0
- package/dist/composition/repository/index.d.mts.map +1 -0
- package/dist/composition/repository/index.mjs +64 -0
- package/dist/composition/repository/index.mjs.map +1 -0
- package/dist/composition/syncDrift/index.cjs +160 -0
- package/dist/composition/syncDrift/index.cjs.map +1 -0
- package/dist/composition/syncDrift/index.d.cts +41 -0
- package/dist/composition/syncDrift/index.d.cts.map +1 -0
- package/dist/composition/syncDrift/index.d.mts +41 -0
- package/dist/composition/syncDrift/index.d.mts.map +1 -0
- package/dist/composition/syncDrift/index.mjs +152 -0
- package/dist/composition/syncDrift/index.mjs.map +1 -0
- package/dist/composition/syncState/index.cjs +593 -0
- package/dist/composition/syncState/index.cjs.map +1 -0
- package/dist/composition/syncState/index.d.cts +188 -0
- package/dist/composition/syncState/index.d.cts.map +1 -0
- package/dist/composition/syncState/index.d.mts +188 -0
- package/dist/composition/syncState/index.d.mts.map +1 -0
- package/dist/composition/syncState/index.mjs +559 -0
- package/dist/composition/syncState/index.mjs.map +1 -0
- package/dist/composition/transitionLayers.cjs +17 -0
- package/dist/composition/transitionLayers.cjs.map +1 -0
- package/dist/composition/transitionLayers.d.cts +6 -0
- package/dist/composition/transitionLayers.d.cts.map +1 -0
- package/dist/composition/transitionLayers.d.mts +6 -0
- package/dist/composition/transitionLayers.d.mts.map +1 -0
- package/dist/composition/transitionLayers.mjs +16 -0
- package/dist/composition/transitionLayers.mjs.map +1 -0
- package/dist/composition/types/harness.d.cts +49 -0
- package/dist/composition/types/harness.d.cts.map +1 -0
- package/dist/composition/types/harness.d.mts +49 -0
- package/dist/composition/types/harness.d.mts.map +1 -0
- package/dist/config.cjs +163 -0
- package/dist/config.d.cts +7 -0
- package/dist/config.d.mts +7 -0
- package/dist/config.mjs +7 -0
- package/dist/emit-mcp-command.cjs +4 -0
- package/dist/emit-mcp-command.d.cts +2 -0
- package/dist/emit-mcp-command.d.mts +2 -0
- package/dist/emit-mcp-command.mjs +2 -0
- package/dist/explain-command.cjs +5 -0
- package/dist/explain-command.d.cts +2 -0
- package/dist/explain-command.d.mts +2 -0
- package/dist/explain-command.mjs +2 -0
- package/dist/extensions/agent-model.cjs +41 -0
- package/dist/extensions/agent-model.cjs.map +1 -0
- package/dist/extensions/agent-model.d.cts +22 -0
- package/dist/extensions/agent-model.d.cts.map +1 -0
- package/dist/extensions/agent-model.d.mts +22 -0
- package/dist/extensions/agent-model.d.mts.map +1 -0
- package/dist/extensions/agent-model.mjs +35 -0
- package/dist/extensions/agent-model.mjs.map +1 -0
- package/dist/extensions/composed-pi.cjs +46 -0
- package/dist/extensions/composed-pi.cjs.map +1 -0
- package/dist/extensions/composed-pi.d.cts +13 -0
- package/dist/extensions/composed-pi.d.cts.map +1 -0
- package/dist/extensions/composed-pi.d.mts +13 -0
- package/dist/extensions/composed-pi.d.mts.map +1 -0
- package/dist/extensions/composed-pi.mjs +41 -0
- package/dist/extensions/composed-pi.mjs.map +1 -0
- package/dist/extensions/context-catalog.cjs +96 -0
- package/dist/extensions/context-catalog.cjs.map +1 -0
- package/dist/extensions/context-catalog.d.cts +4 -0
- package/dist/extensions/context-catalog.d.cts.map +1 -0
- package/dist/extensions/context-catalog.d.mts +5 -0
- package/dist/extensions/context-catalog.d.mts.map +1 -0
- package/dist/extensions/context-catalog.mjs +96 -0
- package/dist/extensions/context-catalog.mjs.map +1 -0
- package/dist/extensions/cordis-finalizer.cjs +24 -0
- package/dist/extensions/cordis-finalizer.cjs.map +1 -0
- package/dist/extensions/cordis-finalizer.d.cts +7 -0
- package/dist/extensions/cordis-finalizer.d.cts.map +1 -0
- package/dist/extensions/cordis-finalizer.d.mts +7 -0
- package/dist/extensions/cordis-finalizer.d.mts.map +1 -0
- package/dist/extensions/cordis-finalizer.mjs +19 -0
- package/dist/extensions/cordis-finalizer.mjs.map +1 -0
- package/dist/extensions/cordis-host.cjs +19 -0
- package/dist/extensions/cordis-host.cjs.map +1 -0
- package/dist/extensions/cordis-host.d.cts +7 -0
- package/dist/extensions/cordis-host.d.cts.map +1 -0
- package/dist/extensions/cordis-host.d.mts +7 -0
- package/dist/extensions/cordis-host.d.mts.map +1 -0
- package/dist/extensions/cordis-host.mjs +14 -0
- package/dist/extensions/cordis-host.mjs.map +1 -0
- package/dist/extensions/effort.cjs +54 -0
- package/dist/extensions/effort.cjs.map +1 -0
- package/dist/extensions/effort.d.cts +8 -0
- package/dist/extensions/effort.d.cts.map +1 -0
- package/dist/extensions/effort.d.mts +8 -0
- package/dist/extensions/effort.d.mts.map +1 -0
- package/dist/extensions/effort.mjs +48 -0
- package/dist/extensions/effort.mjs.map +1 -0
- package/dist/extensions/launcher-bootstrap.cjs +38 -0
- package/dist/extensions/launcher-bootstrap.cjs.map +1 -0
- package/dist/extensions/launcher-bootstrap.d.cts +16 -0
- package/dist/extensions/launcher-bootstrap.d.cts.map +1 -0
- package/dist/extensions/launcher-bootstrap.d.mts +16 -0
- package/dist/extensions/launcher-bootstrap.d.mts.map +1 -0
- package/dist/extensions/launcher-bootstrap.mjs +33 -0
- package/dist/extensions/launcher-bootstrap.mjs.map +1 -0
- package/dist/extensions/ollama-provider.cjs +32 -0
- package/dist/extensions/ollama-provider.cjs.map +1 -0
- package/dist/extensions/ollama-provider.d.cts +5 -0
- package/dist/extensions/ollama-provider.d.cts.map +1 -0
- package/dist/extensions/ollama-provider.d.mts +5 -0
- package/dist/extensions/ollama-provider.d.mts.map +1 -0
- package/dist/extensions/ollama-provider.mjs +32 -0
- package/dist/extensions/ollama-provider.mjs.map +1 -0
- package/dist/extensions/pi.cjs +63 -0
- package/dist/extensions/pi.cjs.map +1 -0
- package/dist/extensions/pi.d.cts +7 -0
- package/dist/extensions/pi.d.cts.map +1 -0
- package/dist/extensions/pi.d.mts +7 -0
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +58 -0
- package/dist/extensions/pi.mjs.map +1 -0
- package/dist/extensions/server.cjs +20 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.cts +5 -0
- package/dist/extensions/server.d.cts.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +15 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/extensions/style-system.cjs +234 -0
- package/dist/extensions/style-system.cjs.map +1 -0
- package/dist/extensions/style-system.d.cts +32 -0
- package/dist/extensions/style-system.d.cts.map +1 -0
- package/dist/extensions/style-system.d.mts +32 -0
- package/dist/extensions/style-system.d.mts.map +1 -0
- package/dist/extensions/style-system.mjs +219 -0
- package/dist/extensions/style-system.mjs.map +1 -0
- package/dist/extensions/terminal-child-session.cjs +76 -0
- package/dist/extensions/terminal-child-session.cjs.map +1 -0
- package/dist/extensions/terminal-child-session.d.cts +7 -0
- package/dist/extensions/terminal-child-session.d.cts.map +1 -0
- package/dist/extensions/terminal-child-session.d.mts +7 -0
- package/dist/extensions/terminal-child-session.d.mts.map +1 -0
- package/dist/extensions/terminal-child-session.mjs +69 -0
- package/dist/extensions/terminal-child-session.mjs.map +1 -0
- package/dist/extensions/transition-coordinator.cjs +154 -0
- package/dist/extensions/transition-coordinator.cjs.map +1 -0
- package/dist/extensions/transition-coordinator.d.cts +8 -0
- package/dist/extensions/transition-coordinator.d.cts.map +1 -0
- package/dist/extensions/transition-coordinator.d.mts +8 -0
- package/dist/extensions/transition-coordinator.d.mts.map +1 -0
- package/dist/extensions/transition-coordinator.mjs +146 -0
- package/dist/extensions/transition-coordinator.mjs.map +1 -0
- package/dist/harness-context.cjs +5 -0
- package/dist/harness-context.d.cts +2 -0
- package/dist/harness-context.d.mts +2 -0
- package/dist/harness-context.mjs +2 -0
- package/dist/harness-state.cjs +19 -0
- package/dist/harness-state.d.cts +2 -0
- package/dist/harness-state.d.mts +2 -0
- package/dist/harness-state.mjs +2 -0
- package/dist/help.cjs +16 -0
- package/dist/help.d.cts +8 -0
- package/dist/help.d.mts +8 -0
- package/dist/help.mjs +8 -0
- package/dist/index.cjs +368 -0
- package/dist/index.d.cts +49 -0
- package/dist/index.d.mts +49 -0
- package/dist/index.mjs +46 -0
- package/dist/init-command.cjs +4 -0
- package/dist/init-command.d.cts +2 -0
- package/dist/init-command.d.mts +2 -0
- package/dist/init-command.mjs +2 -0
- package/dist/launch-command.cjs +7 -0
- package/dist/launch-command.d.cts +2 -0
- package/dist/launch-command.d.mts +2 -0
- package/dist/launch-command.mjs +2 -0
- package/dist/matrix-options.cjs +28 -0
- package/dist/matrix-options.d.cts +2 -0
- package/dist/matrix-options.d.mts +2 -0
- package/dist/matrix-options.mjs +2 -0
- package/dist/matrix-switcher.cjs +11 -0
- package/dist/matrix-switcher.d.cts +3 -0
- package/dist/matrix-switcher.d.mts +3 -0
- package/dist/matrix-switcher.mjs +3 -0
- package/dist/mcp-filter.cjs +9 -0
- package/dist/mcp-filter.d.cts +1 -0
- package/dist/mcp-filter.d.mts +1 -0
- package/dist/mcp-filter.mjs +2 -0
- package/dist/options.cjs +3 -0
- package/dist/options.d.cts +2 -0
- package/dist/options.d.mts +2 -0
- package/dist/options.mjs +2 -0
- package/dist/process.cjs +12 -0
- package/dist/process.d.cts +2 -0
- package/dist/process.d.mts +2 -0
- package/dist/process.mjs +2 -0
- package/dist/project-trust.cjs +6 -0
- package/dist/project-trust.d.cts +2 -0
- package/dist/project-trust.d.mts +2 -0
- package/dist/project-trust.mjs +2 -0
- package/dist/repository.cjs +5 -0
- package/dist/repository.d.cts +2 -0
- package/dist/repository.d.mts +2 -0
- package/dist/repository.mjs +2 -0
- package/dist/resource-collector.cjs +9 -0
- package/dist/resource-collector.d.cts +1 -0
- package/dist/resource-collector.d.mts +1 -0
- package/dist/resource-collector.mjs +2 -0
- package/dist/services.cjs +154 -0
- package/dist/services.d.cts +21 -0
- package/dist/services.d.mts +21 -0
- package/dist/services.mjs +21 -0
- package/dist/shared.cjs +18 -0
- package/dist/shared.d.cts +2 -0
- package/dist/shared.d.mts +2 -0
- package/dist/shared.mjs +2 -0
- package/dist/sync-command.cjs +13 -0
- package/dist/sync-command.d.cts +2 -0
- package/dist/sync-command.d.mts +2 -0
- package/dist/sync-command.mjs +2 -0
- package/dist/sync-state.cjs +33 -0
- package/dist/sync-state.d.cts +2 -0
- package/dist/sync-state.d.mts +2 -0
- package/dist/sync-state.mjs +2 -0
- package/dist/utils.cjs +6 -0
- package/dist/utils.d.cts +3 -0
- package/dist/utils.d.mts +3 -0
- package/dist/utils.mjs +3 -0
- package/package.json +16 -16
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
import crypto from "node:crypto";
|
|
5
|
+
//#region src/compiler/cache.ts
|
|
6
|
+
const SHARED_BUILD_SCHEMA = 1;
|
|
7
|
+
const OBJECTS_DIRECTORY = "objects";
|
|
8
|
+
const INDEX_DIRECTORY = "index";
|
|
9
|
+
const LOCKS_DIRECTORY = "locks";
|
|
10
|
+
const MANIFEST_FILE = "manifest.json";
|
|
11
|
+
const OWNER_FILE = "owner.json";
|
|
12
|
+
const LOCK_STALE_MS = 3e5;
|
|
13
|
+
const LOCK_TIMEOUT_MS = 6e4;
|
|
14
|
+
const LOCK_RETRY_MS = 25;
|
|
15
|
+
const PRIVATE_DIRECTORY_MODE = 448;
|
|
16
|
+
const PRIVATE_FILE_MODE = 384;
|
|
17
|
+
const SHA256_PATTERN = /^[a-f0-9]{64}$/u;
|
|
18
|
+
const OUTPUT_ROOT_TOKEN = "__DOOMPI_PATH_OUTPUT__";
|
|
19
|
+
function isRecord(value) {
|
|
20
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21
|
+
}
|
|
22
|
+
function contentSha256(contents) {
|
|
23
|
+
return crypto.createHash("sha256").update(contents).digest("hex");
|
|
24
|
+
}
|
|
25
|
+
function safeRelativePath(value) {
|
|
26
|
+
if (value === "" || path.isAbsolute(value)) return void 0;
|
|
27
|
+
const normalized = path.normalize(value);
|
|
28
|
+
return normalized === ".." || normalized.startsWith(`..${path.sep}`) ? void 0 : normalized;
|
|
29
|
+
}
|
|
30
|
+
function parseManifest(value) {
|
|
31
|
+
if (!isRecord(value) || value.schema !== SHARED_BUILD_SCHEMA || typeof value.key !== "string" || !SHA256_PATTERN.test(value.key) || typeof value.lookupKey !== "string" || !SHA256_PATTERN.test(value.lookupKey) || typeof value.entry !== "string" || !Array.isArray(value.inputs) || !Array.isArray(value.artifacts)) return;
|
|
32
|
+
const inputs = [];
|
|
33
|
+
for (const input of value.inputs) {
|
|
34
|
+
if (!isRecord(input) || typeof input.logicalPath !== "string" || typeof input.sha256 !== "string" || input.sha256 !== "" && !SHA256_PATTERN.test(input.sha256) || typeof input.token !== "string" || input.sourcePath !== void 0 && (typeof input.sourcePath !== "string" || !path.isAbsolute(input.sourcePath))) return;
|
|
35
|
+
inputs.push({
|
|
36
|
+
logicalPath: input.logicalPath,
|
|
37
|
+
sha256: input.sha256,
|
|
38
|
+
token: input.token,
|
|
39
|
+
...typeof input.sourcePath === "string" ? { sourcePath: input.sourcePath } : {}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const artifacts = [];
|
|
43
|
+
for (const artifact of value.artifacts) {
|
|
44
|
+
if (!isRecord(artifact) || typeof artifact.path !== "string" || typeof artifact.sha256 !== "string" || !SHA256_PATTERN.test(artifact.sha256) || artifact.mode !== void 0 && (typeof artifact.mode !== "number" || !Number.isInteger(artifact.mode) || artifact.mode < 0 || artifact.mode > 511)) return;
|
|
45
|
+
if (!safeRelativePath(artifact.path)) return void 0;
|
|
46
|
+
artifacts.push({
|
|
47
|
+
path: artifact.path,
|
|
48
|
+
sha256: artifact.sha256,
|
|
49
|
+
...typeof artifact.mode === "number" ? { mode: artifact.mode } : {}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (!safeRelativePath(value.entry)) return void 0;
|
|
53
|
+
return {
|
|
54
|
+
schema: SHARED_BUILD_SCHEMA,
|
|
55
|
+
key: value.key,
|
|
56
|
+
lookupKey: value.lookupKey,
|
|
57
|
+
entry: value.entry,
|
|
58
|
+
inputs,
|
|
59
|
+
artifacts
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function readJson(target) {
|
|
63
|
+
try {
|
|
64
|
+
return JSON.parse(fs.readFileSync(target, "utf8"));
|
|
65
|
+
} catch {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function writeAtomic(target, contents, mode = PRIVATE_FILE_MODE) {
|
|
70
|
+
fs.mkdirSync(path.dirname(target), {
|
|
71
|
+
recursive: true,
|
|
72
|
+
mode: PRIVATE_DIRECTORY_MODE
|
|
73
|
+
});
|
|
74
|
+
const temporary = `${target}.${process.pid}.${crypto.randomUUID()}.tmp`;
|
|
75
|
+
try {
|
|
76
|
+
fs.writeFileSync(temporary, contents, { mode });
|
|
77
|
+
fs.renameSync(temporary, target);
|
|
78
|
+
fs.chmodSync(target, mode);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
fs.rmSync(temporary, { force: true });
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function indexPath(cacheDirectory, lookupKey) {
|
|
85
|
+
return path.join(cacheDirectory, INDEX_DIRECTORY, `${lookupKey}.json`);
|
|
86
|
+
}
|
|
87
|
+
function readIndex(cacheDirectory, lookupKey) {
|
|
88
|
+
const parsed = readJson(indexPath(cacheDirectory, lookupKey));
|
|
89
|
+
if (!isRecord(parsed) || parsed.schema !== SHARED_BUILD_SCHEMA || !Array.isArray(parsed.keys)) return {
|
|
90
|
+
schema: SHARED_BUILD_SCHEMA,
|
|
91
|
+
keys: []
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
schema: SHARED_BUILD_SCHEMA,
|
|
95
|
+
keys: parsed.keys.filter((key) => typeof key === "string")
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function writeIndex(cacheDirectory, lookupKey, key) {
|
|
99
|
+
const keys = [key, ...readIndex(cacheDirectory, lookupKey).keys.filter((candidate) => candidate !== key)];
|
|
100
|
+
writeAtomic(indexPath(cacheDirectory, lookupKey), `${JSON.stringify({
|
|
101
|
+
schema: SHARED_BUILD_SCHEMA,
|
|
102
|
+
keys
|
|
103
|
+
}, null, 2)}\n`);
|
|
104
|
+
}
|
|
105
|
+
function objectDirectory(cacheDirectory, key) {
|
|
106
|
+
return path.join(cacheDirectory, OBJECTS_DIRECTORY, key);
|
|
107
|
+
}
|
|
108
|
+
function artifactBytes(directory, artifact) {
|
|
109
|
+
const relative = safeRelativePath(artifact.path);
|
|
110
|
+
if (!relative) return void 0;
|
|
111
|
+
try {
|
|
112
|
+
if (fs.lstatSync(directory).isSymbolicLink()) return void 0;
|
|
113
|
+
const target = path.join(directory, relative);
|
|
114
|
+
if (fs.lstatSync(target).isSymbolicLink()) return void 0;
|
|
115
|
+
const canonicalDirectory = fs.realpathSync(directory);
|
|
116
|
+
const canonicalTarget = fs.realpathSync(target);
|
|
117
|
+
const confined = path.relative(canonicalDirectory, canonicalTarget);
|
|
118
|
+
if (confined.startsWith("..") || path.isAbsolute(confined)) return void 0;
|
|
119
|
+
const bytes = fs.readFileSync(canonicalTarget);
|
|
120
|
+
return contentSha256(bytes) === artifact.sha256 ? bytes : void 0;
|
|
121
|
+
} catch {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function findSharedBuild(cacheDirectory, lookupKey, resolveInput) {
|
|
126
|
+
if (!SHA256_PATTERN.test(lookupKey)) return void 0;
|
|
127
|
+
for (const key of readIndex(cacheDirectory, lookupKey).keys) {
|
|
128
|
+
if (!SHA256_PATTERN.test(key)) continue;
|
|
129
|
+
const directory = objectDirectory(cacheDirectory, key);
|
|
130
|
+
const manifest = parseManifest(readJson(path.join(directory, MANIFEST_FILE)));
|
|
131
|
+
if (!manifest || manifest.key !== key || manifest.lookupKey !== lookupKey || !manifestKeyMatches(manifest)) continue;
|
|
132
|
+
if (manifest.artifacts.some((artifact) => artifactBytes(directory, artifact) === void 0)) continue;
|
|
133
|
+
const replacements = /* @__PURE__ */ new Map();
|
|
134
|
+
let valid = true;
|
|
135
|
+
for (const input of manifest.inputs) {
|
|
136
|
+
const target = resolveInput(input);
|
|
137
|
+
if (!target) {
|
|
138
|
+
valid = false;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
if (input.sha256 !== "") try {
|
|
142
|
+
if (contentSha256(fs.readFileSync(target)) !== input.sha256) {
|
|
143
|
+
valid = false;
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
} catch {
|
|
147
|
+
valid = false;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
replacements.set(input.token, target);
|
|
151
|
+
}
|
|
152
|
+
if (valid) return {
|
|
153
|
+
directory,
|
|
154
|
+
manifest,
|
|
155
|
+
replacements
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function manifestKey(options, artifacts) {
|
|
160
|
+
return contentSha256(JSON.stringify({
|
|
161
|
+
schema: SHARED_BUILD_SCHEMA,
|
|
162
|
+
lookupKey: options.lookupKey,
|
|
163
|
+
entry: options.entry,
|
|
164
|
+
inputs: options.inputs,
|
|
165
|
+
artifacts
|
|
166
|
+
}));
|
|
167
|
+
}
|
|
168
|
+
function manifestKeyMatches(manifest) {
|
|
169
|
+
return manifest.key === manifestKey({
|
|
170
|
+
lookupKey: manifest.lookupKey,
|
|
171
|
+
entry: manifest.entry,
|
|
172
|
+
inputs: manifest.inputs,
|
|
173
|
+
artifacts: /* @__PURE__ */ new Map()
|
|
174
|
+
}, manifest.artifacts);
|
|
175
|
+
}
|
|
176
|
+
function sharedObjectMatches(directory, expected) {
|
|
177
|
+
const current = parseManifest(readJson(path.join(directory, MANIFEST_FILE)));
|
|
178
|
+
if (!current || current.key !== expected.key || !manifestKeyMatches(current)) return false;
|
|
179
|
+
return expected.artifacts.every((artifact) => artifactBytes(directory, artifact) !== void 0);
|
|
180
|
+
}
|
|
181
|
+
function publishSharedBuild(options) {
|
|
182
|
+
if (!SHA256_PATTERN.test(options.lookupKey)) throw new Error(`Shared build lookup key must be a full SHA-256 digest: ${options.lookupKey}`);
|
|
183
|
+
if (options.inputs.some((input) => input.sourcePath !== void 0 && !path.isAbsolute(input.sourcePath))) throw new Error("Shared build external source paths must be absolute");
|
|
184
|
+
const artifacts = [...options.artifacts.entries()].map(([artifactPath, value]) => {
|
|
185
|
+
const asset = typeof value === "string" || value instanceof Uint8Array ? { contents: value } : value;
|
|
186
|
+
const relative = safeRelativePath(artifactPath);
|
|
187
|
+
if (!relative) throw new Error(`Shared build artifact escapes its object: ${artifactPath}`);
|
|
188
|
+
return {
|
|
189
|
+
path: relative,
|
|
190
|
+
sha256: contentSha256(asset.contents),
|
|
191
|
+
...asset.mode === void 0 ? {} : { mode: asset.mode }
|
|
192
|
+
};
|
|
193
|
+
}).sort((left, right) => left.path.localeCompare(right.path));
|
|
194
|
+
const inputs = [...options.inputs].sort((left, right) => left.logicalPath.localeCompare(right.logicalPath));
|
|
195
|
+
const key = manifestKey({
|
|
196
|
+
...options,
|
|
197
|
+
inputs
|
|
198
|
+
}, artifacts);
|
|
199
|
+
const manifest = {
|
|
200
|
+
schema: SHARED_BUILD_SCHEMA,
|
|
201
|
+
key,
|
|
202
|
+
lookupKey: options.lookupKey,
|
|
203
|
+
entry: options.entry,
|
|
204
|
+
inputs,
|
|
205
|
+
artifacts
|
|
206
|
+
};
|
|
207
|
+
const finalDirectory = objectDirectory(options.cacheDirectory, key);
|
|
208
|
+
if (fs.existsSync(finalDirectory) && !sharedObjectMatches(finalDirectory, manifest)) fs.rmSync(finalDirectory, {
|
|
209
|
+
recursive: true,
|
|
210
|
+
force: true
|
|
211
|
+
});
|
|
212
|
+
if (!fs.existsSync(finalDirectory)) {
|
|
213
|
+
const temporaryDirectory = `${finalDirectory}.${process.pid}.${crypto.randomUUID()}.tmp`;
|
|
214
|
+
try {
|
|
215
|
+
fs.mkdirSync(temporaryDirectory, {
|
|
216
|
+
recursive: true,
|
|
217
|
+
mode: PRIVATE_DIRECTORY_MODE
|
|
218
|
+
});
|
|
219
|
+
for (const [artifactPath, value] of options.artifacts) {
|
|
220
|
+
const asset = typeof value === "string" || value instanceof Uint8Array ? { contents: value } : value;
|
|
221
|
+
const relative = safeRelativePath(artifactPath);
|
|
222
|
+
if (!relative) throw new Error(`Shared build artifact escapes its object: ${artifactPath}`);
|
|
223
|
+
const target = path.join(temporaryDirectory, relative);
|
|
224
|
+
fs.mkdirSync(path.dirname(target), {
|
|
225
|
+
recursive: true,
|
|
226
|
+
mode: PRIVATE_DIRECTORY_MODE
|
|
227
|
+
});
|
|
228
|
+
fs.writeFileSync(target, asset.contents, { mode: asset.mode ?? PRIVATE_FILE_MODE });
|
|
229
|
+
fs.chmodSync(target, asset.mode ?? PRIVATE_FILE_MODE);
|
|
230
|
+
}
|
|
231
|
+
fs.writeFileSync(path.join(temporaryDirectory, MANIFEST_FILE), `${JSON.stringify(manifest, null, 2)}\n`, { mode: PRIVATE_FILE_MODE });
|
|
232
|
+
fs.mkdirSync(path.dirname(finalDirectory), {
|
|
233
|
+
recursive: true,
|
|
234
|
+
mode: PRIVATE_DIRECTORY_MODE
|
|
235
|
+
});
|
|
236
|
+
try {
|
|
237
|
+
fs.renameSync(temporaryDirectory, finalDirectory);
|
|
238
|
+
} catch (error) {
|
|
239
|
+
if (!fs.existsSync(finalDirectory)) throw error;
|
|
240
|
+
}
|
|
241
|
+
} finally {
|
|
242
|
+
fs.rmSync(temporaryDirectory, {
|
|
243
|
+
recursive: true,
|
|
244
|
+
force: true
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
writeIndex(options.cacheDirectory, options.lookupKey, key);
|
|
249
|
+
return manifest;
|
|
250
|
+
}
|
|
251
|
+
function materializeSharedBuild(build, outputDirectory) {
|
|
252
|
+
const replacements = [...build.replacements.entries()].sort(([left], [right]) => right.length - left.length);
|
|
253
|
+
for (const artifact of build.manifest.artifacts) {
|
|
254
|
+
const bytes = artifactBytes(build.directory, artifact);
|
|
255
|
+
if (!bytes) throw new Error(`Shared build artifact is corrupt: ${artifact.path}`);
|
|
256
|
+
let contents = bytes;
|
|
257
|
+
if (artifact.path.endsWith(".mjs")) {
|
|
258
|
+
let source = bytes.toString("utf8");
|
|
259
|
+
source = source.replaceAll(`${OUTPUT_ROOT_TOKEN}:url`, pathToFileURL(outputDirectory).href).replaceAll(OUTPUT_ROOT_TOKEN, outputDirectory);
|
|
260
|
+
for (const [token, target] of replacements) source = source.replaceAll(`${token}:url`, pathToFileURL(target).href).replaceAll(token, target);
|
|
261
|
+
if (source.includes("__DOOMPI_PATH_")) throw new Error(`Shared build left unresolved path tokens in ${artifact.path}`);
|
|
262
|
+
contents = source;
|
|
263
|
+
}
|
|
264
|
+
writeAtomic(path.join(outputDirectory, artifact.path), contents, artifact.mode ?? PRIVATE_FILE_MODE);
|
|
265
|
+
}
|
|
266
|
+
return path.join(outputDirectory, build.manifest.entry);
|
|
267
|
+
}
|
|
268
|
+
function processAlive(processId) {
|
|
269
|
+
try {
|
|
270
|
+
process.kill(processId, 0);
|
|
271
|
+
return true;
|
|
272
|
+
} catch {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
function lockIsStale(lockDirectory) {
|
|
277
|
+
const owner = readJson(path.join(lockDirectory, OWNER_FILE));
|
|
278
|
+
if (!isRecord(owner) || typeof owner.pid !== "number" || typeof owner.createdAt !== "number") return true;
|
|
279
|
+
return Date.now() - owner.createdAt > LOCK_STALE_MS && !processAlive(owner.pid);
|
|
280
|
+
}
|
|
281
|
+
async function sleep(milliseconds) {
|
|
282
|
+
await new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
283
|
+
}
|
|
284
|
+
async function withSharedBuildLock(cacheDirectory, lookupKey, operation) {
|
|
285
|
+
if (!SHA256_PATTERN.test(lookupKey)) throw new Error(`Shared build lock key must be a full SHA-256 digest: ${lookupKey}`);
|
|
286
|
+
const lockDirectory = path.join(cacheDirectory, LOCKS_DIRECTORY, `${lookupKey}.lock`);
|
|
287
|
+
fs.mkdirSync(path.dirname(lockDirectory), {
|
|
288
|
+
recursive: true,
|
|
289
|
+
mode: PRIVATE_DIRECTORY_MODE
|
|
290
|
+
});
|
|
291
|
+
const startedAt = Date.now();
|
|
292
|
+
while (true) try {
|
|
293
|
+
fs.mkdirSync(lockDirectory, { mode: PRIVATE_DIRECTORY_MODE });
|
|
294
|
+
fs.writeFileSync(path.join(lockDirectory, OWNER_FILE), `${JSON.stringify({
|
|
295
|
+
pid: process.pid,
|
|
296
|
+
createdAt: Date.now()
|
|
297
|
+
})}\n`, { mode: PRIVATE_FILE_MODE });
|
|
298
|
+
break;
|
|
299
|
+
} catch (error) {
|
|
300
|
+
if (!(error instanceof Error) || !("code" in error) || error.code !== "EEXIST") throw error;
|
|
301
|
+
if (lockIsStale(lockDirectory)) {
|
|
302
|
+
fs.rmSync(lockDirectory, {
|
|
303
|
+
recursive: true,
|
|
304
|
+
force: true
|
|
305
|
+
});
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
if (Date.now() - startedAt >= LOCK_TIMEOUT_MS) throw new Error(`Timed out waiting for shared build lock ${lookupKey}`);
|
|
309
|
+
await sleep(LOCK_RETRY_MS);
|
|
310
|
+
}
|
|
311
|
+
try {
|
|
312
|
+
return await operation();
|
|
313
|
+
} finally {
|
|
314
|
+
fs.rmSync(lockDirectory, {
|
|
315
|
+
recursive: true,
|
|
316
|
+
force: true
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
//#endregion
|
|
321
|
+
export { contentSha256, findSharedBuild, materializeSharedBuild, publishSharedBuild, withSharedBuildLock };
|
|
322
|
+
|
|
323
|
+
//# sourceMappingURL=cache.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.mjs","names":[],"sources":["../../src/compiler/cache.ts"],"sourcesContent":["import crypto from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { pathToFileURL } from 'node:url';\n\nconst SHARED_BUILD_SCHEMA = 1;\nconst OBJECTS_DIRECTORY = 'objects';\nconst INDEX_DIRECTORY = 'index';\nconst LOCKS_DIRECTORY = 'locks';\nconst MANIFEST_FILE = 'manifest.json';\nconst OWNER_FILE = 'owner.json';\nconst LOCK_STALE_MS = 5 * 60_000;\nconst LOCK_TIMEOUT_MS = 60_000;\nconst LOCK_RETRY_MS = 25;\nconst PRIVATE_DIRECTORY_MODE = 0o700;\nconst PRIVATE_FILE_MODE = 0o600;\nconst SHA256_PATTERN = /^[a-f0-9]{64}$/u;\nconst OUTPUT_ROOT_TOKEN = '__DOOMPI_PATH_OUTPUT__';\nexport interface SharedBuildInput {\n logicalPath: string;\n sha256: string;\n token: string;\n /** Canonical source path for inputs outside the synchronized repository. */\n sourcePath?: string;\n}\n\nexport interface SharedBuildAsset {\n contents: string | Uint8Array;\n mode?: number;\n}\n\nexport interface SharedBuildArtifact {\n path: string;\n sha256: string;\n mode?: number;\n}\n\nexport interface SharedBuildManifest {\n schema: number;\n key: string;\n lookupKey: string;\n entry: string;\n inputs: SharedBuildInput[];\n artifacts: SharedBuildArtifact[];\n}\n\nexport interface ResolvedSharedBuild {\n directory: string;\n manifest: SharedBuildManifest;\n replacements: ReadonlyMap<string, string>;\n}\n\ninterface SharedBuildIndex {\n schema: number;\n keys: string[];\n}\n\nexport interface PublishSharedBuildOptions {\n cacheDirectory: string;\n lookupKey: string;\n entry: string;\n inputs: SharedBuildInput[];\n artifacts: ReadonlyMap<string, string | Uint8Array | SharedBuildAsset>;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nexport function contentSha256(contents: string | Uint8Array): string {\n return crypto.createHash('sha256').update(contents).digest('hex');\n}\n\nfunction safeRelativePath(value: string): string | undefined {\n if (value === '' || path.isAbsolute(value)) return undefined;\n const normalized = path.normalize(value);\n return normalized === '..' || normalized.startsWith(`..${path.sep}`) ? undefined : normalized;\n}\n\nfunction parseManifest(value: unknown): SharedBuildManifest | undefined {\n if (\n !isRecord(value) ||\n value.schema !== SHARED_BUILD_SCHEMA ||\n typeof value.key !== 'string' ||\n !SHA256_PATTERN.test(value.key) ||\n typeof value.lookupKey !== 'string' ||\n !SHA256_PATTERN.test(value.lookupKey) ||\n typeof value.entry !== 'string' ||\n !Array.isArray(value.inputs) ||\n !Array.isArray(value.artifacts)\n ) {\n return undefined;\n }\n const inputs: SharedBuildInput[] = [];\n for (const input of value.inputs) {\n if (\n !isRecord(input) ||\n typeof input.logicalPath !== 'string' ||\n typeof input.sha256 !== 'string' ||\n (input.sha256 !== '' && !SHA256_PATTERN.test(input.sha256)) ||\n typeof input.token !== 'string' ||\n (input.sourcePath !== undefined && (typeof input.sourcePath !== 'string' || !path.isAbsolute(input.sourcePath)))\n ) {\n return undefined;\n }\n inputs.push({\n logicalPath: input.logicalPath,\n sha256: input.sha256,\n token: input.token,\n ...(typeof input.sourcePath === 'string' ? { sourcePath: input.sourcePath } : {}),\n });\n }\n const artifacts: SharedBuildArtifact[] = [];\n for (const artifact of value.artifacts) {\n if (\n !isRecord(artifact) ||\n typeof artifact.path !== 'string' ||\n typeof artifact.sha256 !== 'string' ||\n !SHA256_PATTERN.test(artifact.sha256) ||\n (artifact.mode !== undefined &&\n (typeof artifact.mode !== 'number' ||\n !Number.isInteger(artifact.mode) ||\n artifact.mode < 0 ||\n artifact.mode > 0o777))\n ) {\n return undefined;\n }\n if (!safeRelativePath(artifact.path)) return undefined;\n artifacts.push({\n path: artifact.path,\n sha256: artifact.sha256,\n ...(typeof artifact.mode === 'number' ? { mode: artifact.mode } : {}),\n });\n }\n if (!safeRelativePath(value.entry)) return undefined;\n return {\n schema: SHARED_BUILD_SCHEMA,\n key: value.key,\n lookupKey: value.lookupKey,\n entry: value.entry,\n inputs,\n artifacts,\n };\n}\n\nfunction readJson(target: string): unknown {\n try {\n return JSON.parse(fs.readFileSync(target, 'utf8')) as unknown;\n } catch {\n return undefined;\n }\n}\n\nfunction writeAtomic(target: string, contents: string | Uint8Array, mode = PRIVATE_FILE_MODE): void {\n fs.mkdirSync(path.dirname(target), { recursive: true, mode: PRIVATE_DIRECTORY_MODE });\n const temporary = `${target}.${process.pid}.${crypto.randomUUID()}.tmp`;\n try {\n fs.writeFileSync(temporary, contents, { mode });\n fs.renameSync(temporary, target);\n fs.chmodSync(target, mode);\n } catch (error) {\n fs.rmSync(temporary, { force: true });\n throw error;\n }\n}\n\nfunction indexPath(cacheDirectory: string, lookupKey: string): string {\n return path.join(cacheDirectory, INDEX_DIRECTORY, `${lookupKey}.json`);\n}\n\nfunction readIndex(cacheDirectory: string, lookupKey: string): SharedBuildIndex {\n const parsed = readJson(indexPath(cacheDirectory, lookupKey));\n if (!isRecord(parsed) || parsed.schema !== SHARED_BUILD_SCHEMA || !Array.isArray(parsed.keys)) {\n return { schema: SHARED_BUILD_SCHEMA, keys: [] };\n }\n return {\n schema: SHARED_BUILD_SCHEMA,\n keys: parsed.keys.filter((key): key is string => typeof key === 'string'),\n };\n}\n\nfunction writeIndex(cacheDirectory: string, lookupKey: string, key: string): void {\n const current = readIndex(cacheDirectory, lookupKey);\n const keys = [key, ...current.keys.filter((candidate) => candidate !== key)];\n writeAtomic(\n indexPath(cacheDirectory, lookupKey),\n `${JSON.stringify({ schema: SHARED_BUILD_SCHEMA, keys }, null, 2)}\\n`,\n );\n}\n\nfunction objectDirectory(cacheDirectory: string, key: string): string {\n return path.join(cacheDirectory, OBJECTS_DIRECTORY, key);\n}\n\nfunction artifactBytes(directory: string, artifact: SharedBuildArtifact): Buffer | undefined {\n const relative = safeRelativePath(artifact.path);\n if (!relative) return undefined;\n try {\n if (fs.lstatSync(directory).isSymbolicLink()) return undefined;\n const target = path.join(directory, relative);\n if (fs.lstatSync(target).isSymbolicLink()) return undefined;\n const canonicalDirectory = fs.realpathSync(directory);\n const canonicalTarget = fs.realpathSync(target);\n const confined = path.relative(canonicalDirectory, canonicalTarget);\n if (confined.startsWith('..') || path.isAbsolute(confined)) return undefined;\n const bytes = fs.readFileSync(canonicalTarget);\n return contentSha256(bytes) === artifact.sha256 ? bytes : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function findSharedBuild(\n cacheDirectory: string,\n lookupKey: string,\n resolveInput: (input: SharedBuildInput) => string | undefined,\n): ResolvedSharedBuild | undefined {\n if (!SHA256_PATTERN.test(lookupKey)) return undefined;\n for (const key of readIndex(cacheDirectory, lookupKey).keys) {\n if (!SHA256_PATTERN.test(key)) continue;\n const directory = objectDirectory(cacheDirectory, key);\n const manifest = parseManifest(readJson(path.join(directory, MANIFEST_FILE)));\n if (!manifest || manifest.key !== key || manifest.lookupKey !== lookupKey || !manifestKeyMatches(manifest))\n continue;\n if (manifest.artifacts.some((artifact) => artifactBytes(directory, artifact) === undefined)) continue;\n const replacements = new Map<string, string>();\n let valid = true;\n for (const input of manifest.inputs) {\n const target = resolveInput(input);\n if (!target) {\n valid = false;\n break;\n }\n if (input.sha256 !== '') {\n try {\n if (contentSha256(fs.readFileSync(target)) !== input.sha256) {\n valid = false;\n break;\n }\n } catch {\n valid = false;\n break;\n }\n }\n replacements.set(input.token, target);\n }\n if (valid) return { directory, manifest, replacements };\n }\n return undefined;\n}\n\nfunction manifestKey(\n options: Omit<PublishSharedBuildOptions, 'cacheDirectory'>,\n artifacts: SharedBuildArtifact[],\n): string {\n return contentSha256(\n JSON.stringify({\n schema: SHARED_BUILD_SCHEMA,\n lookupKey: options.lookupKey,\n entry: options.entry,\n inputs: options.inputs,\n artifacts,\n }),\n );\n}\n\nfunction manifestKeyMatches(manifest: SharedBuildManifest): boolean {\n return (\n manifest.key ===\n manifestKey(\n {\n lookupKey: manifest.lookupKey,\n entry: manifest.entry,\n inputs: manifest.inputs,\n artifacts: new Map(),\n },\n manifest.artifacts,\n )\n );\n}\n\nfunction sharedObjectMatches(directory: string, expected: SharedBuildManifest): boolean {\n const current = parseManifest(readJson(path.join(directory, MANIFEST_FILE)));\n if (!current || current.key !== expected.key || !manifestKeyMatches(current)) return false;\n return expected.artifacts.every((artifact) => artifactBytes(directory, artifact) !== undefined);\n}\n\nexport function publishSharedBuild(options: PublishSharedBuildOptions): SharedBuildManifest {\n if (!SHA256_PATTERN.test(options.lookupKey)) {\n throw new Error(`Shared build lookup key must be a full SHA-256 digest: ${options.lookupKey}`);\n }\n if (options.inputs.some((input) => input.sourcePath !== undefined && !path.isAbsolute(input.sourcePath))) {\n throw new Error('Shared build external source paths must be absolute');\n }\n const artifacts = [...options.artifacts.entries()]\n .map(([artifactPath, value]) => {\n const asset: SharedBuildAsset =\n typeof value === 'string' || value instanceof Uint8Array ? { contents: value } : value;\n const relative = safeRelativePath(artifactPath);\n if (!relative) throw new Error(`Shared build artifact escapes its object: ${artifactPath}`);\n return {\n path: relative,\n sha256: contentSha256(asset.contents),\n ...(asset.mode === undefined ? {} : { mode: asset.mode }),\n };\n })\n .sort((left, right) => left.path.localeCompare(right.path));\n const inputs = [...options.inputs].sort((left, right) => left.logicalPath.localeCompare(right.logicalPath));\n const key = manifestKey({ ...options, inputs }, artifacts);\n const manifest: SharedBuildManifest = {\n schema: SHARED_BUILD_SCHEMA,\n key,\n lookupKey: options.lookupKey,\n entry: options.entry,\n inputs,\n artifacts,\n };\n const finalDirectory = objectDirectory(options.cacheDirectory, key);\n if (fs.existsSync(finalDirectory) && !sharedObjectMatches(finalDirectory, manifest)) {\n fs.rmSync(finalDirectory, { recursive: true, force: true });\n }\n if (!fs.existsSync(finalDirectory)) {\n const temporaryDirectory = `${finalDirectory}.${process.pid}.${crypto.randomUUID()}.tmp`;\n try {\n fs.mkdirSync(temporaryDirectory, { recursive: true, mode: PRIVATE_DIRECTORY_MODE });\n for (const [artifactPath, value] of options.artifacts) {\n const asset: SharedBuildAsset =\n typeof value === 'string' || value instanceof Uint8Array ? { contents: value } : value;\n const relative = safeRelativePath(artifactPath);\n if (!relative) throw new Error(`Shared build artifact escapes its object: ${artifactPath}`);\n const target = path.join(temporaryDirectory, relative);\n fs.mkdirSync(path.dirname(target), { recursive: true, mode: PRIVATE_DIRECTORY_MODE });\n fs.writeFileSync(target, asset.contents, { mode: asset.mode ?? PRIVATE_FILE_MODE });\n fs.chmodSync(target, asset.mode ?? PRIVATE_FILE_MODE);\n }\n fs.writeFileSync(path.join(temporaryDirectory, MANIFEST_FILE), `${JSON.stringify(manifest, null, 2)}\\n`, {\n mode: PRIVATE_FILE_MODE,\n });\n fs.mkdirSync(path.dirname(finalDirectory), { recursive: true, mode: PRIVATE_DIRECTORY_MODE });\n try {\n fs.renameSync(temporaryDirectory, finalDirectory);\n } catch (error) {\n if (!fs.existsSync(finalDirectory)) throw error;\n }\n } finally {\n fs.rmSync(temporaryDirectory, { recursive: true, force: true });\n }\n }\n writeIndex(options.cacheDirectory, options.lookupKey, key);\n return manifest;\n}\n\nexport function materializeSharedBuild(build: ResolvedSharedBuild, outputDirectory: string): string {\n const replacements = [...build.replacements.entries()].sort(([left], [right]) => right.length - left.length);\n for (const artifact of build.manifest.artifacts) {\n const bytes = artifactBytes(build.directory, artifact);\n if (!bytes) throw new Error(`Shared build artifact is corrupt: ${artifact.path}`);\n let contents: string | Uint8Array = bytes;\n if (artifact.path.endsWith('.mjs')) {\n let source = bytes.toString('utf8');\n source = source\n .replaceAll(`${OUTPUT_ROOT_TOKEN}:url`, pathToFileURL(outputDirectory).href)\n .replaceAll(OUTPUT_ROOT_TOKEN, outputDirectory);\n for (const [token, target] of replacements) {\n source = source.replaceAll(`${token}:url`, pathToFileURL(target).href).replaceAll(token, target);\n }\n if (source.includes('__DOOMPI_PATH_'))\n throw new Error(`Shared build left unresolved path tokens in ${artifact.path}`);\n contents = source;\n }\n writeAtomic(path.join(outputDirectory, artifact.path), contents, artifact.mode ?? PRIVATE_FILE_MODE);\n }\n return path.join(outputDirectory, build.manifest.entry);\n}\n\nfunction processAlive(processId: number): boolean {\n try {\n process.kill(processId, 0);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction lockIsStale(lockDirectory: string): boolean {\n const owner = readJson(path.join(lockDirectory, OWNER_FILE));\n if (!isRecord(owner) || typeof owner.pid !== 'number' || typeof owner.createdAt !== 'number') return true;\n return Date.now() - owner.createdAt > LOCK_STALE_MS && !processAlive(owner.pid);\n}\n\nasync function sleep(milliseconds: number): Promise<void> {\n await new Promise<void>((resolve) => setTimeout(resolve, milliseconds));\n}\n\nexport async function withSharedBuildLock<T>(\n cacheDirectory: string,\n lookupKey: string,\n operation: () => Promise<T>,\n): Promise<T> {\n if (!SHA256_PATTERN.test(lookupKey)) {\n throw new Error(`Shared build lock key must be a full SHA-256 digest: ${lookupKey}`);\n }\n const lockDirectory = path.join(cacheDirectory, LOCKS_DIRECTORY, `${lookupKey}.lock`);\n fs.mkdirSync(path.dirname(lockDirectory), { recursive: true, mode: PRIVATE_DIRECTORY_MODE });\n const startedAt = Date.now();\n while (true) {\n try {\n fs.mkdirSync(lockDirectory, { mode: PRIVATE_DIRECTORY_MODE });\n fs.writeFileSync(\n path.join(lockDirectory, OWNER_FILE),\n `${JSON.stringify({ pid: process.pid, createdAt: Date.now() })}\\n`,\n { mode: PRIVATE_FILE_MODE },\n );\n break;\n } catch (error) {\n if (!(error instanceof Error) || !('code' in error) || error.code !== 'EEXIST') throw error;\n if (lockIsStale(lockDirectory)) {\n fs.rmSync(lockDirectory, { recursive: true, force: true });\n continue;\n }\n if (Date.now() - startedAt >= LOCK_TIMEOUT_MS) {\n throw new Error(`Timed out waiting for shared build lock ${lookupKey}`);\n }\n await sleep(LOCK_RETRY_MS);\n }\n }\n try {\n return await operation();\n } finally {\n fs.rmSync(lockDirectory, { recursive: true, force: true });\n }\n}\n"],"mappings":"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"}
|