@detergent-software/atk 7.8.0 → 7.9.0-dev.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 (168) hide show
  1. package/README.md +13 -11
  2. package/build/commands/audit.d.ts.map +1 -1
  3. package/build/commands/audit.js +9 -0
  4. package/build/commands/audit.js.map +1 -1
  5. package/build/commands/browse.js +1 -1
  6. package/build/commands/browse.js.map +1 -1
  7. package/build/commands/cache.d.ts +1 -1
  8. package/build/commands/info.d.ts +2 -1
  9. package/build/commands/info.d.ts.map +1 -1
  10. package/build/commands/info.js +32 -6
  11. package/build/commands/info.js.map +1 -1
  12. package/build/commands/list.js +1 -1
  13. package/build/commands/list.js.map +1 -1
  14. package/build/commands/outdated.d.ts.map +1 -1
  15. package/build/commands/outdated.js +9 -0
  16. package/build/commands/outdated.js.map +1 -1
  17. package/build/commands/publish.d.ts +1 -1
  18. package/build/commands/publish.d.ts.map +1 -1
  19. package/build/commands/publish.js +2 -1
  20. package/build/commands/publish.js.map +1 -1
  21. package/build/commands/reviewer.js +1 -1
  22. package/build/commands/reviewer.js.map +1 -1
  23. package/build/commands/search.d.ts.map +1 -1
  24. package/build/commands/search.js +10 -1
  25. package/build/commands/search.js.map +1 -1
  26. package/build/components/AssetDetail.d.ts +5 -1
  27. package/build/components/AssetDetail.d.ts.map +1 -1
  28. package/build/components/AssetDetail.js +4 -3
  29. package/build/components/AssetDetail.js.map +1 -1
  30. package/build/components/BundleDetail.d.ts +5 -1
  31. package/build/components/BundleDetail.d.ts.map +1 -1
  32. package/build/components/BundleDetail.js +3 -2
  33. package/build/components/BundleDetail.js.map +1 -1
  34. package/build/components/ReadmeSection.d.ts +17 -0
  35. package/build/components/ReadmeSection.d.ts.map +1 -0
  36. package/build/components/ReadmeSection.js +17 -0
  37. package/build/components/ReadmeSection.js.map +1 -0
  38. package/build/components/index.d.ts +1 -0
  39. package/build/components/index.d.ts.map +1 -1
  40. package/build/components/index.js +1 -0
  41. package/build/components/index.js.map +1 -1
  42. package/build/hooks/usePublishState.d.ts.map +1 -1
  43. package/build/hooks/usePublishState.js +5 -7
  44. package/build/hooks/usePublishState.js.map +1 -1
  45. package/build/lib/api/client/client.gen.d.ts +3 -0
  46. package/build/lib/api/client/client.gen.d.ts.map +1 -0
  47. package/build/lib/api/client/client.gen.js +217 -0
  48. package/build/lib/api/client/client.gen.js.map +1 -0
  49. package/build/lib/api/client/index.d.ts +11 -0
  50. package/build/lib/api/client/index.d.ts.map +1 -0
  51. package/build/lib/api/client/index.js +7 -0
  52. package/build/lib/api/client/index.js.map +1 -0
  53. package/build/lib/api/client/types.gen.d.ts +121 -0
  54. package/build/lib/api/client/types.gen.d.ts.map +1 -0
  55. package/build/lib/api/client/types.gen.js +3 -0
  56. package/build/lib/api/client/types.gen.js.map +1 -0
  57. package/build/lib/api/client/utils.gen.d.ts +38 -0
  58. package/build/lib/api/client/utils.gen.d.ts.map +1 -0
  59. package/build/lib/api/client/utils.gen.js +229 -0
  60. package/build/lib/api/client/utils.gen.js.map +1 -0
  61. package/build/lib/api/client.gen.d.ts +13 -0
  62. package/build/lib/api/client.gen.d.ts.map +1 -0
  63. package/build/lib/api/client.gen.js +4 -0
  64. package/build/lib/api/client.gen.js.map +1 -0
  65. package/build/lib/api/core/auth.gen.d.ts +26 -0
  66. package/build/lib/api/core/auth.gen.d.ts.map +1 -0
  67. package/build/lib/api/core/auth.gen.js +15 -0
  68. package/build/lib/api/core/auth.gen.js.map +1 -0
  69. package/build/lib/api/core/bodySerializer.gen.d.ts +26 -0
  70. package/build/lib/api/core/bodySerializer.gen.d.ts.map +1 -0
  71. package/build/lib/api/core/bodySerializer.gen.js +58 -0
  72. package/build/lib/api/core/bodySerializer.gen.js.map +1 -0
  73. package/build/lib/api/core/params.gen.d.ts +44 -0
  74. package/build/lib/api/core/params.gen.d.ts.map +1 -0
  75. package/build/lib/api/core/params.gen.js +110 -0
  76. package/build/lib/api/core/params.gen.js.map +1 -0
  77. package/build/lib/api/core/pathSerializer.gen.d.ts +34 -0
  78. package/build/lib/api/core/pathSerializer.gen.d.ts.map +1 -0
  79. package/build/lib/api/core/pathSerializer.gen.js +107 -0
  80. package/build/lib/api/core/pathSerializer.gen.js.map +1 -0
  81. package/build/lib/api/core/queryKeySerializer.gen.d.ts +19 -0
  82. package/build/lib/api/core/queryKeySerializer.gen.d.ts.map +1 -0
  83. package/build/lib/api/core/queryKeySerializer.gen.js +93 -0
  84. package/build/lib/api/core/queryKeySerializer.gen.js.map +1 -0
  85. package/build/lib/api/core/serverSentEvents.gen.d.ts +72 -0
  86. package/build/lib/api/core/serverSentEvents.gen.d.ts.map +1 -0
  87. package/build/lib/api/core/serverSentEvents.gen.js +133 -0
  88. package/build/lib/api/core/serverSentEvents.gen.js.map +1 -0
  89. package/build/lib/api/core/types.gen.d.ts +84 -0
  90. package/build/lib/api/core/types.gen.d.ts.map +1 -0
  91. package/build/lib/api/core/types.gen.js +3 -0
  92. package/build/lib/api/core/types.gen.js.map +1 -0
  93. package/build/lib/api/core/utils.gen.d.ts +20 -0
  94. package/build/lib/api/core/utils.gen.d.ts.map +1 -0
  95. package/build/lib/api/core/utils.gen.js +88 -0
  96. package/build/lib/api/core/utils.gen.js.map +1 -0
  97. package/build/lib/api/index.d.ts +3 -0
  98. package/build/lib/api/index.d.ts.map +1 -0
  99. package/build/lib/api/index.js +3 -0
  100. package/build/lib/api/index.js.map +1 -0
  101. package/build/lib/api/sdk.gen.d.ts +80 -0
  102. package/build/lib/api/sdk.gen.d.ts.map +1 -0
  103. package/build/lib/api/sdk.gen.js +134 -0
  104. package/build/lib/api/sdk.gen.js.map +1 -0
  105. package/build/lib/api/types.gen.d.ts +924 -0
  106. package/build/lib/api/types.gen.d.ts.map +1 -0
  107. package/build/lib/api/types.gen.js +3 -0
  108. package/build/lib/api/types.gen.js.map +1 -0
  109. package/build/lib/api-client.d.ts +91 -0
  110. package/build/lib/api-client.d.ts.map +1 -0
  111. package/build/lib/api-client.js +210 -0
  112. package/build/lib/api-client.js.map +1 -0
  113. package/build/lib/auth.d.ts +6 -2
  114. package/build/lib/auth.d.ts.map +1 -1
  115. package/build/lib/auth.js +18 -10
  116. package/build/lib/auth.js.map +1 -1
  117. package/build/lib/diagnostics.d.ts.map +1 -1
  118. package/build/lib/diagnostics.js +33 -22
  119. package/build/lib/diagnostics.js.map +1 -1
  120. package/build/lib/diff-command.d.ts.map +1 -1
  121. package/build/lib/diff-command.js +14 -12
  122. package/build/lib/diff-command.js.map +1 -1
  123. package/build/lib/fetch-retry.d.ts +7 -3
  124. package/build/lib/fetch-retry.d.ts.map +1 -1
  125. package/build/lib/fetch-retry.js +9 -5
  126. package/build/lib/fetch-retry.js.map +1 -1
  127. package/build/lib/installer.d.ts +0 -2
  128. package/build/lib/installer.d.ts.map +1 -1
  129. package/build/lib/installer.js +30 -29
  130. package/build/lib/installer.js.map +1 -1
  131. package/build/lib/manifest-diff.d.ts +1 -1
  132. package/build/lib/manifest-diff.d.ts.map +1 -1
  133. package/build/lib/manifest-diff.js +3 -3
  134. package/build/lib/manifest-diff.js.map +1 -1
  135. package/build/lib/publisher.d.ts +38 -1
  136. package/build/lib/publisher.d.ts.map +1 -1
  137. package/build/lib/publisher.js +133 -145
  138. package/build/lib/publisher.js.map +1 -1
  139. package/build/lib/registry-mutate.js +1 -1
  140. package/build/lib/registry-mutate.js.map +1 -1
  141. package/build/lib/registry-repo.d.ts +34 -0
  142. package/build/lib/registry-repo.d.ts.map +1 -0
  143. package/build/lib/registry-repo.js +35 -0
  144. package/build/lib/registry-repo.js.map +1 -0
  145. package/build/lib/registry.d.ts +50 -0
  146. package/build/lib/registry.d.ts.map +1 -1
  147. package/build/lib/registry.js +241 -51
  148. package/build/lib/registry.js.map +1 -1
  149. package/build/lib/release-notes.d.ts.map +1 -1
  150. package/build/lib/release-notes.js +27 -1
  151. package/build/lib/release-notes.js.map +1 -1
  152. package/build/lib/reviewers.d.ts +19 -0
  153. package/build/lib/reviewers.d.ts.map +1 -0
  154. package/build/lib/reviewers.js +46 -0
  155. package/build/lib/reviewers.js.map +1 -0
  156. package/build/lib/schemas/config.d.ts +1 -1
  157. package/build/lib/schemas/config.d.ts.map +1 -1
  158. package/build/lib/schemas/config.js +4 -1
  159. package/build/lib/schemas/config.js.map +1 -1
  160. package/build/lib/schemas/lockfile.d.ts +0 -1
  161. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  162. package/build/lib/schemas/lockfile.js +0 -1
  163. package/build/lib/schemas/lockfile.js.map +1 -1
  164. package/package.json +4 -1
  165. package/build/lib/github.d.ts +0 -140
  166. package/build/lib/github.d.ts.map +0 -1
  167. package/build/lib/github.js +0 -230
  168. package/build/lib/github.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Facts about the registry GitHub repository that the CLI still needs after
3
+ * the data layer moved to the ATK API: its coordinates (for browsable links
4
+ * and the git-based `unpublish`/`promote` commands) and the directory layout
5
+ * of an asset version inside it.
6
+ */
7
+ export const DEFAULT_REGISTRY_REPO = 'EmergentSoftware/agentic-toolkit-registry';
8
+ export const DEFAULT_REGISTRY_BRANCH = 'main';
9
+ /**
10
+ * Build the repository-relative directory path for an asset's versioned contents
11
+ * (e.g. "assets/skills/@my-org/my-skill/1.0.0").
12
+ */
13
+ export function buildAssetVersionDir(asset, version) {
14
+ return asset.org
15
+ ? `assets/${asset.type}s/@${asset.org}/${asset.name}/${version}`
16
+ : `assets/${asset.type}s/${asset.name}/${version}`;
17
+ }
18
+ /**
19
+ * Build a browsable GitHub URL pointing to a bundle's README.md in the registry repo.
20
+ *
21
+ * Org bundles live under `bundles/@{org}/{name}/{version}`; global bundles under
22
+ * `bundles/{name}/{version}`. The stored org is bare — the `@` is display/path
23
+ * syntax only.
24
+ */
25
+ export function buildBundleReadmeUrl(name, version, org) {
26
+ const bundleDir = org ? `bundles/@${org}/${name}` : `bundles/${name}`;
27
+ return `https://github.com/${DEFAULT_REGISTRY_REPO}/blob/${DEFAULT_REGISTRY_BRANCH}/${bundleDir}/${version}/README.md`;
28
+ }
29
+ /**
30
+ * Build a browsable GitHub URL pointing to an asset's README.md in the registry repo.
31
+ */
32
+ export function buildReadmeUrl(asset, version) {
33
+ return `https://github.com/${DEFAULT_REGISTRY_REPO}/blob/${DEFAULT_REGISTRY_BRANCH}/${buildAssetVersionDir(asset, version)}/README.md`;
34
+ }
35
+ //# sourceMappingURL=registry-repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-repo.js","sourceRoot":"","sources":["../../src/lib/registry-repo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAmD,EAAE,OAAe;IACvG,OAAO,KAAK,CAAC,GAAG;QACd,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE;QAChE,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAAe,EAAE,GAAY;IAC9E,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;IACtE,OAAO,sBAAsB,qBAAqB,SAAS,uBAAuB,IAAI,SAAS,IAAI,OAAO,YAAY,CAAC;AACzH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAmD,EAAE,OAAe;IACjG,OAAO,sBAAsB,qBAAqB,SAAS,uBAAuB,IAAI,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC;AACzI,CAAC"}
@@ -13,6 +13,12 @@ export interface ResolvedAsset {
13
13
  /** The version-specific metadata (author, checksum, dependencies, etc.). */
14
14
  versionData: RegistryAssetVersion;
15
15
  }
16
+ /** Identifies an asset (or bundle) in the registry. `org` is bare (no `@`). */
17
+ export interface AssetRef {
18
+ name: string;
19
+ org?: string;
20
+ type: string;
21
+ }
16
22
  /**
17
23
  * A writable working copy of a registry asset at a specific version.
18
24
  * Includes the parsed manifest plus a map of every file at the asset's version directory.
@@ -47,6 +53,22 @@ export interface CacheStatus {
47
53
  /** Configured TTL in minutes. */
48
54
  ttlMinutes: number;
49
55
  }
56
+ /** Manifest (or bundle.json) and optional README for one asset version. */
57
+ export interface FetchedAssetManifest {
58
+ /** The manifest re-serialised as pretty JSON with a trailing newline. */
59
+ manifestContent: string;
60
+ /** Which manifest file this is. */
61
+ manifestFileName: 'bundle.json' | 'manifest.json';
62
+ /** README.md content if it exists; undefined if the asset has no README. */
63
+ readmeContent: string | undefined;
64
+ }
65
+ /** One installable file in an asset version directory (manifest and README excluded). */
66
+ export interface RemoteFileEntry {
67
+ /** Path relative to the asset version root (e.g. "references/guide.md"). */
68
+ relativePath: string;
69
+ /** Size in bytes. */
70
+ size: number;
71
+ }
50
72
  export declare class RegistryError extends Error {
51
73
  command?: string;
52
74
  hint?: string;
@@ -57,6 +79,28 @@ export declare class RegistryError extends Error {
57
79
  * @returns `true` if a cache file was deleted, `false` if none existed.
58
80
  */
59
81
  export declare function clearCache(): Promise<boolean>;
82
+ /**
83
+ * Fetch raw bytes of one file in an asset version directory.
84
+ *
85
+ * Always reads the body as bytes: asset files may be binary, and the API's
86
+ * Content-Type varies per file.
87
+ */
88
+ export declare function fetchAssetFileBytes(ref: AssetRef, version: string, relativePath: string): Promise<Buffer>;
89
+ /**
90
+ * Fetch the manifest (or bundle.json) and optional README.md for an asset
91
+ * or bundle at a specific version.
92
+ *
93
+ * The API returns the parsed manifest object; it is re-serialised here as
94
+ * pretty JSON so callers that compare or stage file contents get stable text.
95
+ * A missing README (404) yields `readmeContent: undefined`.
96
+ */
97
+ export declare function fetchAssetManifest(ref: AssetRef, version: string): Promise<FetchedAssetManifest>;
98
+ /**
99
+ * Fetch the README.md text for an asset or bundle at a specific version.
100
+ * Resolves to `undefined` when there is no README (404); any other failure
101
+ * propagates.
102
+ */
103
+ export declare function fetchAssetReadme(ref: AssetRef, version: string): Promise<string | undefined>;
60
104
  /**
61
105
  * Fetch a writable working copy of a registry asset for the purpose of
62
106
  * updating it locally. Preserves the asset's original name (this is the
@@ -189,6 +233,12 @@ export declare function isDeprecated(registry: Registry, name: string, type?: st
189
233
  reason?: string;
190
234
  replacement?: string;
191
235
  };
236
+ /**
237
+ * List installable files in an asset version directory.
238
+ * `manifest.json` and `README.md` are excluded; everything else (including
239
+ * nested paths) is returned with its path relative to the version root.
240
+ */
241
+ export declare function listAssetFiles(ref: AssetRef, version: string): Promise<RemoteFileEntry[]>;
192
242
  /**
193
243
  * Resolve a version against an asset's versions map.
194
244
  *
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,21 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { mkdir, readFile, stat, unlink, writeFile } from 'node:fs/promises';
2
+ import { mkdir, readFile, stat, unlink, utimes, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { maxSatisfying, compare as semverCompare, valid as semverValid, validRange } from 'semver';
5
- import { getGitHubToken } from './auth.js';
5
+ import { ApiRequestError, getApiClient, unwrap } from './api-client.js';
6
+ import { listAssetFiles as apiListAssetFiles, checkout, getAssetFile, getAssetManifest, getAssetReadme, getBundleManifest, getBundleReadme, getRegistry, } from './api/sdk.gen.js';
6
7
  import { getCacheDir, loadConfig } from './config.js';
7
8
  import {} from './errors.js';
8
9
  import { fetchWithRetry } from './fetch-retry.js';
9
- import { buildGitHubContentsUrl, buildGitHubHeaders, fetchAssetFiles, fetchBinaryFileContent, getEffectiveBranch, GITHUB_ACCEPT_RAW, listAssetDirectoryFiles, } from './github.js';
10
10
  import { parseAndValidate, safeParseJson } from './parse-json.js';
11
11
  import { sanitizeRegistryData } from './sanitize.js';
12
12
  import { ManifestSchema } from './schemas/manifest.js';
13
13
  import { RegistrySchema, } from './schemas/registry.js';
14
14
  const REGISTRY_CACHE_FILE = 'registry.json';
15
- const DEFAULT_REGISTRY_PATH = 'registry.json';
15
+ /** Sidecar next to the cached registry holding the ETag the API returned for it. */
16
+ const REGISTRY_ETAG_FILE = 'registry.etag';
17
+ /** Files the API lists for every asset version that are never installed. */
18
+ const EXCLUDED_FILES = new Set(['manifest.json', 'README.md']);
16
19
  export class RegistryError extends Error {
17
20
  command;
18
21
  hint;
@@ -37,12 +40,70 @@ export async function clearCache() {
37
40
  }
38
41
  const cacheDir = getCacheDir(config);
39
42
  const cachePath = join(cacheDir, REGISTRY_CACHE_FILE);
43
+ const etagPath = join(cacheDir, REGISTRY_ETAG_FILE);
44
+ if (existsSync(etagPath)) {
45
+ await unlink(etagPath);
46
+ }
40
47
  if (existsSync(cachePath)) {
41
48
  await unlink(cachePath);
42
49
  return true;
43
50
  }
44
51
  return false;
45
52
  }
53
+ /**
54
+ * Fetch raw bytes of one file in an asset version directory.
55
+ *
56
+ * Always reads the body as bytes: asset files may be binary, and the API's
57
+ * Content-Type varies per file.
58
+ */
59
+ export async function fetchAssetFileBytes(ref, version, relativePath) {
60
+ const client = await getApiClient();
61
+ const result = await getAssetFile({
62
+ client,
63
+ parseAs: 'arrayBuffer',
64
+ path: { name: ref.name, path: relativePath, type: toApiAssetType(ref), version },
65
+ ...orgQuery(ref),
66
+ });
67
+ const data = unwrap(result, `file ${relativePath} of ${describeRef(ref)}@${version}`);
68
+ return Buffer.from(data);
69
+ }
70
+ /**
71
+ * Fetch the manifest (or bundle.json) and optional README.md for an asset
72
+ * or bundle at a specific version.
73
+ *
74
+ * The API returns the parsed manifest object; it is re-serialised here as
75
+ * pretty JSON so callers that compare or stage file contents get stable text.
76
+ * A missing README (404) yields `readmeContent: undefined`.
77
+ */
78
+ export async function fetchAssetManifest(ref, version) {
79
+ const client = await getApiClient();
80
+ const label = `${describeRef(ref)}@${version}`;
81
+ if (ref.type === 'bundle') {
82
+ const path = { name: ref.name, version };
83
+ const manifest = unwrap(await getBundleManifest({ client, path, ...orgQuery(ref) }), `Bundle ${label} manifest`);
84
+ const readmeContent = await fetchAssetReadme(ref, version);
85
+ return { manifestContent: serializeManifest(manifest), manifestFileName: 'bundle.json', readmeContent };
86
+ }
87
+ const path = { name: ref.name, type: toApiAssetType(ref), version };
88
+ const manifest = unwrap(await getAssetManifest({ client, path, ...orgQuery(ref) }), `Asset ${label} manifest`);
89
+ const readmeContent = await fetchAssetReadme(ref, version);
90
+ return { manifestContent: serializeManifest(manifest), manifestFileName: 'manifest.json', readmeContent };
91
+ }
92
+ /**
93
+ * Fetch the README.md text for an asset or bundle at a specific version.
94
+ * Resolves to `undefined` when there is no README (404); any other failure
95
+ * propagates.
96
+ */
97
+ export async function fetchAssetReadme(ref, version) {
98
+ const client = await getApiClient();
99
+ const label = `${describeRef(ref)}@${version}`;
100
+ if (ref.type === 'bundle') {
101
+ const path = { name: ref.name, version };
102
+ return fetchOptionalReadme(() => getBundleReadme({ client, parseAs: 'text', path, ...orgQuery(ref) }), `Bundle ${label} README`);
103
+ }
104
+ const path = { name: ref.name, type: toApiAssetType(ref), version };
105
+ return fetchOptionalReadme(() => getAssetReadme({ client, parseAs: 'text', path, ...orgQuery(ref) }), `Asset ${label} README`);
106
+ }
46
107
  /**
47
108
  * Fetch a writable working copy of a registry asset for the purpose of
48
109
  * updating it locally. Preserves the asset's original name (this is the
@@ -77,23 +138,36 @@ export async function fetchAssetWorkingCopy(name, options) {
77
138
  hint: 'Check the asset name and try searching the registry.',
78
139
  });
79
140
  }
80
- const token = await getGitHubToken();
81
- const assetRef = { name: resolved.asset.name, org: resolved.asset.org, type: resolved.asset.type };
82
- const { manifestContent, manifestFileName, readmeContent } = await fetchAssetFiles(token, assetRef, resolved.version);
83
- if (manifestFileName !== 'manifest.json') {
84
- throw new RegistryError(`Expected manifest.json for asset '${name}', got '${manifestFileName}'.`);
141
+ const client = await getApiClient();
142
+ const baseQuery = {
143
+ ...(resolved.asset.org ? { org: resolved.asset.org } : {}),
144
+ version: resolved.version,
145
+ };
146
+ let result = await checkout({ client, path: { name: resolved.asset.name }, query: baseQuery });
147
+ if (result.response?.status === 400 && isAmbiguousName(result.error)) {
148
+ // The bare name exists as more than one type; retry with the one the registry resolved.
149
+ result = await checkout({
150
+ client,
151
+ path: { name: resolved.asset.name },
152
+ query: { ...baseQuery, type: toApiAssetType(resolved.asset) },
153
+ });
154
+ }
155
+ let data;
156
+ try {
157
+ data = unwrap(result, `Asset ${name}@${resolved.version}`);
158
+ }
159
+ catch (err) {
160
+ throw toRegistryError(err);
85
161
  }
86
- const manifest = parseAndValidate(manifestContent, ManifestSchema, `Invalid manifest for ${name}`);
87
162
  const files = new Map();
88
- files.set('manifest.json', Buffer.from(manifestContent, 'utf-8'));
89
- if (readmeContent !== undefined) {
90
- files.set('README.md', Buffer.from(readmeContent, 'utf-8'));
163
+ for (const file of data.files) {
164
+ files.set(file.path, Buffer.from(file.content, 'base64'));
91
165
  }
92
- const entries = await listAssetDirectoryFiles(token, assetRef, resolved.version);
93
- for (const entry of entries) {
94
- const content = await fetchBinaryFileContent(token, entry.path);
95
- files.set(entry.relativePath, content);
166
+ const manifestBytes = files.get('manifest.json');
167
+ if (!manifestBytes) {
168
+ throw new RegistryError(`The API returned no manifest.json for asset '${name}'.`);
96
169
  }
170
+ const manifest = parseAndValidate(manifestBytes.toString('utf-8'), ManifestSchema, `Invalid manifest for ${name}`);
97
171
  return {
98
172
  files,
99
173
  manifest,
@@ -115,11 +189,14 @@ export async function fetchRegistry(options) {
115
189
  return cached;
116
190
  }
117
191
  }
118
- // Fetch fresh from GitHub
119
- const registry = await fetchRegistryFromGitHub(config.registryUrl, config.registryBranch);
120
- // Write to cache
121
- await writeCacheFile(cachePath, cacheDir, registry);
122
- return registry;
192
+ // Custom registry URL: plain unauthenticated GET, no ETag handling
193
+ if (config.registryUrl) {
194
+ const registry = await fetchRegistryFromUrl(config.registryUrl);
195
+ await writeCacheFile(cachePath, cacheDir, registry);
196
+ return registry;
197
+ }
198
+ // Fetch fresh from the ATK API (conditional on the cached ETag, even when forced)
199
+ return fetchRegistryFromApi(cachePath, cacheDir);
123
200
  }
124
201
  /**
125
202
  * Return the merged/shadowed asset list for a given org context.
@@ -317,6 +394,23 @@ export function isDeprecated(registry, name, type, org) {
317
394
  replacement: entry.replacement,
318
395
  };
319
396
  }
397
+ /**
398
+ * List installable files in an asset version directory.
399
+ * `manifest.json` and `README.md` are excluded; everything else (including
400
+ * nested paths) is returned with its path relative to the version root.
401
+ */
402
+ export async function listAssetFiles(ref, version) {
403
+ const client = await getApiClient();
404
+ const result = await apiListAssetFiles({
405
+ client,
406
+ path: { name: ref.name, type: toApiAssetType(ref), version },
407
+ ...orgQuery(ref),
408
+ });
409
+ const data = unwrap(result, `Asset ${describeRef(ref)}@${version} file list`);
410
+ return data.files
411
+ .filter((file) => !EXCLUDED_FILES.has(file.path))
412
+ .map((file) => ({ relativePath: file.path, size: file.size }));
413
+ }
320
414
  /**
321
415
  * Resolve a version against an asset's versions map.
322
416
  *
@@ -356,44 +450,75 @@ export function resolveAssetVersion(asset, version) {
356
450
  }
357
451
  return { asset, version: resolvedVersion, versionData };
358
452
  }
453
+ function describeRef(ref) {
454
+ return ref.org ? `@${ref.org}/${ref.name}` : ref.name;
455
+ }
359
456
  /**
360
- * Fetch registry.json from the GitHub repo via the Contents API.
457
+ * Run a README request and return its text, or `undefined` when the asset
458
+ * has no README (404). Any other failure propagates.
361
459
  */
362
- async function fetchRegistryFromGitHub(registryUrl, registryBranch) {
363
- if (registryUrl) {
364
- return fetchRegistryFromUrl(registryUrl);
365
- }
366
- const token = await getGitHubToken();
367
- const effectiveBranch = getEffectiveBranch(registryBranch);
368
- const url = buildGitHubContentsUrl(DEFAULT_REGISTRY_PATH, effectiveBranch);
369
- const response = await fetchWithRetry(url, {
370
- headers: buildGitHubHeaders(token, GITHUB_ACCEPT_RAW),
371
- });
372
- if (!response.ok) {
373
- if (response.status === 404) {
374
- throw new RegistryError('Registry not found. The registry.json file may not exist yet in the repo.', {
375
- command: 'atk cache clear',
376
- hint: 'The registry may be stale or unreachable. Clear the cache and retry.',
377
- });
378
- }
379
- if (response.status === 401 || response.status === 403) {
380
- throw new RegistryError('Authentication failed. Check your GitHub token or run `gh auth login`.', {
381
- command: 'gh auth login',
382
- hint: 'Run `gh auth login`, or set the GITHUB_TOKEN environment variable.',
383
- });
460
+ async function fetchOptionalReadme(request, resource) {
461
+ const result = await request();
462
+ if (result.response?.status === 404) {
463
+ return undefined;
464
+ }
465
+ const data = unwrap(result, resource);
466
+ return typeof data === 'string' ? data : String(data);
467
+ }
468
+ /**
469
+ * Fetch registry.json from the ATK API, using the cached ETag for a
470
+ * conditional request.
471
+ *
472
+ * - `304` the cached file is current: refresh its mtime (restarting the TTL)
473
+ * and return it. If the cached file is missing or invalid despite the 304,
474
+ * retry once unconditionally.
475
+ * - `200` → validate, write `registry.json` and the `registry.etag` sidecar.
476
+ */
477
+ async function fetchRegistryFromApi(cachePath, cacheDir) {
478
+ const etagPath = join(cacheDir, REGISTRY_ETAG_FILE);
479
+ const etag = await readEtag(etagPath);
480
+ let client;
481
+ let result;
482
+ try {
483
+ client = await getApiClient();
484
+ result = await getRegistry({ client, ...(etag ? { headers: { 'If-None-Match': etag } } : {}) });
485
+ }
486
+ catch (err) {
487
+ throw toRegistryError(err);
488
+ }
489
+ if (result.response?.status === 304) {
490
+ const cached = await readCachedRegistryFile(cachePath);
491
+ if (cached) {
492
+ const now = new Date();
493
+ await utimes(cachePath, now, now).catch(() => undefined);
494
+ return cached;
384
495
  }
385
- throw new RegistryError(`Failed to fetch registry: HTTP ${response.status}`, {
386
- command: 'atk cache clear',
387
- hint: 'The registry may be stale or unreachable. Clear the cache and retry.',
388
- });
496
+ // The cache the ETag describes is gone or unreadable — fetch unconditionally.
497
+ result = await getRegistry({ client });
389
498
  }
390
- const raw = await response.text();
499
+ let data;
391
500
  try {
392
- return sanitizeRegistryData(parseAndValidate(raw, RegistrySchema, 'Invalid registry data'));
501
+ data = unwrap(result, 'the registry');
502
+ }
503
+ catch (err) {
504
+ throw toRegistryError(err);
505
+ }
506
+ let registry;
507
+ try {
508
+ registry = sanitizeRegistryData(parseAndValidate(JSON.stringify(data), RegistrySchema, 'Invalid registry data'));
393
509
  }
394
510
  catch (err) {
395
511
  throw new RegistryError(err.message);
396
512
  }
513
+ await writeCacheFile(cachePath, cacheDir, registry);
514
+ const newEtag = result.response?.headers.get('etag');
515
+ if (newEtag) {
516
+ await writeFile(etagPath, newEtag, 'utf-8');
517
+ }
518
+ else if (existsSync(etagPath)) {
519
+ await unlink(etagPath);
520
+ }
521
+ return registry;
397
522
  }
398
523
  /**
399
524
  * Fetch registry from a custom URL (for custom registryUrl in config).
@@ -411,6 +536,15 @@ async function fetchRegistryFromUrl(url) {
411
536
  throw new RegistryError(err.message);
412
537
  }
413
538
  }
539
+ /**
540
+ * Read the cached registry file if it exists and is not expired.
541
+ */
542
+ function isAmbiguousName(error) {
543
+ return typeof error === 'object' && error !== null && error.error === 'ambiguous_name';
544
+ }
545
+ function orgQuery(ref) {
546
+ return ref.org ? { query: { org: ref.org } } : {};
547
+ }
414
548
  /**
415
549
  * Read the cached registry file if it exists and is not expired.
416
550
  */
@@ -422,6 +556,18 @@ async function readCachedRegistry(cachePath, ttlMinutes) {
422
556
  if (ageMs > ttlMs) {
423
557
  return null; // Cache expired
424
558
  }
559
+ }
560
+ catch {
561
+ return null;
562
+ }
563
+ return readCachedRegistryFile(cachePath);
564
+ }
565
+ /**
566
+ * Read and validate the cached registry file regardless of its age.
567
+ * Returns null when the file is missing, unreadable, or invalid.
568
+ */
569
+ async function readCachedRegistryFile(cachePath) {
570
+ try {
425
571
  const raw = await readFile(cachePath, 'utf-8');
426
572
  const result = safeParseJson(raw, RegistrySchema, 'Invalid cached registry');
427
573
  if (!result.success) {
@@ -433,6 +579,50 @@ async function readCachedRegistry(cachePath, ttlMinutes) {
433
579
  return null;
434
580
  }
435
581
  }
582
+ /** Read the ETag sidecar; missing or unreadable → undefined. */
583
+ async function readEtag(etagPath) {
584
+ try {
585
+ const raw = (await readFile(etagPath, 'utf-8')).trim();
586
+ return raw || undefined;
587
+ }
588
+ catch {
589
+ return undefined;
590
+ }
591
+ }
592
+ function serializeManifest(manifest) {
593
+ return JSON.stringify(manifest, null, 2) + '\n';
594
+ }
595
+ function toApiAssetType(ref) {
596
+ return ref.type;
597
+ }
598
+ /**
599
+ * Convert an API failure into a RegistryError, keeping the hint and command
600
+ * so commands can show the same recovery guidance as before.
601
+ */
602
+ function toRegistryError(err) {
603
+ if (err instanceof RegistryError) {
604
+ return err;
605
+ }
606
+ if (err instanceof ApiRequestError) {
607
+ if (err.status === 404) {
608
+ return new RegistryError(err.message, {
609
+ command: 'atk cache clear',
610
+ hint: 'The registry may be stale or unreachable. Clear the cache and retry.',
611
+ });
612
+ }
613
+ return new RegistryError(err.message, {
614
+ command: err.command ?? (err.status >= 500 || err.status === 0 ? 'atk cache clear' : undefined),
615
+ hint: err.hint,
616
+ });
617
+ }
618
+ // Anything else (e.g. an AuthError from the token resolver): keep whatever
619
+ // recovery guidance it carries.
620
+ const carried = err;
621
+ return new RegistryError(err instanceof Error ? err.message : String(err), {
622
+ command: typeof carried?.command === 'string' ? carried.command : undefined,
623
+ hint: typeof carried?.hint === 'string' ? carried.hint : undefined,
624
+ });
625
+ }
436
626
  /**
437
627
  * Write registry data to the cache file.
438
628
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAyB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAiB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAKL,cAAc,GACf,MAAM,uBAAuB,CAAC;AAe/B,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAC5C,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAsC9C,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,OAAO,CAAU;IACjB,IAAI,CAAU;IAEd,YAAY,OAAe,EAAE,UAA4B,EAAE;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAEtD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY,EACZ,OAAiD;IAEjD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAClD,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,aAAa,CAAC,oBAAoB,IAAI,+BAA+B,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9E,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAA+B,EAAE,CAAC;IAEnD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,aAAa,CAAC,UAAU,IAAI,cAAc,OAAO,CAAC,OAAO,8BAA8B,EAAE;gBACjG,OAAO,EAAE,cAAc,IAAI,EAAE;gBAC7B,IAAI,EAAE,sDAAsD;aAC7D,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,UAAU,IAAI,8BAA8B,EAAE;YACpE,OAAO,EAAE,cAAc,IAAI,EAAE;YAC7B,IAAI,EAAE,sDAAsD;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEnG,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtH,IAAI,gBAAgB,KAAK,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,aAAa,CAAC,qCAAqC,IAAI,WAAW,gBAAgB,IAAI,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,EAAE,cAAc,EAAE,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAEnG,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,KAAK;QACL,QAAQ;QACR,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG;QACvB,eAAe,EAAE,QAAQ,CAAC,OAAO;KAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAEtD,mCAAmC;IACnC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACjF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAE1F,iBAAiB;IACjB,MAAM,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAkB,EAAE,GAAY;IAClE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,6DAA6D;QAC7D,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,qEAAqE;QACrE,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,+EAA+E;IAC/E,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,GAAY;IACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAEvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,8DAA8D;QAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,oDAAoD;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kFAAkF;IAClF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CACvB,QAAkB,EAClB,IAAY,EACZ,IAAa,EACb,OAAgB,EAChB,GAAY;IAEZ,IAAI,KAAgC,CAAC;IAErC,IAAI,GAAG,EAAE,CAAC;QACR,6BAA6B;QAC7B,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;QACpG,uCAAuC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;SAAM,CAAC;QACN,qEAAqE;QACrE,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAkB,EAClB,IAAY,EACZ,IAAa;IAEb,OAAO,QAAQ,CAAC,MAAM;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;SACnF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,IAAY,EAAE,GAAY;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,OAAe;IAChE,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB,EAAE,IAAY,EAAE,GAAY;IAC5E,OAAO,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;IAEhD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;IAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;AACjG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzD,2CAA2C;QAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrB,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,IAAY,EACZ,IAAa,EACb,GAAY;IAEZ,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,aAAa,GAAG,GAAG,IAAI,SAAS,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,aAAa,CAC1G,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAoB,EAAE,OAAgB;IACxE,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtD,+BAA+B;IAC/B,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,eAAmC,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,iDAAiD;QACjD,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,CAAC;SAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,gDAAgD;QAChD,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;SAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,gDAAgD;QAChD,eAAe,GAAG,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,WAAoB,EAAE,cAAuB;IAClF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,sBAAsB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACzC,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,CAAC;KACtD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CAAC,2EAA2E,EAAE;gBACnG,OAAO,EAAE,iBAAiB;gBAC1B,IAAI,EAAE,sEAAsE;aAC7E,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,MAAM,IAAI,aAAa,CAAC,wEAAwE,EAAE;gBAChG,OAAO,EAAE,eAAe;gBACxB,IAAI,EAAE,oEAAoE;aAC3E,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,EAAE;YAC3E,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,sEAAsE;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,aAAa,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,aAAa,CAAC,iCAAiC,GAAG,UAAU,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,aAAa,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,UAAkB;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5C,MAAM,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;QAErC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAC/B,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,yBAAyB,CAAC,CAAC;QAE7E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,CAAC,2BAA2B;QAC1C,CAAC;QAED,OAAO,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,QAAkB;IACnF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"release-notes.d.ts","sourceRoot":"","sources":["../../src/lib/release-notes.ts"],"names":[],"mappings":"AAaA,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE9C,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,EAAE,cAAc,CAAC;IACxB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,KAAK,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3B,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yCAAyC;AACzC,MAAM,MAAM,mBAAmB,GAC3B;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1G;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC5C;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAExE,0EAA0E;AAC1E,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE,mBAAwB,EACjC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAqC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,OAAO,GACzB,WAAW,EAAE,CA6Bf"}
1
+ {"version":3,"file":"release-notes.d.ts","sourceRoot":"","sources":["../../src/lib/release-notes.ts"],"names":[],"mappings":"AAYA,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE9C,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,EAAE,cAAc,CAAC;IACxB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,KAAK,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3B,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yCAAyC;AACzC,MAAM,MAAM,mBAAmB,GAC3B;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1G;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC5C;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAExE,0EAA0E;AAC1E,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAUD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE,mBAAwB,EACjC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAqC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,OAAO,GACzB,WAAW,EAAE,CA6Bf"}
@@ -1,10 +1,14 @@
1
1
  import { eq as semverEq, gt as semverGt, prerelease as semverPrerelease, rcompare as semverRcompare, valid as semverValid, } from 'semver';
2
2
  import { getGitHubToken } from './auth.js';
3
3
  import { fetchWithRetry } from './fetch-retry.js';
4
- import { buildGitHubHeaders, DEFAULT_CLI_REPO, httpErrorMessage } from './github.js';
5
4
  import { CLI_VERSION, isPreRelease } from './version.js';
6
5
  /** Default number of releases shown in list mode before `--all` is needed. */
7
6
  export const DEFAULT_RELEASE_LIMIT = 15;
7
+ /**
8
+ * The CLI's own source repository (distinct from the registry repo).
9
+ * GitHub Releases for this repo are the source of the `release-notes` command.
10
+ */
11
+ const DEFAULT_CLI_REPO = 'EmergentSoftware/agentic-toolkit-cli';
8
12
  const RELEASES_URL = `https://api.github.com/repos/${DEFAULT_CLI_REPO}/releases?per_page=100`;
9
13
  /**
10
14
  * Fetch GitHub Releases for the CLI repo and return release notes for browsing.
@@ -91,6 +95,28 @@ export function selectReleaseNotes(raw, currentVersion, includePrerelease) {
91
95
  notes.sort((a, b) => semverRcompare(a.version, b.version));
92
96
  return notes;
93
97
  }
98
+ /** Standard GitHub REST API headers for the releases request. */
99
+ function buildGitHubHeaders(token) {
100
+ return {
101
+ Accept: 'application/vnd.github+json',
102
+ Authorization: `Bearer ${token}`,
103
+ 'X-GitHub-Api-Version': '2022-11-28',
104
+ };
105
+ }
106
+ /** User-friendly message for a failed GitHub API response. */
107
+ function httpErrorMessage(status, resource) {
108
+ switch (status) {
109
+ case 401:
110
+ case 403:
111
+ return 'Authentication failed. Check your GitHub token or run `gh auth login`.';
112
+ case 404:
113
+ return `File not found at ${resource}.`;
114
+ case 429:
115
+ return 'GitHub API rate limit exceeded. Try again later.';
116
+ default:
117
+ return `Failed to fetch ${resource}: HTTP ${status}`;
118
+ }
119
+ }
94
120
  /** Strip a single leading `v` from a release tag, returning undefined when empty. */
95
121
  function normalizeTag(tagName) {
96
122
  if (!tagName)