@lmzhen/dsh-evolution-commands 0.17.1 → 0.18.0
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/lib/index.js +649 -592
- package/lib/types/doctor.d.ts +5 -1
- package/lib/types/preset-source.d.ts +29 -0
- package/package.json +6 -6
package/lib/types/doctor.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ScopedProbeReport } from '@lmzhen/dsh-evolution-core';
|
|
1
|
+
import { type PlatformServiceProbe, type ScopedProbeReport } from '@lmzhen/dsh-evolution-core';
|
|
2
2
|
/** P2-20 (audit): the TS-side copy of the install-target tails. The script
|
|
3
3
|
* side (install-layered.mjs, verify-profile-bundles.mjs) imports the list
|
|
4
4
|
* from packages/scripts/lib-family-packages.mjs; guard-scripts.spec.ts pins
|
|
@@ -99,6 +99,10 @@ export interface DoctorReport {
|
|
|
99
99
|
* still written, and E3 rows whose owner publishes no user layer here. Empty
|
|
100
100
|
* when the settings service is absent (nothing to compare). */
|
|
101
101
|
paramIssues: string[];
|
|
102
|
+
/** O-2 (S3.4/A99): the family probes 26 platform services optionally — the platform has no
|
|
103
|
+
* formalized optional dependency, so an ABSENT one is a silent downgrade and this section is the
|
|
104
|
+
* only place a reader learns about it. Empty (and therefore not rendered) is the healthy answer. */
|
|
105
|
+
capabilityAbsence: readonly PlatformServiceProbe[];
|
|
102
106
|
services: {
|
|
103
107
|
review: boolean;
|
|
104
108
|
curator: boolean;
|
|
@@ -28,6 +28,35 @@ export declare function presetProfileTarget(ctx: {
|
|
|
28
28
|
* which is what a profile carrying a family row is recognized by when the table itself cannot be
|
|
29
29
|
* read. */
|
|
30
30
|
export declare const FAMILY_PRESET_ID_STEM = "evolution";
|
|
31
|
+
/** One base-table row's ability fields — the part `evolution-agent/bases.json` declares and every
|
|
32
|
+
* entry point reads. */
|
|
33
|
+
export interface BaseAbilityRow {
|
|
34
|
+
/** Base name, as `--base` spells it. */
|
|
35
|
+
readonly name: string;
|
|
36
|
+
/** The registration note that makes a base unsupported (it carries no family landing surface). */
|
|
37
|
+
readonly unsupported?: string;
|
|
38
|
+
/** The runtime service the base's platform composition injects. */
|
|
39
|
+
readonly requires?: {
|
|
40
|
+
readonly service?: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The ONE host-side answer to "can this base be used here?".
|
|
45
|
+
*
|
|
46
|
+
* Both host entry points ask it: `/evolution preset install` refuses a base through this function,
|
|
47
|
+
* and `/evolution doctor` enumerates the installable bases through it, with the SAME probe — the
|
|
48
|
+
* runtime's own answer (`ctx.get(<service>)`), which is exactly the reason a later mount would
|
|
49
|
+
* refuse. A doctor that infers the answer from bundle names instead (it did until v46 S2.8) can
|
|
50
|
+
* disagree with the write entry it tells the operator to run: a deployment that mounts the web-app
|
|
51
|
+
* bundle while the service's own row is disabled installs nothing, yet reads as installable. The
|
|
52
|
+
* source-checkout installer runs outside the host and cannot read the service store; it asks the
|
|
53
|
+
* target profile's bundle rows instead and says so (`install-layered.mjs`'s
|
|
54
|
+
* `baseUnavailableReason`).
|
|
55
|
+
* @param entry - the table row.
|
|
56
|
+
* @param servicePresent - whether a service name resolves in this deployment.
|
|
57
|
+
* @returns the refusal text, or undefined when the base is usable here.
|
|
58
|
+
*/
|
|
59
|
+
export declare function baseRefusalReason(entry: BaseAbilityRow, servicePresent: (name: string) => boolean): string | undefined;
|
|
31
60
|
/**
|
|
32
61
|
* Resolve the platform base preset patch one `--base` composes.
|
|
33
62
|
*
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmzhen/dsh-evolution-commands",
|
|
3
3
|
"description": "Human commands for the evolution family (/evolution pending|curator|maintain|doctor) (community build)",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.18.0",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
],
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
30
|
-
"@lmzhen/dsh-evolution-approval": "^0.
|
|
31
|
-
"@lmzhen/dsh-evolution-core": "^0.
|
|
32
|
-
"@lmzhen/dsh-evolution-maintenance": "^0.
|
|
29
|
+
"@deepseek-ai/schemastery": "^3.18.4",
|
|
30
|
+
"@lmzhen/dsh-evolution-approval": "^0.18.0",
|
|
31
|
+
"@lmzhen/dsh-evolution-core": "^0.18.0",
|
|
32
|
+
"@lmzhen/dsh-evolution-maintenance": "^0.18.0"
|
|
33
33
|
},
|
|
34
34
|
"optionalDependencies": {
|
|
35
|
-
"@lmzhen/dsh-evolution-agent-preset": "^0.
|
|
35
|
+
"@lmzhen/dsh-evolution-agent-preset": "^0.18.0"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@deepseek-ai/cordis": "^4.0.1",
|