@agentxm/client-core 0.17.0 → 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.
Files changed (138) hide show
  1. package/dist/src/unstable/agent-capabilities/catalog.d.ts +54 -10
  2. package/dist/src/unstable/agent-capabilities/catalog.d.ts.map +1 -1
  3. package/dist/src/unstable/agent-capabilities/data/agents/hermes.d.ts +27 -5
  4. package/dist/src/unstable/agent-capabilities/data/agents/hermes.d.ts.map +1 -1
  5. package/dist/src/unstable/agent-capabilities/data/agents/hermes.js +17 -5
  6. package/dist/src/unstable/agent-capabilities/data/agents/hermes.js.map +1 -1
  7. package/dist/src/unstable/agent-capabilities/schema.d.ts +19 -19
  8. package/dist/src/unstable/agent-capabilities/schema.d.ts.map +1 -1
  9. package/dist/src/unstable/agent-capabilities/schema.js +2 -1
  10. package/dist/src/unstable/agent-capabilities/schema.js.map +1 -1
  11. package/dist/src/unstable/agents/mcp-sync.d.ts.map +1 -1
  12. package/dist/src/unstable/agents/mcp-sync.js +19 -3
  13. package/dist/src/unstable/agents/mcp-sync.js.map +1 -1
  14. package/dist/src/unstable/cli-runtime/command-summary.d.ts +1 -1
  15. package/dist/src/unstable/cli-runtime/command-summary.d.ts.map +1 -1
  16. package/dist/src/unstable/cli-runtime/command-summary.js.map +1 -1
  17. package/dist/src/unstable/extensions/configured-entry.d.ts +11 -0
  18. package/dist/src/unstable/extensions/configured-entry.d.ts.map +1 -0
  19. package/dist/src/unstable/extensions/configured-entry.js +8 -0
  20. package/dist/src/unstable/extensions/configured-entry.js.map +1 -0
  21. package/dist/src/unstable/extensions/index.d.ts +1 -0
  22. package/dist/src/unstable/extensions/index.d.ts.map +1 -1
  23. package/dist/src/unstable/extensions/index.js +1 -0
  24. package/dist/src/unstable/extensions/index.js.map +1 -1
  25. package/dist/src/unstable/extensions/materializable-from-disk.d.ts.map +1 -1
  26. package/dist/src/unstable/extensions/materializable-from-disk.js +5 -4
  27. package/dist/src/unstable/extensions/materializable-from-disk.js.map +1 -1
  28. package/dist/src/unstable/files/manager.d.ts.map +1 -1
  29. package/dist/src/unstable/files/manager.js +2 -2
  30. package/dist/src/unstable/files/manager.js.map +1 -1
  31. package/dist/src/unstable/hooks/manager.d.ts.map +1 -1
  32. package/dist/src/unstable/hooks/manager.js +2 -2
  33. package/dist/src/unstable/hooks/manager.js.map +1 -1
  34. package/dist/src/unstable/libraries/index.d.ts +3 -0
  35. package/dist/src/unstable/libraries/index.d.ts.map +1 -0
  36. package/dist/src/unstable/libraries/index.js +2 -0
  37. package/dist/src/unstable/libraries/index.js.map +1 -0
  38. package/dist/src/unstable/libraries/ref.d.ts +17 -0
  39. package/dist/src/unstable/libraries/ref.d.ts.map +1 -0
  40. package/dist/src/unstable/libraries/ref.js +43 -0
  41. package/dist/src/unstable/libraries/ref.js.map +1 -0
  42. package/dist/src/unstable/lint/catalog/mcp-server/manifest-keys-recognized.js +2 -2
  43. package/dist/src/unstable/lint/catalog/mcp-server/manifest-keys-recognized.js.map +1 -1
  44. package/dist/src/unstable/lint/catalog/mcp-server/manifest-present.js +3 -3
  45. package/dist/src/unstable/lint/catalog/mcp-server/manifest-present.js.map +1 -1
  46. package/dist/src/unstable/lint/catalog/mcp-server/manifest-schema-valid.js +2 -2
  47. package/dist/src/unstable/lint/catalog/mcp-server/manifest-schema-valid.js.map +1 -1
  48. package/dist/src/unstable/lint/catalog/shared/manifest-json.js +1 -1
  49. package/dist/src/unstable/lint/catalog/shared/manifest-json.js.map +1 -1
  50. package/dist/src/unstable/lint/catalog/shared/schema-rule.js +1 -1
  51. package/dist/src/unstable/lint/catalog/shared/schema-rule.js.map +1 -1
  52. package/dist/src/unstable/lockfile/index.d.ts +3 -3
  53. package/dist/src/unstable/lockfile/index.d.ts.map +1 -1
  54. package/dist/src/unstable/lockfile/index.js +2 -2
  55. package/dist/src/unstable/lockfile/index.js.map +1 -1
  56. package/dist/src/unstable/lockfile/lockfile.d.ts +936 -3
  57. package/dist/src/unstable/lockfile/lockfile.d.ts.map +1 -1
  58. package/dist/src/unstable/lockfile/lockfile.js +223 -31
  59. package/dist/src/unstable/lockfile/lockfile.js.map +1 -1
  60. package/dist/src/unstable/lockfile/schema.d.ts +96 -0
  61. package/dist/src/unstable/lockfile/schema.d.ts.map +1 -1
  62. package/dist/src/unstable/lockfile/schema.js +54 -0
  63. package/dist/src/unstable/lockfile/schema.js.map +1 -1
  64. package/dist/src/unstable/mcps/config-writer.d.ts.map +1 -1
  65. package/dist/src/unstable/mcps/config-writer.js +77 -29
  66. package/dist/src/unstable/mcps/config-writer.js.map +1 -1
  67. package/dist/src/unstable/mcps/inspection.d.ts.map +1 -1
  68. package/dist/src/unstable/mcps/inspection.js +24 -4
  69. package/dist/src/unstable/mcps/inspection.js.map +1 -1
  70. package/dist/src/unstable/mcps/manifest-schema.d.ts +3 -3
  71. package/dist/src/unstable/mcps/manifest-schema.d.ts.map +1 -1
  72. package/dist/src/unstable/mcps/manifest-schema.js +4 -4
  73. package/dist/src/unstable/mcps/manifest-schema.js.map +1 -1
  74. package/dist/src/unstable/mcps/operations/publish.d.ts +1 -1
  75. package/dist/src/unstable/mcps/operations/publish.js +1 -1
  76. package/dist/src/unstable/packs/dependency-resolution.d.ts +3 -1
  77. package/dist/src/unstable/packs/dependency-resolution.d.ts.map +1 -1
  78. package/dist/src/unstable/packs/dependency-resolution.js +11 -10
  79. package/dist/src/unstable/packs/dependency-resolution.js.map +1 -1
  80. package/dist/src/unstable/packs/expansion.d.ts +3 -0
  81. package/dist/src/unstable/packs/expansion.d.ts.map +1 -1
  82. package/dist/src/unstable/packs/expansion.js +2 -2
  83. package/dist/src/unstable/packs/expansion.js.map +1 -1
  84. package/dist/src/unstable/registry/__generated__/registry-client.d.ts +1592 -146
  85. package/dist/src/unstable/registry/__generated__/registry-client.d.ts.map +1 -1
  86. package/dist/src/unstable/registry/__generated__/registry-client.js +246 -0
  87. package/dist/src/unstable/registry/__generated__/registry-client.js.map +1 -1
  88. package/dist/src/unstable/registry/admin-client.d.ts +2 -2
  89. package/dist/src/unstable/registry/client.d.ts +52 -0
  90. package/dist/src/unstable/registry/client.d.ts.map +1 -1
  91. package/dist/src/unstable/registry/client.js.map +1 -1
  92. package/dist/src/unstable/registry/index.d.ts +1 -1
  93. package/dist/src/unstable/registry/index.d.ts.map +1 -1
  94. package/dist/src/unstable/registry/index.js.map +1 -1
  95. package/dist/src/unstable/registry/local-client.d.ts.map +1 -1
  96. package/dist/src/unstable/registry/local-client.js +1 -0
  97. package/dist/src/unstable/registry/local-client.js.map +1 -1
  98. package/dist/src/unstable/registry/remote-client.d.ts.map +1 -1
  99. package/dist/src/unstable/registry/remote-client.js +59 -0
  100. package/dist/src/unstable/registry/remote-client.js.map +1 -1
  101. package/dist/src/unstable/rules/manager.d.ts.map +1 -1
  102. package/dist/src/unstable/rules/manager.js +2 -2
  103. package/dist/src/unstable/rules/manager.js.map +1 -1
  104. package/dist/src/unstable/settings/index.d.ts +2 -2
  105. package/dist/src/unstable/settings/index.d.ts.map +1 -1
  106. package/dist/src/unstable/settings/index.js +1 -1
  107. package/dist/src/unstable/settings/index.js.map +1 -1
  108. package/dist/src/unstable/settings/schema.d.ts +52 -0
  109. package/dist/src/unstable/settings/schema.d.ts.map +1 -1
  110. package/dist/src/unstable/settings/schema.js +71 -1
  111. package/dist/src/unstable/settings/schema.js.map +1 -1
  112. package/dist/src/unstable/workspace/initialization.d.ts +28 -0
  113. package/dist/src/unstable/workspace/initialization.d.ts.map +1 -1
  114. package/dist/src/unstable/workspace/service-interface.d.ts +25 -2
  115. package/dist/src/unstable/workspace/service-interface.d.ts.map +1 -1
  116. package/dist/src/unstable/workspace/service-interface.js.map +1 -1
  117. package/dist/src/unstable/workspace/service.d.ts +83 -6
  118. package/dist/src/unstable/workspace/service.d.ts.map +1 -1
  119. package/dist/src/unstable/workspace/service.js +134 -50
  120. package/dist/src/unstable/workspace/service.js.map +1 -1
  121. package/dist/src/unstable/workspace/test-stubs.d.ts +2 -0
  122. package/dist/src/unstable/workspace/test-stubs.d.ts.map +1 -1
  123. package/dist/src/unstable/workspace/test-stubs.js +10 -0
  124. package/dist/src/unstable/workspace/test-stubs.js.map +1 -1
  125. package/dist/src/unstable/workspace/version-currency/collectors.d.ts.map +1 -1
  126. package/dist/src/unstable/workspace/version-currency/collectors.js +2 -3
  127. package/dist/src/unstable/workspace/version-currency/collectors.js.map +1 -1
  128. package/dist/src/unstable/workspace/version-currency/test-stubs.d.ts.map +1 -1
  129. package/dist/src/unstable/workspace/version-currency/test-stubs.js +1 -0
  130. package/dist/src/unstable/workspace/version-currency/test-stubs.js.map +1 -1
  131. package/dist/src/unstable/yaml/index.d.ts +13 -0
  132. package/dist/src/unstable/yaml/index.d.ts.map +1 -0
  133. package/dist/src/unstable/yaml/index.js +73 -0
  134. package/dist/src/unstable/yaml/index.js.map +1 -0
  135. package/package.json +12 -4
  136. package/site-content/__generated__/schemas/axm-lock.schema.json +77 -0
  137. package/site-content/__generated__/schemas/{mcp-server.schema.json → mcp.schema.json} +1 -1
  138. package/site-content/__generated__/schemas/settings.schema.json +61 -8
@@ -0,0 +1,73 @@
1
+ /**
2
+ * YAML config helpers for AXM-owned structured config edits.
3
+ *
4
+ * @experimental All exports from this module are unstable and may change without notice.
5
+ * @packageDocumentation
6
+ */
7
+ import { parseDocument } from "yaml";
8
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
9
+ const formatPath = (path) => path.join(".");
10
+ const parseYamlDocument = (raw) => {
11
+ const document = parseDocument(raw, { keepSourceTokens: true });
12
+ if (document.errors.length > 0) {
13
+ throw new Error(document.errors.map((error) => error.message).join("; "));
14
+ }
15
+ return document;
16
+ };
17
+ const parseYamlObjectOrNull = (raw) => {
18
+ const parsed = parseYamlDocument(raw).toJS();
19
+ if (parsed === null || parsed === undefined)
20
+ return null;
21
+ if (!isRecord(parsed)) {
22
+ throw new Error("YAML document root must be a mapping");
23
+ }
24
+ return parsed;
25
+ };
26
+ const validateServersShape = (raw, serversKey) => {
27
+ const parsed = parseYamlObjectOrNull(raw);
28
+ const servers = parsed?.[serversKey];
29
+ if (servers !== undefined && !isRecord(servers)) {
30
+ throw new Error(`${formatPath([serversKey])} must be a mapping`);
31
+ }
32
+ return parsed;
33
+ };
34
+ export const parseYaml = (raw) => parseYamlDocument(raw).toJS();
35
+ export const readYamlEntry = (raw, serversKey, serverName) => {
36
+ const parsed = validateServersShape(raw, serversKey);
37
+ const servers = parsed?.[serversKey];
38
+ if (!isRecord(servers))
39
+ return undefined;
40
+ const entry = servers[serverName];
41
+ return isRecord(entry) ? entry : undefined;
42
+ };
43
+ export const managedYamlNames = (raw, serversKey, isManaged) => {
44
+ const parsed = validateServersShape(raw, serversKey);
45
+ const servers = parsed?.[serversKey];
46
+ if (!isRecord(servers))
47
+ return [];
48
+ return Object.entries(servers).flatMap(([name, entry]) => isRecord(entry) && isManaged(entry) ? [name] : []);
49
+ };
50
+ export const setYamlEntry = (raw, serversKey, serverName, entry) => {
51
+ validateServersShape(raw, serversKey);
52
+ const document = parseYamlDocument(raw);
53
+ document.setIn([serversKey, serverName], entry);
54
+ return document.toString({ lineWidth: 0 });
55
+ };
56
+ export const deleteYamlEntry = (raw, serversKey, serverName) => {
57
+ validateServersShape(raw, serversKey);
58
+ const document = parseYamlDocument(raw);
59
+ const removed = document.deleteIn([serversKey, serverName]);
60
+ return removed ? document.toString({ lineWidth: 0 }) : raw;
61
+ };
62
+ export const setYamlScalar = (raw, path, value) => {
63
+ if (path.length === 0) {
64
+ throw new Error("YAML scalar path must not be empty");
65
+ }
66
+ const rootKey = path[0];
67
+ if (rootKey !== undefined)
68
+ validateServersShape(raw, rootKey);
69
+ const document = parseYamlDocument(raw);
70
+ document.setIn(path, value);
71
+ return document.toString({ lineWidth: 0 });
72
+ };
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/unstable/yaml/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentxm/client-core",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "Core library for the axm agent extension manager. Unstable and unsupported — use the axm.sh CLI.",
5
5
  "type": "module",
6
6
  "license": "FSL-1.1-MIT",
@@ -83,6 +83,10 @@
83
83
  "types": "./dist/src/unstable/lockfile/index.d.ts",
84
84
  "default": "./dist/src/unstable/lockfile/index.js"
85
85
  },
86
+ "./unstable/libraries": {
87
+ "types": "./dist/src/unstable/libraries/index.d.ts",
88
+ "default": "./dist/src/unstable/libraries/index.js"
89
+ },
86
90
  "./unstable/schema": {
87
91
  "types": "./dist/src/unstable/schema/index.d.ts",
88
92
  "default": "./dist/src/unstable/schema/index.js"
@@ -209,6 +213,10 @@
209
213
  "types": "./dist/src/unstable/toml/index.d.ts",
210
214
  "default": "./dist/src/unstable/toml/index.js"
211
215
  },
216
+ "./unstable/yaml": {
217
+ "types": "./dist/src/unstable/yaml/index.d.ts",
218
+ "default": "./dist/src/unstable/yaml/index.js"
219
+ },
212
220
  "./unstable/discover": {
213
221
  "types": "./dist/src/unstable/discover/index.d.ts",
214
222
  "default": "./dist/src/unstable/discover/index.js"
@@ -248,7 +256,8 @@
248
256
  "proper-lockfile": "^4.1.2",
249
257
  "semver": "^7.8.0",
250
258
  "simple-git": "^3.36.0",
251
- "spdx-expression-parse": "3.0.1"
259
+ "spdx-expression-parse": "3.0.1",
260
+ "yaml": "^2.8.4"
252
261
  },
253
262
  "devDependencies": {
254
263
  "@effect/openapi-generator": "4.0.0-beta.64",
@@ -260,7 +269,6 @@
260
269
  "swagger2openapi": "^7.0.8",
261
270
  "typescript": "^5.9.3",
262
271
  "vitest": "^4.1.5",
263
- "yaml": "^2.8.4",
264
- "@agentxm/client-utils": "^0.17.0"
272
+ "@agentxm/client-utils": "^0.18.0"
265
273
  }
266
274
  }
@@ -206,6 +206,74 @@
206
206
  "title": "Pack Lock Entry",
207
207
  "description": "Pinned version info for an installed pack from a registry."
208
208
  },
209
+ "LibraryLockEntry": {
210
+ "type": "object",
211
+ "properties": {
212
+ "type": { "type": "string", "enum": ["registry"] },
213
+ "owner": { "$ref": "#/definitions/Handle" },
214
+ "name": { "$ref": "#/definitions/ExtensionName" },
215
+ "sourceName": { "type": "string" },
216
+ "installedAt": { "$ref": "#/definitions/IsoDateTimeString" },
217
+ "updatedAt": { "$ref": "#/definitions/IsoDateTimeString" },
218
+ "resolvedAt": { "$ref": "#/definitions/IsoDateTimeString" },
219
+ "membershipDigest": { "type": "string" },
220
+ "resolvedSkills": {
221
+ "type": "object",
222
+ "propertyNames": { "$ref": "#/definitions/ExtensionFqn" },
223
+ "additionalProperties": { "$ref": "#/definitions/Version" }
224
+ },
225
+ "resolvedCommands": {
226
+ "type": "object",
227
+ "propertyNames": { "$ref": "#/definitions/ExtensionFqn" },
228
+ "additionalProperties": { "$ref": "#/definitions/Version" }
229
+ },
230
+ "resolvedMcpServers": {
231
+ "type": "object",
232
+ "propertyNames": { "$ref": "#/definitions/ExtensionFqn" },
233
+ "additionalProperties": { "$ref": "#/definitions/Version" }
234
+ },
235
+ "resolvedSubagents": {
236
+ "type": "object",
237
+ "propertyNames": { "$ref": "#/definitions/ExtensionFqn" },
238
+ "additionalProperties": { "$ref": "#/definitions/Version" }
239
+ },
240
+ "resolvedFiles": {
241
+ "type": "object",
242
+ "propertyNames": { "$ref": "#/definitions/ExtensionFqn" },
243
+ "additionalProperties": { "$ref": "#/definitions/Version" }
244
+ },
245
+ "resolvedRules": {
246
+ "type": "object",
247
+ "propertyNames": { "$ref": "#/definitions/ExtensionFqn" },
248
+ "additionalProperties": { "$ref": "#/definitions/Version" }
249
+ },
250
+ "resolvedHooks": {
251
+ "type": "object",
252
+ "propertyNames": { "$ref": "#/definitions/ExtensionFqn" },
253
+ "additionalProperties": { "$ref": "#/definitions/Version" }
254
+ }
255
+ },
256
+ "required": [
257
+ "type",
258
+ "owner",
259
+ "name",
260
+ "sourceName",
261
+ "installedAt",
262
+ "updatedAt",
263
+ "resolvedAt",
264
+ "membershipDigest",
265
+ "resolvedSkills",
266
+ "resolvedCommands",
267
+ "resolvedMcpServers",
268
+ "resolvedSubagents",
269
+ "resolvedFiles",
270
+ "resolvedRules",
271
+ "resolvedHooks"
272
+ ],
273
+ "additionalProperties": false,
274
+ "title": "Library Lock Entry",
275
+ "description": "Pinned membership snapshot for an installed Library subscription."
276
+ },
209
277
  "Lockfile": {
210
278
  "type": "object",
211
279
  "properties": {
@@ -2109,6 +2177,15 @@
2109
2177
  { "type": "object", "additionalProperties": { "$ref": "#/definitions/PackLockEntry" } },
2110
2178
  { "type": "null" }
2111
2179
  ]
2180
+ },
2181
+ "libraries": {
2182
+ "anyOf": [
2183
+ {
2184
+ "type": "object",
2185
+ "additionalProperties": { "$ref": "#/definitions/LibraryLockEntry" }
2186
+ },
2187
+ { "type": "null" }
2188
+ ]
2112
2189
  }
2113
2190
  },
2114
2191
  "required": ["lockfileVersion", "skills"],
@@ -578,7 +578,7 @@
578
578
  "required": ["name", "description", "version"],
579
579
  "additionalProperties": false,
580
580
  "title": "MCP Registry Server Detail",
581
- "description": "Verbatim MCP registry server.json ServerDetail embedded in AXM mcp-server.json manifests."
581
+ "description": "Verbatim MCP registry server.json ServerDetail embedded in AXM mcp.json manifests."
582
582
  },
583
583
  "McpServerManifest": {
584
584
  "type": "object",
@@ -259,7 +259,7 @@
259
259
  },
260
260
  "authored": {
261
261
  "type": "boolean",
262
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
262
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
263
263
  "default": false
264
264
  }
265
265
  },
@@ -324,7 +324,7 @@
324
324
  },
325
325
  "authored": {
326
326
  "type": "boolean",
327
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
327
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
328
328
  "default": false
329
329
  }
330
330
  },
@@ -395,7 +395,7 @@
395
395
  },
396
396
  "authored": {
397
397
  "type": "boolean",
398
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
398
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
399
399
  "default": false
400
400
  },
401
401
  "inputs": { "$ref": "#/definitions/FilesInputValuesMap" }
@@ -447,7 +447,7 @@
447
447
  },
448
448
  "authored": {
449
449
  "type": "boolean",
450
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
450
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
451
451
  "default": false
452
452
  }
453
453
  },
@@ -498,7 +498,7 @@
498
498
  },
499
499
  "authored": {
500
500
  "type": "boolean",
501
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
501
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
502
502
  "default": false
503
503
  }
504
504
  },
@@ -549,7 +549,7 @@
549
549
  },
550
550
  "authored": {
551
551
  "type": "boolean",
552
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
552
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
553
553
  "default": false
554
554
  }
555
555
  },
@@ -609,7 +609,7 @@
609
609
  },
610
610
  "authored": {
611
611
  "type": "boolean",
612
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
612
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
613
613
  "default": false
614
614
  }
615
615
  },
@@ -647,6 +647,55 @@
647
647
  "title": "Packs Config",
648
648
  "description": "Feature-level configuration for packs."
649
649
  },
650
+ "LibraryRef": {
651
+ "type": "string",
652
+ "allOf": [
653
+ {
654
+ "pattern": "^(@[a-z0-9_](?:[a-z0-9_-]*[a-z0-9_])?)\\/libraries\\/([a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?)$",
655
+ "title": "Library Ref",
656
+ "description": "Bare Library reference. Libraries do not accept version suffixes.",
657
+ "examples": ["@acme/libraries/frontend"]
658
+ }
659
+ ]
660
+ },
661
+ "LibraryEntry": {
662
+ "anyOf": [
663
+ { "type": "string" },
664
+ {
665
+ "type": "object",
666
+ "properties": {
667
+ "source": { "$ref": "#/definitions/LibraryRef" },
668
+ "enabled": {
669
+ "type": "boolean",
670
+ "description": "Set to false to disable this entry. Omit otherwise — true is the default and should not be written explicitly.",
671
+ "default": true
672
+ },
673
+ "authored": {
674
+ "type": "boolean",
675
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
676
+ "default": false
677
+ }
678
+ },
679
+ "required": ["source"],
680
+ "additionalProperties": false,
681
+ "title": "Library Entry Object",
682
+ "description": "A Library subscription entry with source and optional enabled/authored flags."
683
+ }
684
+ ],
685
+ "title": "Library Entry",
686
+ "description": "A Library subscription entry: a bare Library ref, or an object with source plus optional flags.",
687
+ "examples": [
688
+ "@acme/libraries/frontend",
689
+ { "source": "@acme/libraries/frontend", "enabled": false }
690
+ ]
691
+ },
692
+ "LibrariesMap": {
693
+ "type": "object",
694
+ "title": "Libraries Map",
695
+ "description": "A map of Library subscription names to Library refs.",
696
+ "propertyNames": { "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
697
+ "additionalProperties": { "$ref": "#/definitions/LibraryEntry" }
698
+ },
650
699
  "McpServerEnv": {
651
700
  "anyOf": [
652
701
  { "type": "object", "additionalProperties": { "type": "string" } },
@@ -713,7 +762,7 @@
713
762
  },
714
763
  "authored": {
715
764
  "type": "boolean",
716
- "description": "Set to true to mark this entry as authored locally in this workspace. Omit otherwise — false is the default and should not be written explicitly.",
765
+ "description": "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
717
766
  "default": false
718
767
  },
719
768
  "env": { "$ref": "#/definitions/McpServerEnv" }
@@ -858,6 +907,10 @@
858
907
  "anyOf": [{ "$ref": "#/definitions/PacksConfig" }],
859
908
  "description": "Feature-level options for pack management."
860
909
  },
910
+ "libraries": {
911
+ "anyOf": [{ "$ref": "#/definitions/LibrariesMap" }],
912
+ "description": "Your Library subscriptions, keyed by workspace subscription name. Prefer plain Library refs; use the object form only to set `enabled: false` or `authored: true`. Libraries are always latest and do not accept version suffixes."
913
+ },
861
914
  "mcpServers": {
862
915
  "anyOf": [{ "$ref": "#/definitions/McpServersMap" }],
863
916
  "description": "Your installed MCP servers, keyed by workspace MCP server name. Prefer plain source strings; use the object form only to set `enabled: false`, `authored: true`, or persisted `env` values."