@agentxm/client-core 0.6.0 → 0.6.2

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 (60) hide show
  1. package/dist/src/unstable/auth/auth-client.d.ts +17 -3
  2. package/dist/src/unstable/auth/auth-client.d.ts.map +1 -1
  3. package/dist/src/unstable/auth/auth-client.js +127 -58
  4. package/dist/src/unstable/auth/auth-client.js.map +1 -1
  5. package/dist/src/unstable/auth/credential-store.d.ts +5 -4
  6. package/dist/src/unstable/auth/credential-store.d.ts.map +1 -1
  7. package/dist/src/unstable/auth/credential-store.js +115 -9
  8. package/dist/src/unstable/auth/credential-store.js.map +1 -1
  9. package/dist/src/unstable/auth/device-login.d.ts +4 -1
  10. package/dist/src/unstable/auth/device-login.d.ts.map +1 -1
  11. package/dist/src/unstable/auth/device-login.js +13 -15
  12. package/dist/src/unstable/auth/device-login.js.map +1 -1
  13. package/dist/src/unstable/auth/index.d.ts +4 -1
  14. package/dist/src/unstable/auth/index.d.ts.map +1 -1
  15. package/dist/src/unstable/auth/index.js +3 -0
  16. package/dist/src/unstable/auth/index.js.map +1 -1
  17. package/dist/src/unstable/auth/login-strategy.d.ts +21 -0
  18. package/dist/src/unstable/auth/login-strategy.d.ts.map +1 -0
  19. package/dist/src/unstable/auth/login-strategy.js +25 -0
  20. package/dist/src/unstable/auth/login-strategy.js.map +1 -0
  21. package/dist/src/unstable/auth/loopback-login.d.ts +16 -0
  22. package/dist/src/unstable/auth/loopback-login.d.ts.map +1 -0
  23. package/dist/src/unstable/auth/loopback-login.js +86 -0
  24. package/dist/src/unstable/auth/loopback-login.js.map +1 -0
  25. package/dist/src/unstable/auth/loopback-server.d.ts +36 -0
  26. package/dist/src/unstable/auth/loopback-server.d.ts.map +1 -0
  27. package/dist/src/unstable/auth/loopback-server.js +136 -0
  28. package/dist/src/unstable/auth/loopback-server.js.map +1 -0
  29. package/dist/src/unstable/commands/operations/publish.js +1 -1
  30. package/dist/src/unstable/commands/operations/publish.js.map +1 -1
  31. package/dist/src/unstable/mcp-servers/operations/publish.js +1 -1
  32. package/dist/src/unstable/mcp-servers/operations/publish.js.map +1 -1
  33. package/dist/src/unstable/packs/operations/publish.js +1 -1
  34. package/dist/src/unstable/packs/operations/publish.js.map +1 -1
  35. package/dist/src/unstable/registry/__generated__/registry-client.d.ts +170 -96
  36. package/dist/src/unstable/registry/__generated__/registry-client.d.ts.map +1 -1
  37. package/dist/src/unstable/registry/__generated__/registry-client.js +152 -64
  38. package/dist/src/unstable/registry/__generated__/registry-client.js.map +1 -1
  39. package/dist/src/unstable/settings/schema.d.ts.map +1 -1
  40. package/dist/src/unstable/settings/schema.js +39 -34
  41. package/dist/src/unstable/settings/schema.js.map +1 -1
  42. package/dist/src/unstable/skills/operations/publish.js +1 -1
  43. package/dist/src/unstable/skills/operations/publish.js.map +1 -1
  44. package/dist/src/unstable/subagents/operations/publish.js +1 -1
  45. package/dist/src/unstable/subagents/operations/publish.js.map +1 -1
  46. package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts +3 -0
  47. package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts.map +1 -1
  48. package/dist/src/unstable/telemetry/__generated__/telemetry-client.js +1 -0
  49. package/dist/src/unstable/telemetry/__generated__/telemetry-client.js.map +1 -1
  50. package/dist/src/unstable/telemetry/client.d.ts.map +1 -1
  51. package/dist/src/unstable/telemetry/client.js +9 -1
  52. package/dist/src/unstable/telemetry/client.js.map +1 -1
  53. package/dist/src/unstable/utils/build-zip-archive.d.ts +8 -7
  54. package/dist/src/unstable/utils/build-zip-archive.d.ts.map +1 -1
  55. package/dist/src/unstable/utils/build-zip-archive.js +42 -52
  56. package/dist/src/unstable/utils/build-zip-archive.js.map +1 -1
  57. package/package.json +5 -2
  58. package/site-content/__generated__/schemas/settings.schema.json +36 -39
  59. package/site-content/docs/quickstart.md +4 -1
  60. package/site-content/install.md +4 -3
@@ -70,7 +70,15 @@ export const makeTelemetryClient = (options) => Effect.gen(function* () {
70
70
  const reportError = (error) => {
71
71
  const now = new Date().toISOString();
72
72
  const payload = {
73
- errors: [{ message: error.message, name: error.name }],
73
+ errors: [
74
+ {
75
+ message: error.message,
76
+ name: error.name,
77
+ ...(error.details !== undefined && error.details.length > 0
78
+ ? { details: error.details }
79
+ : {}),
80
+ },
81
+ ],
74
82
  level: error.level,
75
83
  handled: error.handled,
76
84
  tags: {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/unstable/telemetry/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/unstable/telemetry/client.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,20 @@
1
1
  /**
2
2
  * Build a deterministic zip archive of a directory.
3
3
  *
4
- * Uses node:child_process and node:fs directly because this operation
5
- * requires the system `zip` and `find` commands for deterministic archives.
6
- * This is an intentional escape hatch from @effect/platform.
4
+ * Uses fflate (pure JS) so publish works on platforms without a system
5
+ * `zip` binary (notably Windows). Entries are walked via the platform
6
+ * FileSystem service, sorted by relative path, and stamped with a fixed
7
+ * mtime so the byte output is reproducible.
7
8
  *
8
9
  * @experimental This API is unstable and may change without notice.
9
10
  */
10
11
  import * as Effect from "effect/Effect";
12
+ import * as FileSystem from "effect/FileSystem";
13
+ import * as Path from "effect/Path";
11
14
  /**
12
15
  * Build a zip archive of a directory.
13
16
  * Files are stored at the root of the zip (no enclosing directory).
14
- *
15
- * Copies the source directory to a temporary location before normalizing
16
- * timestamps, so the original directory is never mutated.
17
+ * Directory entries are not emitted.
17
18
  */
18
- export declare const buildZipArchive: (dir: string, errorCode: string) => Effect.Effect<Uint8Array<ArrayBuffer>, import("../app-error/app-error.ts").AppError, never>;
19
+ export declare const buildZipArchive: (dir: string) => Effect.Effect<Uint8Array<ArrayBufferLike>, import("../app-error/app-error.ts").AppError, FileSystem.FileSystem | Path.Path>;
19
20
  //# sourceMappingURL=build-zip-archive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-zip-archive.d.ts","sourceRoot":"","sources":["../../../../src/unstable/utils/build-zip-archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAwBxC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,WAAW,MAAM,gGAwC1D,CAAC"}
1
+ {"version":3,"file":"build-zip-archive.d.ts","sourceRoot":"","sources":["../../../../src/unstable/utils/build-zip-archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAOpC;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,gIA8DvC,CAAC"}
@@ -1,69 +1,59 @@
1
1
  /**
2
2
  * Build a deterministic zip archive of a directory.
3
3
  *
4
- * Uses node:child_process and node:fs directly because this operation
5
- * requires the system `zip` and `find` commands for deterministic archives.
6
- * This is an intentional escape hatch from @effect/platform.
4
+ * Uses fflate (pure JS) so publish works on platforms without a system
5
+ * `zip` binary (notably Windows). Entries are walked via the platform
6
+ * FileSystem service, sorted by relative path, and stamped with a fixed
7
+ * mtime so the byte output is reproducible.
7
8
  *
8
9
  * @experimental This API is unstable and may change without notice.
9
10
  */
10
11
  import * as Effect from "effect/Effect";
12
+ import * as FileSystem from "effect/FileSystem";
13
+ import * as Path from "effect/Path";
14
+ import { zipSync } from "fflate";
11
15
  import { makeAppError } from "../app-error/index.js";
12
- /**
13
- * Check that a required system binary exists on PATH.
14
- */
15
- const requireBinary = (name, _errorCode) => Effect.tryPromise({
16
- try: async () => {
17
- const { execFileSync } = await import("node:child_process");
18
- execFileSync("which", [name], { stdio: "pipe" });
19
- },
20
- catch: () => makeAppError({
21
- code: "internal",
22
- message: `Required system command "${name}" not found`,
23
- breadcrumbs: [
24
- {
25
- description: `Install "${name}" and ensure it is available on your PATH.`,
26
- },
27
- ],
28
- }),
29
- });
16
+ const DETERMINISTIC_MTIME = new Date("2020-01-01T00:00:00Z");
17
+ const READ_CONCURRENCY = 16;
30
18
  /**
31
19
  * Build a zip archive of a directory.
32
20
  * Files are stored at the root of the zip (no enclosing directory).
33
- *
34
- * Copies the source directory to a temporary location before normalizing
35
- * timestamps, so the original directory is never mutated.
21
+ * Directory entries are not emitted.
36
22
  */
37
- export const buildZipArchive = (dir, errorCode) => Effect.gen(function* () {
38
- yield* requireBinary("find", errorCode);
39
- yield* requireBinary("zip", errorCode);
40
- return yield* Effect.tryPromise({
41
- try: async () => {
42
- const { execFileSync } = await import("node:child_process");
43
- const { readFile, mkdtemp, rm, cp } = await import("node:fs/promises");
44
- const { tmpdir } = await import("node:os");
45
- const p = await import("node:path");
46
- const tmpDir = await mkdtemp(p.join(tmpdir(), "axm-publish-"));
47
- const copyDir = p.join(tmpDir, "content");
48
- const archivePath = p.join(tmpDir, "archive.zip");
49
- // Copy source to temp directory to avoid mutating original timestamps
50
- await cp(dir, copyDir, { recursive: true });
51
- // Create deterministic zip (strip extra attributes, normalize timestamps)
52
- // -X strips extra file attributes, -D disables directory entries
53
- // find + touch normalizes file timestamps for reproducible archives
54
- execFileSync("find", [copyDir, "-exec", "touch", "-t", "202001010000.00", "{}", "+"]);
55
- execFileSync("zip", ["-r", "-q", "-X", "-D", archivePath, "."], {
56
- cwd: copyDir,
57
- stdio: "pipe",
58
- });
59
- const bytes = await readFile(archivePath);
60
- await rm(tmpDir, { recursive: true, force: true });
61
- return new Uint8Array(bytes);
62
- },
63
- catch: (e) => makeAppError({
23
+ export const buildZipArchive = (dir) => Effect.gen(function* () {
24
+ const fs = yield* FileSystem.FileSystem;
25
+ const path = yield* Path.Path;
26
+ const files = yield* Effect.gen(function* () {
27
+ const rawEntries = yield* fs.readDirectory(dir, { recursive: true });
28
+ const toZipPath = path.sep === "/" ? (s) => s : (s) => s.split(path.sep).join("/");
29
+ const candidates = yield* Effect.forEach(rawEntries, (relRaw) => Effect.gen(function* () {
30
+ const abs = path.join(dir, relRaw);
31
+ const info = yield* fs.stat(abs);
32
+ return { rel: toZipPath(relRaw), abs, isFile: info.type === "File" };
33
+ }), { concurrency: READ_CONCURRENCY });
34
+ const onlyFiles = candidates.filter((c) => c.isFile);
35
+ onlyFiles.sort((a, b) => (a.rel < b.rel ? -1 : a.rel > b.rel ? 1 : 0));
36
+ return onlyFiles;
37
+ }).pipe(Effect.mapError((cause) => makeAppError({
38
+ code: "internal",
39
+ message: "Failed to read source directory for zip archive",
40
+ cause,
41
+ })));
42
+ const contents = yield* Effect.forEach(files, ({ rel, abs }) => fs.readFile(abs).pipe(Effect.map((bytes) => [rel, bytes])), { concurrency: READ_CONCURRENCY }).pipe(Effect.mapError((cause) => makeAppError({
43
+ code: "internal",
44
+ message: "Failed to read file for zip archive",
45
+ cause,
46
+ })));
47
+ const zippable = {};
48
+ for (const [rel, bytes] of contents) {
49
+ zippable[rel] = [bytes, { mtime: DETERMINISTIC_MTIME }];
50
+ }
51
+ return yield* Effect.try({
52
+ try: () => zipSync(zippable, { mtime: DETERMINISTIC_MTIME }),
53
+ catch: (cause) => makeAppError({
64
54
  code: "internal",
65
55
  message: "Failed to build zip archive",
66
- cause: e,
56
+ cause,
67
57
  }),
68
58
  });
69
59
  });
@@ -1 +1 @@
1
- {"version":3,"file":"build-zip-archive.js","sourceRoot":"","sources":["../../../../src/unstable/utils/build-zip-archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-zip-archive.js","sourceRoot":"","sources":["../../../../src/unstable/utils/build-zip-archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAiB,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC7D,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CAC7C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACtC,UAAU,EACV,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,EAAW,CAAC;QAChF,CAAC,CAAC,EACJ,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAClC,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,YAAY,CAAC;QACX,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,iDAAiD;QAC1D,KAAK;KACN,CAAC,CACH,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACpC,KAAK,EACL,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAU,CAAC,CAAC,EACrF,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAClC,CAAC,IAAI,CACJ,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,YAAY,CAAC;QACX,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,qCAAqC;QAC9C,KAAK;KACN,CAAC,CACH,CACF,CAAC;IAEF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACvB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QAC5D,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,YAAY,CAAC;YACX,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,6BAA6B;YACtC,KAAK;SACN,CAAC;KACL,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentxm/client-core",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
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": "MIT",
@@ -198,23 +198,26 @@
198
198
  },
199
199
  "dependencies": {
200
200
  "@effect/platform-node": "4.0.0-beta.64",
201
+ "@napi-rs/keyring": "^1.3.0",
201
202
  "effect": "4.0.0-beta.64",
202
203
  "fflate": "^0.8.2",
203
204
  "gray-matter": "^4.0.3",
204
205
  "jsonc-parser": "^3.3.1",
205
206
  "packageurl-js": "^2.0.1",
206
207
  "semver": "^7.8.0",
208
+ "proper-lockfile": "^4.1.2",
207
209
  "simple-git": "^3.36.0"
208
210
  },
209
211
  "devDependencies": {
210
212
  "@effect/openapi-generator": "4.0.0-beta.64",
211
213
  "@effect/vitest": "4.0.0-beta.64",
212
214
  "@types/bun": "^1.3.13",
215
+ "@types/proper-lockfile": "^4.1.4",
213
216
  "@types/semver": "^7.5.8",
214
217
  "swagger2openapi": "^7.0.8",
215
218
  "typescript": "^5.9.3",
216
219
  "vitest": "^4.1.5",
217
220
  "yaml": "^2.8.4",
218
- "@agentxm/client-utils": "^0.6.0"
221
+ "@agentxm/client-utils": "^0.6.2"
219
222
  }
220
223
  }
@@ -87,7 +87,7 @@
87
87
  "required": ["name", "type", "url"],
88
88
  "additionalProperties": false,
89
89
  "title": "GitHub Source Host",
90
- "description": "GitHub host available by its `name` alias in entry source strings."
90
+ "description": "A GitHub source host."
91
91
  },
92
92
  "GitLabSourceHostConfig": {
93
93
  "type": "object",
@@ -99,7 +99,7 @@
99
99
  "required": ["name", "type", "url"],
100
100
  "additionalProperties": false,
101
101
  "title": "GitLab Source Host",
102
- "description": "GitLab host available by its `name` alias in entry source strings."
102
+ "description": "A GitLab source host."
103
103
  },
104
104
  "BitbucketSourceHostConfig": {
105
105
  "type": "object",
@@ -111,7 +111,7 @@
111
111
  "required": ["name", "type", "url"],
112
112
  "additionalProperties": false,
113
113
  "title": "Bitbucket Source Host",
114
- "description": "Bitbucket host available by its `name` alias in entry source strings."
114
+ "description": "A Bitbucket source host."
115
115
  },
116
116
  "AzureReposSourceHostConfig": {
117
117
  "type": "object",
@@ -123,7 +123,7 @@
123
123
  "required": ["name", "type", "url"],
124
124
  "additionalProperties": false,
125
125
  "title": "Azure Repos Source Host",
126
- "description": "Azure Repos host available by its `name` alias in entry source strings."
126
+ "description": "An Azure Repos source host."
127
127
  },
128
128
  "RegistrySourceHostConfig": {
129
129
  "type": "object",
@@ -135,7 +135,7 @@
135
135
  "required": ["name", "type", "location"],
136
136
  "additionalProperties": false,
137
137
  "title": "Registry Source Host",
138
- "description": "Registry source available by its `name` alias in entry source strings."
138
+ "description": "A package registry source host."
139
139
  },
140
140
  "SourceHostConfig": {
141
141
  "anyOf": [
@@ -146,7 +146,7 @@
146
146
  { "$ref": "#/definitions/RegistrySourceHostConfig" }
147
147
  ],
148
148
  "title": "Source Host Config",
149
- "description": "Where extensions are fetched from — GitHub, GitLab, Bitbucket, Azure Repos, or a package registry."
149
+ "description": "A source host configuration: GitHub, GitLab, Bitbucket, Azure Repos, or a package registry."
150
150
  },
151
151
  "SkillEntry": {
152
152
  "anyOf": [
@@ -170,23 +170,23 @@
170
170
  },
171
171
  "enabled": {
172
172
  "type": "boolean",
173
- "description": "Whether this entry is enabled. Defaults to true when omitted.",
173
+ "description": "Set to false to disable this entry. Omit otherwise — true is the default and should not be written explicitly.",
174
174
  "default": true
175
175
  },
176
176
  "authored": {
177
177
  "type": "boolean",
178
- "description": "Whether this entry was authored locally. Defaults to false when omitted.",
178
+ "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.",
179
179
  "default": false
180
180
  }
181
181
  },
182
182
  "required": ["source"],
183
183
  "additionalProperties": false,
184
184
  "title": "Skill Entry Object",
185
- "description": "A skill with source, enabled, and authored settings."
185
+ "description": "A skill entry with source and optional enabled/authored flags."
186
186
  }
187
187
  ],
188
188
  "title": "Skill Entry",
189
- "description": "Skill source string or object. Source accepts FQN + optional version, source-scheme refs, and local paths.",
189
+ "description": "A skill entry: a source string, or an object with source plus optional flags.",
190
190
  "examples": [
191
191
  "@acme/skills/code-review@^1.0.0",
192
192
  { "source": "github:acme/agent-extensions", "enabled": false }
@@ -195,7 +195,7 @@
195
195
  "SkillsMap": {
196
196
  "type": "object",
197
197
  "title": "Skills Map",
198
- "description": "Your installed skills, keyed by name.",
198
+ "description": "A map of skill names to skill entries.",
199
199
  "propertyNames": { "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
200
200
  "additionalProperties": { "$ref": "#/definitions/SkillEntry" }
201
201
  },
@@ -235,23 +235,23 @@
235
235
  },
236
236
  "enabled": {
237
237
  "type": "boolean",
238
- "description": "Whether this entry is enabled. Defaults to true when omitted.",
238
+ "description": "Set to false to disable this entry. Omit otherwise — true is the default and should not be written explicitly.",
239
239
  "default": true
240
240
  },
241
241
  "authored": {
242
242
  "type": "boolean",
243
- "description": "Whether this entry was authored locally. Defaults to false when omitted.",
243
+ "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.",
244
244
  "default": false
245
245
  }
246
246
  },
247
247
  "required": ["source"],
248
248
  "additionalProperties": false,
249
249
  "title": "Command Entry Object",
250
- "description": "A command with source, enabled, and authored settings."
250
+ "description": "A command entry with source and optional enabled/authored flags."
251
251
  }
252
252
  ],
253
253
  "title": "Command Entry",
254
- "description": "Command source string or object. Source accepts FQN + optional version, source-scheme refs, and local paths.",
254
+ "description": "A command entry: a source string, or an object with source plus optional flags.",
255
255
  "examples": [
256
256
  "@acme/commands/code-review@^1.0.0",
257
257
  { "source": "github:acme/agent-extensions", "enabled": false }
@@ -260,7 +260,7 @@
260
260
  "CommandsMap": {
261
261
  "type": "object",
262
262
  "title": "Commands Map",
263
- "description": "Your installed commands, keyed by name.",
263
+ "description": "A map of command names to command entries.",
264
264
  "propertyNames": { "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
265
265
  "additionalProperties": { "$ref": "#/definitions/CommandEntry" }
266
266
  },
@@ -300,23 +300,23 @@
300
300
  },
301
301
  "enabled": {
302
302
  "type": "boolean",
303
- "description": "Whether this entry is enabled. Defaults to true when omitted.",
303
+ "description": "Set to false to disable this entry. Omit otherwise — true is the default and should not be written explicitly.",
304
304
  "default": true
305
305
  },
306
306
  "authored": {
307
307
  "type": "boolean",
308
- "description": "Whether this entry was authored locally. Defaults to false when omitted.",
308
+ "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.",
309
309
  "default": false
310
310
  }
311
311
  },
312
312
  "required": ["source"],
313
313
  "additionalProperties": false,
314
314
  "title": "Subagent Entry Object",
315
- "description": "A subagent with source, enabled, and authored settings."
315
+ "description": "A subagent entry with source and optional enabled/authored flags."
316
316
  }
317
317
  ],
318
318
  "title": "Subagent Entry",
319
- "description": "Subagent source string or object. Source accepts FQN + optional version, source-scheme refs, and local paths.",
319
+ "description": "A subagent entry: a source string, or an object with source plus optional flags.",
320
320
  "examples": [
321
321
  "@acme/subagents/reviewer@^1.0.0",
322
322
  { "source": "github:acme/agent-extensions", "enabled": false }
@@ -325,7 +325,7 @@
325
325
  "SubagentsMap": {
326
326
  "type": "object",
327
327
  "title": "Subagents Map",
328
- "description": "Your installed subagents, keyed by name.",
328
+ "description": "A map of subagent names to subagent entries.",
329
329
  "propertyNames": { "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
330
330
  "additionalProperties": { "$ref": "#/definitions/SubagentEntry" }
331
331
  },
@@ -365,18 +365,18 @@
365
365
  },
366
366
  "authored": {
367
367
  "type": "boolean",
368
- "description": "Whether this entry was authored locally. Defaults to false when omitted.",
368
+ "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.",
369
369
  "default": false
370
370
  }
371
371
  },
372
372
  "required": ["source"],
373
373
  "additionalProperties": false,
374
374
  "title": "Pack Entry Object",
375
- "description": "A pack with source and authored settings. Pack entries do not support `enabled` yet."
375
+ "description": "A pack entry with source and optional authored flag."
376
376
  }
377
377
  ],
378
378
  "title": "Pack Entry",
379
- "description": "Pack source string or object. Source accepts FQN + optional version, source-scheme refs, and local paths. Pack entries do not support `enabled` yet.",
379
+ "description": "A pack entry: a source string, or an object with source plus optional authored flag.",
380
380
  "examples": [
381
381
  "@acme/packs/typescript@^1.0.0",
382
382
  { "source": "github:acme/agent-extensions", "authored": true }
@@ -385,7 +385,7 @@
385
385
  "PacksMap": {
386
386
  "type": "object",
387
387
  "title": "Packs Map",
388
- "description": "Your installed packs, keyed by name.",
388
+ "description": "A map of pack names to pack entries.",
389
389
  "propertyNames": { "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
390
390
  "additionalProperties": { "$ref": "#/definitions/PackEntry" }
391
391
  },
@@ -425,18 +425,18 @@
425
425
  },
426
426
  "authored": {
427
427
  "type": "boolean",
428
- "description": "Whether this entry was authored locally. Defaults to false when omitted.",
428
+ "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.",
429
429
  "default": false
430
430
  }
431
431
  },
432
432
  "required": ["source"],
433
433
  "additionalProperties": false,
434
434
  "title": "MCP Server Entry Object",
435
- "description": "An MCP server with source and authored settings. MCP entries do not support `enabled` yet."
435
+ "description": "An MCP server entry with source and optional authored flag."
436
436
  }
437
437
  ],
438
438
  "title": "MCP Server Entry",
439
- "description": "MCP server source string or object. Source accepts FQN + optional version, source-scheme refs, and local paths. MCP entries do not support `enabled` yet.",
439
+ "description": "An MCP server entry: a source string, or an object with source plus optional authored flag.",
440
440
  "examples": [
441
441
  "@acme/mcp-servers/context@^1.0.0",
442
442
  { "source": "github:acme/agent-extensions", "authored": true }
@@ -445,7 +445,7 @@
445
445
  "McpServersMap": {
446
446
  "type": "object",
447
447
  "title": "MCP Servers Map",
448
- "description": "Your installed MCP servers, keyed by name.",
448
+ "description": "A map of MCP server names to MCP server entries.",
449
449
  "propertyNames": { "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
450
450
  "additionalProperties": { "$ref": "#/definitions/McpServerEntry" }
451
451
  },
@@ -508,7 +508,7 @@
508
508
  },
509
509
  "skills": {
510
510
  "anyOf": [{ "$ref": "#/definitions/SkillsMap" }],
511
- "description": "Desired skills keyed by workspace skill name."
511
+ "description": "Your installed skills, keyed by workspace skill name. Prefer plain source strings; use the object form only to set `enabled: false` or `authored: true`, and never write `enabled: true` or `authored: false` explicitly."
512
512
  },
513
513
  "skillsConfig": {
514
514
  "anyOf": [{ "$ref": "#/definitions/SkillsConfig" }],
@@ -516,7 +516,7 @@
516
516
  },
517
517
  "commands": {
518
518
  "anyOf": [{ "$ref": "#/definitions/CommandsMap" }],
519
- "description": "Desired commands keyed by workspace command name."
519
+ "description": "Your installed commands, keyed by workspace command name. Prefer plain source strings; use the object form only to set `enabled: false` or `authored: true`, and never write `enabled: true` or `authored: false` explicitly."
520
520
  },
521
521
  "commandsConfig": {
522
522
  "anyOf": [{ "$ref": "#/definitions/CommandsConfig" }],
@@ -524,7 +524,7 @@
524
524
  },
525
525
  "subagents": {
526
526
  "anyOf": [{ "$ref": "#/definitions/SubagentsMap" }],
527
- "description": "Desired subagents keyed by workspace subagent name."
527
+ "description": "Your installed subagents, keyed by workspace subagent name. Prefer plain source strings; use the object form only to set `enabled: false` or `authored: true`, and never write `enabled: true` or `authored: false` explicitly."
528
528
  },
529
529
  "subagentsConfig": {
530
530
  "anyOf": [{ "$ref": "#/definitions/SubagentsConfig" }],
@@ -532,7 +532,7 @@
532
532
  },
533
533
  "packs": {
534
534
  "anyOf": [{ "$ref": "#/definitions/PacksMap" }],
535
- "description": "Desired packs keyed by workspace pack name."
535
+ "description": "Your installed packs, keyed by workspace pack name. Prefer plain source strings; use the object form only to set `authored: true`, and never write `authored: false` explicitly. Pack entries do not support `enabled` yet."
536
536
  },
537
537
  "packsConfig": {
538
538
  "anyOf": [{ "$ref": "#/definitions/PacksConfig" }],
@@ -540,7 +540,7 @@
540
540
  },
541
541
  "mcpServers": {
542
542
  "anyOf": [{ "$ref": "#/definitions/McpServersMap" }],
543
- "description": "Desired MCP servers keyed by workspace MCP server name."
543
+ "description": "Your installed MCP servers, keyed by workspace MCP server name. Prefer plain source strings; use the object form only to set `authored: true`, and never write `authored: false` explicitly. MCP server entries do not support `enabled` yet."
544
544
  },
545
545
  "mcpServersConfig": {
546
546
  "anyOf": [{ "$ref": "#/definitions/McpServersConfig" }],
@@ -559,11 +559,8 @@
559
559
  "telemetry": "errors",
560
560
  "agents": ["claude-code", "codex"],
561
561
  "skills": {
562
- "code-review": {
563
- "source": "@acme/skills/code-review@^1.0.0",
564
- "enabled": true,
565
- "authored": false
566
- }
562
+ "code-review": "@acme/skills/code-review@^1.0.0",
563
+ "legacy-rules": { "source": "@acme/skills/legacy-rules@^1.0.0", "enabled": false }
567
564
  },
568
565
  "skillsConfig": { "ignore": ["local-*"] },
569
566
  "lint": { "rules": { "workspace/settings-schema-valid": "error" } }
@@ -138,7 +138,10 @@ After installing axm through any method, you need to authenticate.
138
138
  axm auth login
139
139
  ```
140
140
 
141
- Opens a browser for OAuth device code authorization. Grant access when prompted.
141
+ Opens a browser for AgentXM.ai authorization. Grant access when prompted.
142
+ On desktop systems this uses a local loopback callback with PKCE. In SSH, CI,
143
+ Codespaces, or `--device-code` mode, AXM displays a five-minute device code and
144
+ opens the static verification page.
142
145
 
143
146
  Verify authentication:
144
147
 
@@ -275,9 +275,10 @@ local token so subsequent `axm` commands can reach the registry.
275
275
  Offer both paths and let the user pick:
276
276
 
277
277
  - **Interactive (recommended):** ask the user to run `axm login` in their
278
- terminal. Tell them this opens a browser for a one-time OAuth device
279
- flow; AXM can't run it on their behalf because the browser step requires
280
- them to be present.
278
+ terminal. Tell them this opens a browser for a one-time AgentXM.ai
279
+ authorization flow; AXM can't run it on their behalf because the browser step
280
+ requires them to be present. In SSH, CI, Codespaces, or `--device-code` mode,
281
+ AXM falls back to a five-minute device-code flow.
281
282
  - **Non-interactive:** ask the user to export `AXM_TOKEN` in the
282
283
  environment where AXM will run. Explain that `AXM_TOKEN` is a
283
284
  pre-generated credential that skips the browser step; you must not