@agentxm/client-core 0.3.2 → 0.3.3

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.
Files changed (135) hide show
  1. package/LICENSE +1 -1
  2. package/dist/src/unstable/agents/detection.d.ts.map +1 -1
  3. package/dist/src/unstable/agents/detection.js +2 -1
  4. package/dist/src/unstable/agents/detection.js.map +1 -1
  5. package/dist/src/unstable/cli-renderer/ansi-chrome.d.ts.map +1 -1
  6. package/dist/src/unstable/cli-renderer/ansi-chrome.js +4 -1
  7. package/dist/src/unstable/cli-renderer/ansi-chrome.js.map +1 -1
  8. package/dist/src/unstable/extensions/index.d.ts +1 -0
  9. package/dist/src/unstable/extensions/index.d.ts.map +1 -1
  10. package/dist/src/unstable/extensions/index.js +1 -0
  11. package/dist/src/unstable/extensions/index.js.map +1 -1
  12. package/dist/src/unstable/extensions/universal-skills-dir.d.ts +54 -0
  13. package/dist/src/unstable/extensions/universal-skills-dir.d.ts.map +1 -0
  14. package/dist/src/unstable/extensions/universal-skills-dir.js +68 -0
  15. package/dist/src/unstable/extensions/universal-skills-dir.js.map +1 -0
  16. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js +1 -1
  17. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js.map +1 -1
  18. package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts.map +1 -1
  19. package/dist/src/unstable/lint/catalog/pack/manifest-present.js +2 -5
  20. package/dist/src/unstable/lint/catalog/pack/manifest-present.js.map +1 -1
  21. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js +1 -1
  22. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js.map +1 -1
  23. package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts.map +1 -1
  24. package/dist/src/unstable/lint/catalog/shared/schema-rule.js +12 -5
  25. package/dist/src/unstable/lint/catalog/shared/schema-rule.js.map +1 -1
  26. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js +8 -11
  27. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js.map +1 -1
  28. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js +1 -1
  29. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js.map +1 -1
  30. package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts.map +1 -1
  31. package/dist/src/unstable/lint/catalog/skill/manifest-present.js +2 -5
  32. package/dist/src/unstable/lint/catalog/skill/manifest-present.js.map +1 -1
  33. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js +1 -1
  34. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js.map +1 -1
  35. package/dist/src/unstable/lint/catalog/skill/skill-md-present.js +2 -3
  36. package/dist/src/unstable/lint/catalog/skill/skill-md-present.js.map +1 -1
  37. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts.map +1 -1
  38. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js +5 -15
  39. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js.map +1 -1
  40. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts.map +1 -1
  41. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js +4 -15
  42. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js.map +1 -1
  43. package/dist/src/unstable/lint/catalog/workspace/helpers/decode.d.ts +14 -0
  44. package/dist/src/unstable/lint/catalog/workspace/helpers/decode.d.ts.map +1 -0
  45. package/dist/src/unstable/lint/catalog/workspace/helpers/decode.js +28 -0
  46. package/dist/src/unstable/lint/catalog/workspace/helpers/decode.js.map +1 -0
  47. package/dist/src/unstable/lint/catalog/workspace/helpers/finding.d.ts +10 -0
  48. package/dist/src/unstable/lint/catalog/workspace/helpers/finding.d.ts.map +1 -0
  49. package/dist/src/unstable/lint/catalog/workspace/helpers/finding.js +11 -0
  50. package/dist/src/unstable/lint/catalog/workspace/helpers/finding.js.map +1 -0
  51. package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.d.ts +24 -0
  52. package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.d.ts.map +1 -0
  53. package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.js +41 -0
  54. package/dist/src/unstable/lint/catalog/workspace/helpers/retained-skills.js.map +1 -0
  55. package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.d.ts +16 -0
  56. package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.d.ts.map +1 -0
  57. package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js +37 -0
  58. package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js.map +1 -0
  59. package/dist/src/unstable/lint/catalog/workspace/initialized.js +3 -5
  60. package/dist/src/unstable/lint/catalog/workspace/initialized.js.map +1 -1
  61. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts.map +1 -1
  62. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js +8 -21
  63. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js.map +1 -1
  64. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts.map +1 -1
  65. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js +12 -49
  66. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js.map +1 -1
  67. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts.map +1 -1
  68. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js +23 -17
  69. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js.map +1 -1
  70. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts.map +1 -1
  71. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js +24 -29
  72. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js.map +1 -1
  73. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts.map +1 -1
  74. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js +3 -6
  75. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js.map +1 -1
  76. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts +3 -1
  77. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts.map +1 -1
  78. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js +142 -55
  79. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js.map +1 -1
  80. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts +3 -2
  81. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts.map +1 -1
  82. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js +13 -56
  83. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js.map +1 -1
  84. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts +3 -2
  85. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts.map +1 -1
  86. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js +71 -54
  87. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js.map +1 -1
  88. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts.map +1 -1
  89. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js +76 -150
  90. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js.map +1 -1
  91. package/dist/src/unstable/lint/catalog/workspace/skills-managed.d.ts +15 -0
  92. package/dist/src/unstable/lint/catalog/workspace/skills-managed.d.ts.map +1 -0
  93. package/dist/src/unstable/lint/catalog/workspace/skills-managed.js +102 -0
  94. package/dist/src/unstable/lint/catalog/workspace/skills-managed.js.map +1 -0
  95. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts.map +1 -1
  96. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js +2 -1
  97. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js.map +1 -1
  98. package/dist/src/unstable/lint/catalog/workspace.d.ts +9 -5
  99. package/dist/src/unstable/lint/catalog/workspace.d.ts.map +1 -1
  100. package/dist/src/unstable/lint/catalog/workspace.js +20 -11
  101. package/dist/src/unstable/lint/catalog/workspace.js.map +1 -1
  102. package/dist/src/unstable/lint/cli.d.ts +45 -27
  103. package/dist/src/unstable/lint/cli.d.ts.map +1 -1
  104. package/dist/src/unstable/lint/cli.js +819 -59
  105. package/dist/src/unstable/lint/cli.js.map +1 -1
  106. package/dist/src/unstable/lint/index.d.ts +1 -1
  107. package/dist/src/unstable/lint/index.d.ts.map +1 -1
  108. package/dist/src/unstable/lint/index.js +1 -1
  109. package/dist/src/unstable/lint/index.js.map +1 -1
  110. package/dist/src/unstable/lint/issues-to-findings.d.ts +5 -5
  111. package/dist/src/unstable/lint/issues-to-findings.js +78 -15
  112. package/dist/src/unstable/lint/issues-to-findings.js.map +1 -1
  113. package/dist/src/unstable/lint/rule.d.ts +0 -8
  114. package/dist/src/unstable/lint/rule.d.ts.map +1 -1
  115. package/dist/src/unstable/skills/operations/install.d.ts.map +1 -1
  116. package/dist/src/unstable/skills/operations/install.js +2 -0
  117. package/dist/src/unstable/skills/operations/install.js.map +1 -1
  118. package/dist/src/unstable/workspace/classifier-records.d.ts.map +1 -1
  119. package/dist/src/unstable/workspace/classifier-records.js +1 -0
  120. package/dist/src/unstable/workspace/classifier-records.js.map +1 -1
  121. package/dist/src/unstable/workspace/classifier.d.ts +13 -2
  122. package/dist/src/unstable/workspace/classifier.d.ts.map +1 -1
  123. package/dist/src/unstable/workspace/classifier.js +14 -2
  124. package/dist/src/unstable/workspace/classifier.js.map +1 -1
  125. package/dist/src/unstable/workspace/service.d.ts.map +1 -1
  126. package/dist/src/unstable/workspace/service.js +29 -8
  127. package/dist/src/unstable/workspace/service.js.map +1 -1
  128. package/dist/src/unstable/workspace/taxonomy-types.d.ts +1 -0
  129. package/dist/src/unstable/workspace/taxonomy-types.d.ts.map +1 -1
  130. package/package.json +3 -3
  131. package/site-content/INSTALL.md +4 -4
  132. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts +0 -30
  133. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts.map +0 -1
  134. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js +0 -232
  135. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js.map +0 -1
@@ -1,232 +0,0 @@
1
- /**
2
- * `workspace/skills-artifacts-clean` — skill artifacts on disk are live,
3
- * declared, and canonically named.
4
- *
5
- * Cascade per `docs/design/lint-engine.md §10.workspace.Skills` (first
6
- * failing arm per affected entity):
7
- *
8
- * - **Dangling** (autofixing) — an artifact exists in a declared agent's
9
- * skills dir but the canonical source under `.axm/extensions/.../src/`
10
- * is missing. Autofix: `install-skill` with `force: true`.
11
- * - **Stale** (advisory) — an artifact exists in a declared agent's skills
12
- * dir whose name doesn't correspond to any declared enabled skill. No
13
- * pre-sync Operation applies (the artifact isn't axm-owned after the
14
- * skill is no longer declared); emit an advisory CLI suggestion.
15
- * - **Name-mismatch** (advisory) — an artifact exists with a name that
16
- * doesn't match the sanitized declared skill name (legacy casing,
17
- * pre-sanitization). Emit an advisory CLI suggestion.
18
- *
19
- * Listing per-agent skill targets uses `context.workspace.list(...)`.
20
- *
21
- * The rule emits at most one finding per artifact — cascade resolves per
22
- * filesystem entry.
23
- *
24
- * @experimental This API is unstable and may change without notice.
25
- * @packageDocumentation
26
- */
27
- import * as Effect from "effect/Effect";
28
- import * as Option from "effect/Option";
29
- import * as Result from "effect/Result";
30
- import * as Schema from "effect/Schema";
31
- import { LockfileSchema } from "../../../lockfile/schema.js";
32
- import { SettingsSchema } from "../../../settings/schema.js";
33
- import { installSkillOp } from "./helpers/install-ops.js";
34
- import { parseRegistrySource } from "./helpers/registry-source.js";
35
- import { EMPTY_LINT_FINDINGS, EMPTY_OPERATIONS } from "./helpers/empty.js";
36
- const RULE_ID = "workspace/skills-artifacts-clean";
37
- const SUG_REINSTALL_PREFIX = "Reinstall skill ";
38
- const decodeSettings = (input) => {
39
- const result = Schema.decodeUnknownResult(SettingsSchema)(input, {
40
- onExcessProperty: "ignore",
41
- errors: "all",
42
- });
43
- return Result.isSuccess(result) ? Option.some(result.success) : Option.none();
44
- };
45
- const decodeLockfile = (input) => {
46
- const result = Schema.decodeUnknownResult(LockfileSchema)(input, {
47
- onExcessProperty: "ignore",
48
- errors: "all",
49
- });
50
- return Result.isSuccess(result) ? Option.some(result.success) : Option.none();
51
- };
52
- /**
53
- * Names of skills retained by at least one installed declared pack. These
54
- * skill artifacts are valid even though the skill isn't in `settings.skills`.
55
- */
56
- const buildRetainedSkillNames = (settings, lockfile) => {
57
- const declaredPackNames = new Set(Object.keys(settings.packs ?? {}));
58
- const names = new Set();
59
- const packLock = lockfile.packs ?? {};
60
- for (const [packName, packEntry] of Object.entries(packLock)) {
61
- if (!declaredPackNames.has(packName)) {
62
- continue;
63
- }
64
- for (const fqn of Object.keys(packEntry.resolvedSkills)) {
65
- // FQN is `@owner/skills/<name>`; last segment is the skill name.
66
- const parts = fqn.split("/");
67
- const last = parts[parts.length - 1];
68
- if (last !== undefined) {
69
- names.add(last);
70
- }
71
- }
72
- }
73
- // Also add lockfile-level skills with retainedByPack=true so accessor
74
- // round-trips work even when the pack resolved map misnames them.
75
- for (const [name, entry] of Object.entries(lockfile.skills)) {
76
- if (entry.retainedByPack === true) {
77
- names.add(name);
78
- }
79
- }
80
- return names;
81
- };
82
- // Very narrow sanitization: lowercase, replace underscores with hyphens.
83
- // The authoritative sanitizer lives at axm extensions/utils.ts#sanitizeName;
84
- // v1 lint checks for exact match and surfaces any divergence as a
85
- // name-mismatch advisory arm.
86
- const isCanonicallyNamed = (artifact, declared) => artifact === declared;
87
- const danglingFinding = (name, agentId) => ({
88
- kind: "autofixable",
89
- ruleId: RULE_ID,
90
- severity: "error",
91
- message: `Agent '${agentId}' has a dangling artifact for skill '${name}' (canonical source missing).`,
92
- suggestions: [`${SUG_REINSTALL_PREFIX}'${name}' to re-materialize canonical source.`],
93
- location: { file: `${agentId}/skills/${name}` },
94
- });
95
- const staleFinding = (name, agentId) => ({
96
- kind: "advisory",
97
- ruleId: RULE_ID,
98
- severity: "error",
99
- message: `Agent '${agentId}' has a stale skill artifact '${name}' not backed by any declaration.`,
100
- suggestions: [
101
- `Remove the stale artifact manually if you no longer need skill '${name}'.`,
102
- `Add '${name}' to settings.skills if it should be declared.`,
103
- ],
104
- location: { file: `${agentId}/skills/${name}` },
105
- });
106
- const nameMismatchFinding = (agentId, artifact, expected) => ({
107
- kind: "advisory",
108
- ruleId: RULE_ID,
109
- severity: "error",
110
- message: `Agent '${agentId}' has skill artifact '${artifact}' that doesn't match the sanitized name '${expected}'.`,
111
- suggestions: [
112
- `Remove '${artifact}' and reinstall to regenerate under the canonical name '${expected}'.`,
113
- ],
114
- location: { file: `${agentId}/skills/${artifact}` },
115
- });
116
- const NAME_FROM_SUGGESTION_RE = /'([^']+)'/;
117
- const extractSkillName = (suggestion) => NAME_FROM_SUGGESTION_RE.exec(suggestion)?.[1];
118
- /**
119
- * Build candidate canonical `SKILL.md` probe paths for `name`, trying the
120
- * settings-declared registry owner first (if any) and the external layout
121
- * as a fallback. Non-registry sources fall through to the external probe.
122
- */
123
- const canonicalSrcProbesForName = (name, settings) => {
124
- const entry = settings.skills?.[name];
125
- const parsed = entry === undefined ? undefined : parseRegistrySource(entry.source);
126
- const probes = [];
127
- if (parsed !== undefined) {
128
- probes.push(`.axm/extensions/${parsed.owner}/skills/${name}/src/SKILL.md`);
129
- }
130
- probes.push(`.axm/extensions/external/skills/${name}/SKILL.md`);
131
- return probes;
132
- };
133
- export const skillsArtifactsCleanRule = {
134
- id: RULE_ID,
135
- description: "Skill artifacts on disk are live, declared, and canonically named.",
136
- kind: "autofixing",
137
- severity: "error",
138
- check: (context) => Effect.gen(function* () {
139
- const settingsResult = yield* Effect.result(context.workspace.settings);
140
- if (Result.isFailure(settingsResult)) {
141
- return EMPTY_LINT_FINDINGS;
142
- }
143
- const settings = decodeSettings(settingsResult.success);
144
- if (Option.isNone(settings)) {
145
- return EMPTY_LINT_FINDINGS;
146
- }
147
- const declaredAgentIds = new Set(settings.value.agents ?? []);
148
- if (declaredAgentIds.size === 0) {
149
- return EMPTY_LINT_FINDINGS;
150
- }
151
- const knownAgents = yield* context.workspace.knownAgents;
152
- const declaredAgents = knownAgents.filter((a) => declaredAgentIds.has(a.id));
153
- const declaredSkills = settings.value.skills ?? {};
154
- const declaredEnabledNames = new Set(Object.entries(declaredSkills)
155
- .filter(([, v]) => v.enabled)
156
- .map(([k]) => k));
157
- // Pull in pack-retained skill names from the lockfile so retained
158
- // artifacts aren't mis-classified as stale.
159
- const lockfileResult = yield* Effect.result(context.workspace.lockfile);
160
- const retainedNames = Result.isSuccess(lockfileResult)
161
- ? Option.match(lockfileResult.success, {
162
- onNone: () => new Set(),
163
- onSome: (raw) => Option.match(decodeLockfile(raw), {
164
- onNone: () => new Set(),
165
- onSome: (lock) => buildRetainedSkillNames(settings.value, lock),
166
- }),
167
- })
168
- : new Set();
169
- const findings = [];
170
- for (const agent of declaredAgents) {
171
- const listResult = yield* Effect.result(context.workspace.list(agent.skills.dir));
172
- if (Result.isFailure(listResult)) {
173
- // Directory doesn't exist or isn't readable. Not an artifact-clean
174
- // issue — the corresponding enabled arm surfaces missing dirs.
175
- continue;
176
- }
177
- const artifacts = listResult.success;
178
- for (const artifact of artifacts) {
179
- // Retention carve-out: pack-retained skill artifacts are valid
180
- // even when not in settings.skills.
181
- if (retainedNames.has(artifact)) {
182
- continue;
183
- }
184
- // Cascade first-failure per artifact.
185
- // Arm 1: dangling — artifact links back to a declared skill name
186
- // but canonical src is missing.
187
- if (declaredEnabledNames.has(artifact)) {
188
- const probes = canonicalSrcProbesForName(artifact, settings.value);
189
- const probeResults = yield* Effect.all(probes.map((probe) => context.workspace.exists(probe)), { concurrency: "unbounded" });
190
- if (probeResults.every((exists) => !exists)) {
191
- findings.push(danglingFinding(artifact, agent.id));
192
- continue;
193
- }
194
- continue;
195
- }
196
- // Arm 2/3: not a declared enabled name — name-mismatch or stale.
197
- // Name-mismatch: artifact normalizes to a declared enabled name
198
- // but differs in casing or similar. v1 check is case-insensitive.
199
- const caseMatch = Array.from(declaredEnabledNames).find((d) => d.toLowerCase() === artifact.toLowerCase() && !isCanonicallyNamed(artifact, d));
200
- if (caseMatch !== undefined) {
201
- findings.push(nameMismatchFinding(agent.id, artifact, caseMatch));
202
- continue;
203
- }
204
- findings.push(staleFinding(artifact, agent.id));
205
- }
206
- }
207
- return findings;
208
- }),
209
- fix: (context, finding) => Effect.gen(function* () {
210
- // Only the dangling arm emits AutofixableFinding; stale / name-mismatch
211
- // arms ship AdvisoryFinding and never reach `fix`.
212
- if (!finding.suggestions[0].startsWith(SUG_REINSTALL_PREFIX)) {
213
- return EMPTY_OPERATIONS;
214
- }
215
- const name = extractSkillName(finding.suggestions[0]);
216
- if (name === undefined) {
217
- return EMPTY_OPERATIONS;
218
- }
219
- const settingsResult = yield* Effect.result(context.workspace.settings);
220
- if (Result.isFailure(settingsResult)) {
221
- return EMPTY_OPERATIONS;
222
- }
223
- const settings = decodeSettings(settingsResult.success);
224
- if (Option.isNone(settings)) {
225
- return EMPTY_OPERATIONS;
226
- }
227
- const entry = settings.value.skills?.[name];
228
- const source = entry?.source ?? name;
229
- return [installSkillOp({ name, source, force: true })];
230
- }),
231
- };
232
- //# sourceMappingURL=skills-artifacts-clean.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-artifacts-clean.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-artifacts-clean.ts"],"names":[],"mappings":"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"}