@agentxm/client-core 0.3.2 → 0.4.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/LICENSE +1 -1
- package/dist/src/unstable/agents/detection.d.ts.map +1 -1
- package/dist/src/unstable/agents/detection.js +2 -1
- package/dist/src/unstable/agents/detection.js.map +1 -1
- package/dist/src/unstable/branding.d.ts +2 -0
- package/dist/src/unstable/branding.d.ts.map +1 -0
- package/dist/src/unstable/branding.js +11 -0
- package/dist/src/unstable/branding.js.map +1 -0
- package/dist/src/unstable/cli-renderer/ansi-chrome.d.ts.map +1 -1
- package/dist/src/unstable/cli-renderer/ansi-chrome.js +4 -1
- package/dist/src/unstable/cli-renderer/ansi-chrome.js.map +1 -1
- package/dist/src/unstable/extensions/index.d.ts +1 -0
- package/dist/src/unstable/extensions/index.d.ts.map +1 -1
- package/dist/src/unstable/extensions/index.js +1 -0
- package/dist/src/unstable/extensions/index.js.map +1 -1
- package/dist/src/unstable/extensions/universal-skills-dir.d.ts +54 -0
- package/dist/src/unstable/extensions/universal-skills-dir.d.ts.map +1 -0
- package/dist/src/unstable/extensions/universal-skills-dir.js +68 -0
- package/dist/src/unstable/extensions/universal-skills-dir.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js +1 -1
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js.map +1 -1
- package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/pack/manifest-present.js +2 -5
- package/dist/src/unstable/lint/catalog/pack/manifest-present.js.map +1 -1
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js +1 -1
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/shared/schema-rule.js +12 -5
- package/dist/src/unstable/lint/catalog/shared/schema-rule.js.map +1 -1
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js +8 -11
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js.map +1 -1
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js +1 -1
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js.map +1 -1
- package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/skill/manifest-present.js +2 -5
- package/dist/src/unstable/lint/catalog/skill/manifest-present.js.map +1 -1
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js +1 -1
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.js +2 -3
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js +5 -15
- package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js +4 -15
- package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/helpers/decode.d.ts +14 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/decode.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/decode.js +28 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/decode.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/finding.d.ts +10 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/finding.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/finding.js +11 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/finding.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.d.ts +24 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.js +41 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.d.ts +16 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js +37 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/initialized.d.ts +1 -1
- package/dist/src/unstable/lint/catalog/workspace/initialized.js +4 -6
- package/dist/src/unstable/lint/catalog/workspace/initialized.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js +8 -21
- package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js +12 -49
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js +23 -17
- package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js +24 -29
- package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js +3 -6
- package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts +3 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js +142 -55
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts +3 -2
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js +13 -56
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts +3 -2
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js +71 -54
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js +76 -150
- package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-managed.d.ts +15 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-managed.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-managed.js +102 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-managed.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js +2 -1
- package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace.d.ts +9 -5
- package/dist/src/unstable/lint/catalog/workspace.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace.js +20 -11
- package/dist/src/unstable/lint/catalog/workspace.js.map +1 -1
- package/dist/src/unstable/lint/cli.d.ts +45 -27
- package/dist/src/unstable/lint/cli.d.ts.map +1 -1
- package/dist/src/unstable/lint/cli.js +819 -59
- package/dist/src/unstable/lint/cli.js.map +1 -1
- package/dist/src/unstable/lint/index.d.ts +1 -1
- package/dist/src/unstable/lint/index.d.ts.map +1 -1
- package/dist/src/unstable/lint/index.js +1 -1
- package/dist/src/unstable/lint/index.js.map +1 -1
- package/dist/src/unstable/lint/issues-to-findings.d.ts +5 -5
- package/dist/src/unstable/lint/issues-to-findings.js +78 -15
- package/dist/src/unstable/lint/issues-to-findings.js.map +1 -1
- package/dist/src/unstable/lint/rule.d.ts +0 -8
- package/dist/src/unstable/lint/rule.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/install.js +2 -0
- package/dist/src/unstable/skills/operations/install.js.map +1 -1
- package/dist/src/unstable/workspace/classifier-records.d.ts.map +1 -1
- package/dist/src/unstable/workspace/classifier-records.js +1 -0
- package/dist/src/unstable/workspace/classifier-records.js.map +1 -1
- package/dist/src/unstable/workspace/classifier.d.ts +13 -2
- package/dist/src/unstable/workspace/classifier.d.ts.map +1 -1
- package/dist/src/unstable/workspace/classifier.js +14 -2
- package/dist/src/unstable/workspace/classifier.js.map +1 -1
- package/dist/src/unstable/workspace/initialization.js +1 -1
- package/dist/src/unstable/workspace/initialization.js.map +1 -1
- package/dist/src/unstable/workspace/service.d.ts.map +1 -1
- package/dist/src/unstable/workspace/service.js +30 -9
- package/dist/src/unstable/workspace/service.js.map +1 -1
- package/dist/src/unstable/workspace/taxonomy-types.d.ts +1 -0
- package/dist/src/unstable/workspace/taxonomy-types.d.ts.map +1 -1
- package/package.json +7 -3
- package/site-content/{INSTALL.md → install.md} +5 -5
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts +0 -30
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts.map +0 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js +0 -232
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js.map +0 -1
|
@@ -16,84 +16,47 @@
|
|
|
16
16
|
import * as Effect from "effect/Effect";
|
|
17
17
|
import * as Option from "effect/Option";
|
|
18
18
|
import * as Result from "effect/Result";
|
|
19
|
-
import
|
|
20
|
-
import { SettingsSchema } from "../../../settings/schema.js";
|
|
21
|
-
import { parseRegistrySource } from "./helpers/registry-source.js";
|
|
19
|
+
import { decodeSettings } from "./helpers/decode.js";
|
|
22
20
|
import { EMPTY_ADVISORY_FINDINGS } from "./helpers/empty.js";
|
|
21
|
+
import { categorizeEntry } from "./helpers/source-categorize.js";
|
|
23
22
|
const RULE_ID = "workspace/packs-declarations-valid";
|
|
24
23
|
const SETTINGS_REL = ".axm/settings.json";
|
|
25
|
-
const BARE_NAME_RE = /^[a-z0-9][a-z0-9-]*(?:@[^\s/:]+)?$/i;
|
|
26
|
-
const NON_REGISTRY_MARKERS = [
|
|
27
|
-
/^\.\//,
|
|
28
|
-
/^\.\.\//,
|
|
29
|
-
/^\//,
|
|
30
|
-
/^file:\/\//,
|
|
31
|
-
/:\/\//,
|
|
32
|
-
/^[a-z][a-z0-9+.-]*:/i,
|
|
33
|
-
];
|
|
34
|
-
const isClearlyNonRegistrySource = (source) => NON_REGISTRY_MARKERS.some((pattern) => pattern.test(source));
|
|
35
|
-
const decodeSettings = (input) => {
|
|
36
|
-
const result = Schema.decodeUnknownResult(SettingsSchema)(input, {
|
|
37
|
-
onExcessProperty: "ignore",
|
|
38
|
-
errors: "all",
|
|
39
|
-
});
|
|
40
|
-
return Result.isSuccess(result) ? Option.some(result.success) : Option.none();
|
|
41
|
-
};
|
|
42
|
-
const categorizeEntry = (name, source) => {
|
|
43
|
-
const parsed = parseRegistrySource(source);
|
|
44
|
-
if (parsed !== undefined) {
|
|
45
|
-
return {
|
|
46
|
-
name,
|
|
47
|
-
source,
|
|
48
|
-
kind: "registry",
|
|
49
|
-
registryFqn: `${parsed.owner}/${parsed.type}/${parsed.name}`,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
if (isClearlyNonRegistrySource(source)) {
|
|
53
|
-
// Packs must use registry sources per the extensions-installed doctor
|
|
54
|
-
// rule; an unqualified non-registry source surfaces as an error.
|
|
55
|
-
return { name, source, kind: "non-registry" };
|
|
56
|
-
}
|
|
57
|
-
if (BARE_NAME_RE.test(source)) {
|
|
58
|
-
return { name, source, kind: "bare" };
|
|
59
|
-
}
|
|
60
|
-
return { name, source, kind: "registry-no-owner" };
|
|
61
|
-
};
|
|
62
24
|
const bareNameFinding = (entry) => ({
|
|
63
25
|
kind: "advisory",
|
|
64
26
|
ruleId: RULE_ID,
|
|
65
27
|
severity: "error",
|
|
66
|
-
message: `Pack '${entry.name}'
|
|
67
|
-
|
|
28
|
+
message: `Pack '${entry.name}' uses bare source '${entry.source}', so axm cannot tell which registry pack you mean. ` +
|
|
29
|
+
"Run `axm packs install @owner/packs/<name>` with the owner-qualified source you intend.",
|
|
68
30
|
location: { file: SETTINGS_REL },
|
|
69
31
|
});
|
|
70
32
|
const nonRegistryFinding = (entry) => ({
|
|
71
33
|
kind: "advisory",
|
|
72
34
|
ruleId: RULE_ID,
|
|
73
35
|
severity: "error",
|
|
74
|
-
message: `Pack '${entry.name}'
|
|
75
|
-
|
|
36
|
+
message: `Pack '${entry.name}' source '${entry.source}' is not a registry pack reference. ` +
|
|
37
|
+
"Run `axm packs install @owner/packs/<name>` with the owner-qualified source you intend.",
|
|
76
38
|
location: { file: SETTINGS_REL },
|
|
77
39
|
});
|
|
78
40
|
const missingOwnerFinding = (entry) => ({
|
|
79
41
|
kind: "advisory",
|
|
80
42
|
ruleId: RULE_ID,
|
|
81
43
|
severity: "error",
|
|
82
|
-
message: `Pack '${entry.name}'
|
|
83
|
-
|
|
44
|
+
message: `Pack '${entry.name}' source '${entry.source}' looks like a registry pack reference but is missing the \`@owner\` prefix. ` +
|
|
45
|
+
"Run `axm packs install @owner/packs/<name>` with the owner-qualified source you intend.",
|
|
84
46
|
location: { file: SETTINGS_REL },
|
|
85
47
|
});
|
|
86
48
|
const duplicateFinding = (entry, duplicates) => ({
|
|
87
49
|
kind: "advisory",
|
|
88
50
|
ruleId: RULE_ID,
|
|
89
51
|
severity: "error",
|
|
90
|
-
message: `Pack '${entry.name}'
|
|
91
|
-
|
|
52
|
+
message: `Pack '${entry.name}' points to the same registry pack as these entries: ${duplicates.join(", ")}. ` +
|
|
53
|
+
"Run `axm packs uninstall <name>` for each duplicate declaration you do not want to keep. " +
|
|
54
|
+
"If needed, run `axm packs install <source>` for the declaration you do want to keep.",
|
|
92
55
|
location: { file: SETTINGS_REL },
|
|
93
56
|
});
|
|
94
57
|
export const packsDeclarationsValidRule = {
|
|
95
58
|
id: RULE_ID,
|
|
96
|
-
description: "Declared packs
|
|
59
|
+
description: "Declared packs use unique, resolvable registry sources.",
|
|
97
60
|
kind: "advisory",
|
|
98
61
|
severity: "error",
|
|
99
62
|
check: (context) => Effect.gen(function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs-declarations-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-declarations-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"packs-declarations-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-declarations-valid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs-dependencies-resolved.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-dependencies-resolved.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"packs-dependencies-resolved.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-dependencies-resolved.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAiGnE,eAAO,MAAM,6BAA6B,EAAE,YAAY,CAAC,oBAAoB,CAyC5E,CAAC"}
|
|
@@ -14,18 +14,11 @@
|
|
|
14
14
|
import * as Effect from "effect/Effect";
|
|
15
15
|
import * as Option from "effect/Option";
|
|
16
16
|
import * as Result from "effect/Result";
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
17
|
+
import {} from "../../../lockfile/schema.js";
|
|
18
|
+
import { decodeLockfile } from "./helpers/decode.js";
|
|
19
19
|
import { EMPTY_ADVISORY_FINDINGS } from "./helpers/empty.js";
|
|
20
20
|
const RULE_ID = "workspace/packs-dependencies-resolved";
|
|
21
21
|
const LOCKFILE_REL = ".axm/axm-lock.yaml";
|
|
22
|
-
const decodeLockfile = (input) => {
|
|
23
|
-
const result = Schema.decodeUnknownResult(LockfileSchema)(input, {
|
|
24
|
-
onExcessProperty: "ignore",
|
|
25
|
-
errors: "all",
|
|
26
|
-
});
|
|
27
|
-
return Result.isSuccess(result) ? Option.some(result.success) : Option.none();
|
|
28
|
-
};
|
|
29
22
|
const isRecord = (entry) => typeof entry === "object" && entry !== null;
|
|
30
23
|
const isRegistryFragment = (entry) => {
|
|
31
24
|
if (!isRecord(entry)) {
|
|
@@ -53,15 +46,28 @@ const buildInstalledFqnIndex = (lockfile) => {
|
|
|
53
46
|
absorb("mcp-servers", lockfile.mcpServers);
|
|
54
47
|
return set;
|
|
55
48
|
};
|
|
56
|
-
const
|
|
49
|
+
const singularDependencyType = (typeSegment) => {
|
|
50
|
+
switch (typeSegment) {
|
|
51
|
+
case "skills":
|
|
52
|
+
return "skill";
|
|
53
|
+
case "commands":
|
|
54
|
+
return "command";
|
|
55
|
+
case "subagents":
|
|
56
|
+
return "subagent";
|
|
57
|
+
case "mcp-servers":
|
|
58
|
+
return "MCP server";
|
|
59
|
+
default:
|
|
60
|
+
return typeSegment;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const packInstallSpecifier = (entry, packName) => entry.type === "registry" ? `${entry.owner}/packs/${entry.name}` : packName;
|
|
64
|
+
const missingDependencyFinding = (packName, packSpecifier, dependencyFqn, dependencyType) => ({
|
|
57
65
|
kind: "advisory",
|
|
58
66
|
ruleId: RULE_ID,
|
|
59
67
|
severity: "error",
|
|
60
|
-
message: `Pack '${packName}'
|
|
61
|
-
|
|
62
|
-
`
|
|
63
|
-
`Remove the pack declaration that introduces '${dependencyFqn}'.`,
|
|
64
|
-
],
|
|
68
|
+
message: `Pack '${packName}' requires ${singularDependencyType(dependencyType)} '${dependencyFqn}', but that ${singularDependencyType(dependencyType)} is not installed. ` +
|
|
69
|
+
`To restore it, run \`axm packs install ${packSpecifier}\`. ` +
|
|
70
|
+
`If you no longer need '${packName}', run \`axm packs uninstall ${packName}\`.`,
|
|
65
71
|
location: { file: LOCKFILE_REL },
|
|
66
72
|
});
|
|
67
73
|
const collectResolved = (entry) => [
|
|
@@ -72,7 +78,7 @@ const collectResolved = (entry) => [
|
|
|
72
78
|
];
|
|
73
79
|
export const packsDependenciesResolvedRule = {
|
|
74
80
|
id: RULE_ID,
|
|
75
|
-
description: "
|
|
81
|
+
description: "Installed packs keep their declared dependencies installed.",
|
|
76
82
|
kind: "advisory",
|
|
77
83
|
severity: "error",
|
|
78
84
|
check: (context) => Effect.gen(function* () {
|
|
@@ -97,7 +103,7 @@ export const packsDependenciesResolvedRule = {
|
|
|
97
103
|
for (const [packName, packEntry] of Object.entries(packLock)) {
|
|
98
104
|
for (const { fqn, typeSegment } of collectResolved(packEntry)) {
|
|
99
105
|
if (!installed.has(fqn)) {
|
|
100
|
-
findings.push(missingDependencyFinding(packName, fqn, typeSegment));
|
|
106
|
+
findings.push(missingDependencyFinding(packName, packInstallSpecifier(packEntry, packName), fqn, typeSegment));
|
|
101
107
|
}
|
|
102
108
|
}
|
|
103
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs-dependencies-resolved.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-dependencies-resolved.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"packs-dependencies-resolved.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-dependencies-resolved.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs-members-retained.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-members-retained.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"packs-members-retained.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-members-retained.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AA6HnE,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,oBAAoB,CA0CvE,CAAC"}
|
|
@@ -19,26 +19,13 @@
|
|
|
19
19
|
import * as Effect from "effect/Effect";
|
|
20
20
|
import * as Option from "effect/Option";
|
|
21
21
|
import * as Result from "effect/Result";
|
|
22
|
-
import
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
22
|
+
import {} from "../../../lockfile/schema.js";
|
|
23
|
+
import {} from "../../../settings/schema.js";
|
|
24
|
+
import { decodeLockfile, decodeSettings } from "./helpers/decode.js";
|
|
25
25
|
import { EMPTY_ADVISORY_FINDINGS } from "./helpers/empty.js";
|
|
26
26
|
const RULE_ID = "workspace/packs-members-retained";
|
|
27
27
|
const LOCKFILE_REL = ".axm/axm-lock.yaml";
|
|
28
|
-
const
|
|
29
|
-
const result = Schema.decodeUnknownResult(SettingsSchema)(input, {
|
|
30
|
-
onExcessProperty: "ignore",
|
|
31
|
-
errors: "all",
|
|
32
|
-
});
|
|
33
|
-
return Result.isSuccess(result) ? Option.some(result.success) : Option.none();
|
|
34
|
-
};
|
|
35
|
-
const decodeLockfile = (input) => {
|
|
36
|
-
const result = Schema.decodeUnknownResult(LockfileSchema)(input, {
|
|
37
|
-
onExcessProperty: "ignore",
|
|
38
|
-
errors: "all",
|
|
39
|
-
});
|
|
40
|
-
return Result.isSuccess(result) ? Option.some(result.success) : Option.none();
|
|
41
|
-
};
|
|
28
|
+
const SETTINGS_REL = ".axm/settings.json";
|
|
42
29
|
const entryFqn = (entry, name, typeSegment) => {
|
|
43
30
|
if (entry.type !== "registry") {
|
|
44
31
|
// Non-registry lock entries don't carry an owner-qualified FQN. We
|
|
@@ -53,6 +40,9 @@ const entryFqn = (entry, name, typeSegment) => {
|
|
|
53
40
|
const buildPackRetainedFqns = (lockfile) => {
|
|
54
41
|
const declared = new Set();
|
|
55
42
|
const packs = lockfile.packs ?? {};
|
|
43
|
+
// Kept separate from the skill-specific retained helper: this rule needs
|
|
44
|
+
// every pack lock entry and all four resolved member maps, not just
|
|
45
|
+
// declared-pack `resolvedSkills`.
|
|
56
46
|
for (const entry of Object.values(packs)) {
|
|
57
47
|
for (const fqn of Object.keys(entry.resolvedSkills)) {
|
|
58
48
|
declared.add(fqn);
|
|
@@ -69,17 +59,22 @@ const buildPackRetainedFqns = (lockfile) => {
|
|
|
69
59
|
}
|
|
70
60
|
return declared;
|
|
71
61
|
};
|
|
72
|
-
const droppedFinding = (memberType, name, fqn) =>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
62
|
+
const droppedFinding = (memberType, name, fqn) => {
|
|
63
|
+
const settingsSurface = memberType === "mcp-server" ? "settings.mcpServers" : `settings.${memberType}s`;
|
|
64
|
+
const installCommand = fqn === undefined ? undefined : `axm install ${fqn}`;
|
|
65
|
+
const uninstallCommand = fqn === undefined ? undefined : `axm uninstall ${fqn}`;
|
|
66
|
+
return {
|
|
67
|
+
kind: "advisory",
|
|
68
|
+
ruleId: RULE_ID,
|
|
69
|
+
severity: "warning",
|
|
70
|
+
message: `${memberType} '${name}'${fqn === undefined ? "" : ` (resolved as ${fqn})`} is still installed because of a pack, but no installed pack now declares it. ` +
|
|
71
|
+
(installCommand === undefined
|
|
72
|
+
? `To keep it, add '${name}' under \`${settingsSurface}\` in \`${SETTINGS_REL}\` with its intended source, then run \`axm install\`. ` +
|
|
73
|
+
"If you do not need it, run `axm install` to regenerate the managed state from the remaining declarations."
|
|
74
|
+
: `To keep it, run \`${installCommand}\`. If you do not need it, run \`${uninstallCommand}\`.`),
|
|
75
|
+
location: { file: LOCKFILE_REL },
|
|
76
|
+
};
|
|
77
|
+
};
|
|
83
78
|
const collectMembers = (lockfile) => {
|
|
84
79
|
const result = [];
|
|
85
80
|
for (const [name, entry] of Object.entries(lockfile.skills)) {
|
|
@@ -122,7 +117,7 @@ const typeSegment = (memberType) => {
|
|
|
122
117
|
};
|
|
123
118
|
export const packsMembersRetainedRule = {
|
|
124
119
|
id: RULE_ID,
|
|
125
|
-
description: "
|
|
120
|
+
description: "Pack-retained extensions are still required by an installed pack.",
|
|
126
121
|
kind: "advisory",
|
|
127
122
|
severity: "warning",
|
|
128
123
|
check: (context) => Effect.gen(function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs-members-retained.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-members-retained.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"packs-members-retained.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-members-retained.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-schema-valid.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/settings-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQlD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"settings-schema-valid.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/settings-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQlD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,oBAAoB,CAyCtE,CAAC"}
|
|
@@ -31,7 +31,7 @@ const RULE_ID = "workspace/settings-schema-valid";
|
|
|
31
31
|
const SETTINGS_REL = ".axm/settings.json";
|
|
32
32
|
export const settingsSchemaValidRule = {
|
|
33
33
|
id: RULE_ID,
|
|
34
|
-
description: "
|
|
34
|
+
description: "Workspace settings are structurally valid.",
|
|
35
35
|
kind: "advisory",
|
|
36
36
|
severity: "error",
|
|
37
37
|
check: (context) => Effect.gen(function* () {
|
|
@@ -49,11 +49,8 @@ export const settingsSchemaValidRule = {
|
|
|
49
49
|
kind: "advisory",
|
|
50
50
|
ruleId: RULE_ID,
|
|
51
51
|
severity: "error",
|
|
52
|
-
message: `
|
|
53
|
-
|
|
54
|
-
"Fix the JSON syntax error reported at the location above.",
|
|
55
|
-
"Verify .axm/settings.json is valid JSON (quoted keys, no trailing commas).",
|
|
56
|
-
],
|
|
52
|
+
message: `The workspace settings file is not valid JSON. Detail: ${error.message}. ` +
|
|
53
|
+
"Edit `.axm/settings.json` to fix the JSON syntax.",
|
|
57
54
|
location: { file: SETTINGS_REL },
|
|
58
55
|
},
|
|
59
56
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-schema-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/settings-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,OAAO,GAAG,iCAAiC,CAAC;AAClD,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,CAAC,MAAM,uBAAuB,GAAuC;IACzE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"settings-schema-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/settings-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,OAAO,GAAG,iCAAiC,CAAC;AAClD,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,CAAC,MAAM,uBAAuB,GAAuC;IACzE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,4CAA4C;IACzD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,wEAAwE;QACxE,8DAA8D;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,OAAO;gBACL;oBACE,IAAI,EAAE,UAAmB;oBACzB,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,OAAgB;oBAC1B,OAAO,EACL,0DAA0D,KAAK,CAAC,OAAO,IAAI;wBAC3E,mDAAmD;oBACrD,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;iBACjC;aACF,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,iDAAiD;QACjD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,oBAAoB,CACjD,OAAO,EACP,OAAO,EACP,YAAY,EACZ,cAAc,EACd,IAAI,CAAC,OAAO,CACb,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
|
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
*
|
|
16
16
|
* One finding per affected skill (per-entity cascade); the first arm that
|
|
17
17
|
* fires for a skill emits its finding and the other arms for the same skill
|
|
18
|
-
* do not.
|
|
18
|
+
* do not. Configured skills keep the existing autofix arms; pack-provided
|
|
19
|
+
* implicit skills emit advisory findings because the repair is a pack-level
|
|
20
|
+
* reinstall.
|
|
19
21
|
*
|
|
20
22
|
* @experimental This API is unstable and may change without notice.
|
|
21
23
|
* @packageDocumentation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-artifacts-correct.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-artifacts-correct.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skills-artifacts-correct.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-artifacts-correct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAGV,cAAc,EAEf,MAAM,eAAe,CAAC;AAkJvB,eAAO,MAAM,0BAA0B,EAAE,cAAc,CAAC,oBAAoB,CAiI3E,CAAC"}
|