Mount every external bundle layer as a cordis:contained-group entry `bundle/<package>` whose rows carry a `<package>/<id>` prefix, so one community bundle that no longer loads records a failure in the root `pluginFailures` registry instead of rejecting the whole Loader transaction, and two bundles may declare the same row id. Classify layers by origin (`builtin` for the template bundle and `dsh.profile.firstParty`, `external` for profile dependencies) and let `dsh.bundle.stage: boot` or `dsh.profile.stages` opt a bundle out of isolation when it provides a service built-in rows inject; a built-in row left pending beside an isolated bundle still fails boot and names the bundle. Keep `installFailLoud` for the boot transaction only and install runtime guards afterwards: an unhandled rejection is reported and contained, an uncaught exception is reported and exits. Report nested fiber failures under built-in entries as advisory lines. Provide `ctx.profileRuntime` from the launcher (layers with trust and stage, row origin, user-disabled rows, recomposition through the root include) and probe installed packages in a child process (`probePackage`, cached under `profiles/<name>/.dsh-plugins/`). Split installation from enablement in `reconcileInstalledBundles`; the CLI keeps install-means-enable. The plugin inventory now reports `trust`, `package`, `disabledBy`, and `failure` per row and lists rows only the failure registry knows.
74 lines
2.0 KiB
JSON
74 lines
2.0 KiB
JSON
{
|
|
"name": "@deepseek-ai/dsh-host-plugin-inventory",
|
|
"description": "Read-only Remote projection of current Cordis Loader plugin state",
|
|
"version": "0.1.2-rc.1",
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
"directory": "packages/host/plugin-inventory"
|
|
},
|
|
"type": "module",
|
|
"main": "lib/index.js",
|
|
"types": "lib/types/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./lib/types/index.d.ts",
|
|
"default": "./lib/index.js"
|
|
},
|
|
"./types": {
|
|
"types": "./lib/types/types.d.ts",
|
|
"default": "./lib/types/types.js"
|
|
},
|
|
"./typert": {
|
|
"types": "./lib/typert.host.d.ts",
|
|
"default": "./lib/typert.host.js"
|
|
},
|
|
"./remote": {
|
|
"types": "./lib/typert.remote-client.d.ts",
|
|
"default": "./lib/typert.remote-client.js"
|
|
},
|
|
"./src/*": "./src/*",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"files": [
|
|
"lib/index.js",
|
|
"lib/types/**/*.js",
|
|
"lib/types/**/*.d.ts",
|
|
"lib/typert.host.js",
|
|
"lib/typert.host.d.ts",
|
|
"lib/typert.remote-client.js",
|
|
"lib/typert.remote-client.d.ts"
|
|
],
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"zod": "^4.4.3"
|
|
},
|
|
"peerDependencies": {
|
|
"@deepseek-ai/cordis": "workspace:^",
|
|
"@deepseek-ai/cordis-plugin-loader": "workspace:^",
|
|
"@deepseek-ai/dsh-agent-presets": "workspace:^",
|
|
"@deepseek-ai/dsh-app-boot": "workspace:^",
|
|
"@deepseek-ai/dsh-brand": "workspace:^",
|
|
"@deepseek-ai/dsh-typert-protocol": "workspace:^"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"@deepseek-ai/dsh-agent-presets": {
|
|
"optional": true
|
|
},
|
|
"@deepseek-ai/dsh-app-boot": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@deepseek-ai/cordis": "workspace:^",
|
|
"@deepseek-ai/cordis-plugin-loader": "workspace:^",
|
|
"@deepseek-ai/dsh-agent-presets": "workspace:^",
|
|
"@deepseek-ai/dsh-app-boot": "workspace:^",
|
|
"@deepseek-ai/dsh-brand": "workspace:^",
|
|
"@deepseek-ai/dsh-typert-protocol": "workspace:^"
|
|
}
|
|
}
|