@detergent-software/atk 8.0.4-dev.2 → 8.1.0-dev.1

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 (170) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -1
  3. package/build/cli.js +7 -0
  4. package/build/cli.js.map +1 -1
  5. package/build/commands/_app.js +3 -3
  6. package/build/commands/_app.js.map +1 -1
  7. package/build/commands/audit.d.ts.map +1 -1
  8. package/build/commands/audit.js +1 -0
  9. package/build/commands/audit.js.map +1 -1
  10. package/build/commands/browse.d.ts.map +1 -1
  11. package/build/commands/browse.js +3 -3
  12. package/build/commands/browse.js.map +1 -1
  13. package/build/commands/cache.d.ts.map +1 -1
  14. package/build/commands/cache.js +1 -0
  15. package/build/commands/cache.js.map +1 -1
  16. package/build/commands/checkout.d.ts.map +1 -1
  17. package/build/commands/checkout.js +1 -0
  18. package/build/commands/checkout.js.map +1 -1
  19. package/build/commands/config.d.ts.map +1 -1
  20. package/build/commands/config.js +1 -0
  21. package/build/commands/config.js.map +1 -1
  22. package/build/commands/diff.d.ts.map +1 -1
  23. package/build/commands/diff.js +1 -0
  24. package/build/commands/diff.js.map +1 -1
  25. package/build/commands/drift.d.ts.map +1 -1
  26. package/build/commands/drift.js +1 -0
  27. package/build/commands/drift.js.map +1 -1
  28. package/build/commands/freeze.d.ts.map +1 -1
  29. package/build/commands/freeze.js +1 -0
  30. package/build/commands/freeze.js.map +1 -1
  31. package/build/commands/info.d.ts.map +1 -1
  32. package/build/commands/info.js +1 -0
  33. package/build/commands/info.js.map +1 -1
  34. package/build/commands/install.d.ts.map +1 -1
  35. package/build/commands/install.js +4 -4
  36. package/build/commands/install.js.map +1 -1
  37. package/build/commands/list.d.ts.map +1 -1
  38. package/build/commands/list.js +3 -3
  39. package/build/commands/list.js.map +1 -1
  40. package/build/commands/login.d.ts.map +1 -1
  41. package/build/commands/login.js +3 -3
  42. package/build/commands/login.js.map +1 -1
  43. package/build/commands/logout.d.ts.map +1 -1
  44. package/build/commands/logout.js +1 -0
  45. package/build/commands/logout.js.map +1 -1
  46. package/build/commands/outdated.d.ts.map +1 -1
  47. package/build/commands/outdated.js +1 -0
  48. package/build/commands/outdated.js.map +1 -1
  49. package/build/commands/pin.d.ts.map +1 -1
  50. package/build/commands/pin.js +1 -0
  51. package/build/commands/pin.js.map +1 -1
  52. package/build/commands/prune.d.ts.map +1 -1
  53. package/build/commands/prune.js +1 -0
  54. package/build/commands/prune.js.map +1 -1
  55. package/build/commands/publish.js +1 -0
  56. package/build/commands/publish.js.map +1 -1
  57. package/build/commands/register.d.ts.map +1 -1
  58. package/build/commands/register.js +3 -3
  59. package/build/commands/register.js.map +1 -1
  60. package/build/commands/release-notes.d.ts.map +1 -1
  61. package/build/commands/release-notes.js +1 -0
  62. package/build/commands/release-notes.js.map +1 -1
  63. package/build/commands/reviewer.d.ts.map +1 -1
  64. package/build/commands/reviewer.js +1 -0
  65. package/build/commands/reviewer.js.map +1 -1
  66. package/build/commands/search.d.ts.map +1 -1
  67. package/build/commands/search.js +1 -0
  68. package/build/commands/search.js.map +1 -1
  69. package/build/commands/sync.d.ts.map +1 -1
  70. package/build/commands/sync.js +1 -0
  71. package/build/commands/sync.js.map +1 -1
  72. package/build/commands/thaw.d.ts.map +1 -1
  73. package/build/commands/thaw.js +1 -0
  74. package/build/commands/thaw.js.map +1 -1
  75. package/build/commands/uninstall.d.ts.map +1 -1
  76. package/build/commands/uninstall.js +1 -0
  77. package/build/commands/uninstall.js.map +1 -1
  78. package/build/commands/unpin.d.ts.map +1 -1
  79. package/build/commands/unpin.js +1 -0
  80. package/build/commands/unpin.js.map +1 -1
  81. package/build/commands/update.d.ts.map +1 -1
  82. package/build/commands/update.js +1 -0
  83. package/build/commands/update.js.map +1 -1
  84. package/build/commands/whoami.d.ts.map +1 -1
  85. package/build/commands/whoami.js +1 -0
  86. package/build/commands/whoami.js.map +1 -1
  87. package/build/commands/why.d.ts.map +1 -1
  88. package/build/commands/why.js +1 -0
  89. package/build/commands/why.js.map +1 -1
  90. package/build/components/NoticeBanner.d.ts +1 -2
  91. package/build/components/NoticeBanner.d.ts.map +1 -1
  92. package/build/components/NoticeBanner.js +1 -8
  93. package/build/components/NoticeBanner.js.map +1 -1
  94. package/build/components/index.d.ts +1 -1
  95. package/build/components/index.d.ts.map +1 -1
  96. package/build/components/index.js +1 -1
  97. package/build/components/index.js.map +1 -1
  98. package/build/hooks/useBrowseState.d.ts +2 -0
  99. package/build/hooks/useBrowseState.d.ts.map +1 -1
  100. package/build/hooks/useBrowseState.js +7 -1
  101. package/build/hooks/useBrowseState.js.map +1 -1
  102. package/build/hooks/useCommand.d.ts +1 -0
  103. package/build/hooks/useCommand.d.ts.map +1 -1
  104. package/build/hooks/useCommand.js +2 -4
  105. package/build/hooks/useCommand.js.map +1 -1
  106. package/build/hooks/useInitState.d.ts +2 -0
  107. package/build/hooks/useInitState.d.ts.map +1 -1
  108. package/build/hooks/useInitState.js +4 -6
  109. package/build/hooks/useInitState.js.map +1 -1
  110. package/build/hooks/useListState.d.ts +2 -0
  111. package/build/hooks/useListState.d.ts.map +1 -1
  112. package/build/hooks/useListState.js +7 -1
  113. package/build/hooks/useListState.js.map +1 -1
  114. package/build/hooks/usePruneState.d.ts +3 -0
  115. package/build/hooks/usePruneState.d.ts.map +1 -1
  116. package/build/hooks/usePruneState.js +5 -6
  117. package/build/hooks/usePruneState.js.map +1 -1
  118. package/build/hooks/usePublishState.d.ts +2 -0
  119. package/build/hooks/usePublishState.d.ts.map +1 -1
  120. package/build/hooks/usePublishState.js +6 -6
  121. package/build/hooks/usePublishState.js.map +1 -1
  122. package/build/hooks/useRegistryChangeState.d.ts +2 -0
  123. package/build/hooks/useRegistryChangeState.d.ts.map +1 -1
  124. package/build/hooks/useRegistryChangeState.js +4 -4
  125. package/build/hooks/useRegistryChangeState.js.map +1 -1
  126. package/build/hooks/useSetupState.d.ts +2 -0
  127. package/build/hooks/useSetupState.d.ts.map +1 -1
  128. package/build/hooks/useSetupState.js +4 -6
  129. package/build/hooks/useSetupState.js.map +1 -1
  130. package/build/hooks/useUninstallState.d.ts +3 -0
  131. package/build/hooks/useUninstallState.d.ts.map +1 -1
  132. package/build/hooks/useUninstallState.js +5 -6
  133. package/build/hooks/useUninstallState.js.map +1 -1
  134. package/build/lib/api-client.d.ts +2 -0
  135. package/build/lib/api-client.d.ts.map +1 -1
  136. package/build/lib/api-client.js +15 -1
  137. package/build/lib/api-client.js.map +1 -1
  138. package/build/lib/atk-api/client.d.ts +6 -0
  139. package/build/lib/atk-api/client.d.ts.map +1 -1
  140. package/build/lib/atk-api/client.js +1 -0
  141. package/build/lib/atk-api/client.js.map +1 -1
  142. package/build/lib/atk-api/errors.d.ts +9 -0
  143. package/build/lib/atk-api/errors.d.ts.map +1 -1
  144. package/build/lib/atk-api/errors.js +5 -0
  145. package/build/lib/atk-api/errors.js.map +1 -1
  146. package/build/lib/atk-api/generated/types.gen.d.ts +68 -0
  147. package/build/lib/atk-api/generated/types.gen.d.ts.map +1 -1
  148. package/build/lib/atk-api/testing.js +2 -0
  149. package/build/lib/atk-api/testing.js.map +1 -1
  150. package/build/lib/errors.d.ts +11 -0
  151. package/build/lib/errors.d.ts.map +1 -1
  152. package/build/lib/errors.js +13 -0
  153. package/build/lib/errors.js.map +1 -1
  154. package/build/lib/notices.d.ts +28 -8
  155. package/build/lib/notices.d.ts.map +1 -1
  156. package/build/lib/notices.js +32 -6
  157. package/build/lib/notices.js.map +1 -1
  158. package/build/lib/output.d.ts +3 -0
  159. package/build/lib/output.d.ts.map +1 -1
  160. package/build/lib/output.js +13 -4
  161. package/build/lib/output.js.map +1 -1
  162. package/build/lib/update-check.d.ts +12 -0
  163. package/build/lib/update-check.d.ts.map +1 -1
  164. package/build/lib/update-check.js +58 -12
  165. package/build/lib/update-check.js.map +1 -1
  166. package/build/lib/version.d.ts +2 -0
  167. package/build/lib/version.d.ts.map +1 -1
  168. package/build/lib/version.js +2 -0
  169. package/build/lib/version.js.map +1 -1
  170. package/package.json +1 -1
@@ -4,11 +4,13 @@ import { join } from 'node:path';
4
4
  import { gt as semverGt, valid as semverValid } from 'semver';
5
5
  import { getCacheDir, loadConfig } from './config.js';
6
6
  import { fetchWithRetry } from './fetch-retry.js';
7
- import { CLI_VERSION, isPreRelease } from './version.js';
7
+ import { addNotice } from './notices.js';
8
+ import { CLI_VERSION, isPreRelease, UPGRADE_COMMAND } from './version.js';
8
9
  const NPM_REGISTRY_URL = 'https://registry.npmjs.org/@detergent-software/atk';
9
10
  const NPM_CACHE_FILE = 'npm-version.json';
10
- const UPGRADE_COMMAND = 'npm i -g @detergent-software/atk';
11
11
  const DEFAULT_TTL_MINUTES = 60;
12
+ /** The JSON-mode refresh makes one attempt and gives up after this long, so it barely delays exit. */
13
+ export const BACKGROUND_REFRESH_TIMEOUT_MS = 1_500;
12
14
  /**
13
15
  * Check whether a newer version of @detergent-software/atk is available on npm.
14
16
  *
@@ -53,11 +55,55 @@ export async function getUpdateInfo() {
53
55
  return null;
54
56
  }
55
57
  }
56
- async function fetchLatestFromNpm(channel) {
58
+ /**
59
+ * The update check for JSON mode, which shows no banner. `cli.tsx` runs it
60
+ * before the command so the payload can carry the result: when the cached npm
61
+ * version (of any age) is newer than this CLI it records an `update-available`
62
+ * notice, with no network call on the way. A missing or stale cache starts one
63
+ * background fetch (no retries, {@link BACKGROUND_REFRESH_TIMEOUT_MS}) that
64
+ * only rewrites the cache, for the next run. Does nothing when
65
+ * `checkUpdates: false` is set. Never throws.
66
+ */
67
+ export async function noteCachedUpdate() {
57
68
  try {
58
- const response = await fetchWithRetry(NPM_REGISTRY_URL, {
59
- headers: { accept: 'application/json' },
60
- });
69
+ const config = await loadConfig();
70
+ if (config.checkUpdates === false) {
71
+ return;
72
+ }
73
+ const channel = isPreRelease() ? 'dev' : 'latest';
74
+ const cacheDir = getCacheDir(config);
75
+ const cachePath = join(cacheDir, NPM_CACHE_FILE);
76
+ const ttlMs = (config.cacheTtlMinutes ?? DEFAULT_TTL_MINUTES) * 60 * 1000;
77
+ const cached = await readNpmCache(cachePath, channel);
78
+ if (cached && semverValid(CLI_VERSION) && semverValid(cached.version) && semverGt(cached.version, CLI_VERSION)) {
79
+ addNotice({ current: CLI_VERSION, kind: 'update-available', latest: cached.version });
80
+ }
81
+ if (!cached || cached.ageMs > ttlMs) {
82
+ void fetchLatestFromNpm(channel, 'once').then(async (fetched) => {
83
+ if (fetched) {
84
+ await writeNpmCache(cachePath, cacheDir, channel, fetched);
85
+ }
86
+ });
87
+ }
88
+ }
89
+ catch {
90
+ // Non-fatal: the payload simply carries no update notice.
91
+ }
92
+ }
93
+ /**
94
+ * The channel's dist-tag from npm, or null on any failure. `'retry'` uses the
95
+ * shared retry policy; `'once'` makes a single attempt that is aborted after
96
+ * {@link BACKGROUND_REFRESH_TIMEOUT_MS}.
97
+ */
98
+ async function fetchLatestFromNpm(channel, attempts = 'retry') {
99
+ try {
100
+ const init = { headers: { accept: 'application/json' } };
101
+ const response = attempts === 'retry'
102
+ ? await fetchWithRetry(NPM_REGISTRY_URL, init)
103
+ : await globalThis.fetch(NPM_REGISTRY_URL, {
104
+ ...init,
105
+ signal: AbortSignal.timeout(BACKGROUND_REFRESH_TIMEOUT_MS),
106
+ });
61
107
  if (!response.ok) {
62
108
  return null;
63
109
  }
@@ -75,17 +121,17 @@ async function fetchLatestFromNpm(channel) {
75
121
  }
76
122
  }
77
123
  async function readCachedNpmVersion(cachePath, ttlMinutes, channel) {
124
+ const cached = await readNpmCache(cachePath, channel);
125
+ return cached && cached.ageMs <= ttlMinutes * 60 * 1000 ? cached.version : null;
126
+ }
127
+ /** The channel's cached version and the cache file's age, or null when there is none. */
128
+ async function readNpmCache(cachePath, channel) {
78
129
  try {
79
130
  const fileStat = await stat(cachePath);
80
- const ageMs = Date.now() - fileStat.mtimeMs;
81
- const ttlMs = ttlMinutes * 60 * 1000;
82
- if (ageMs > ttlMs) {
83
- return null;
84
- }
85
131
  const raw = await readFile(cachePath, 'utf-8');
86
132
  const parsed = JSON.parse(raw);
87
133
  const value = parsed[channel];
88
- return typeof value === 'string' ? value : null;
134
+ return typeof value === 'string' ? { ageMs: Date.now() - fileStat.mtimeMs, version: value } : null;
89
135
  }
90
136
  catch {
91
137
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/lib/update-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/lib/update-check.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export declare const CLI_VERSION: string;
2
+ /** How to update the CLI; the API's `426 cli_outdated` message names the same command. */
3
+ export declare const UPGRADE_COMMAND = "npm i -g @detergent-software/atk";
2
4
  export declare function isPreRelease(): boolean;
3
5
  /**
4
6
  * Parse a `name@version` specifier into its name and optional version parts.
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,QAAc,CAAC;AAEvC,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBlF"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,QAAc,CAAC;AAEvC,0FAA0F;AAC1F,eAAO,MAAM,eAAe,qCAAqC,CAAC;AAElE,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBlF"}
@@ -4,6 +4,8 @@ import { fileURLToPath } from 'node:url';
4
4
  const __dirname = dirname(fileURLToPath(import.meta.url));
5
5
  const pkg = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));
6
6
  export const CLI_VERSION = pkg.version;
7
+ /** How to update the CLI; the API's `426 cli_outdated` message names the same command. */
8
+ export const UPGRADE_COMMAND = 'npm i -g @detergent-software/atk';
7
9
  export function isPreRelease() {
8
10
  return CLI_VERSION.includes('-');
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;AAEjH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;AAEvC,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEtC,iFAAiF;IACjF,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAExC,mEAAmE;IACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;AAEjH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;AAEvC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAElE,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEtC,iFAAiF;IACjF,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAExC,mEAAmE;IACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@detergent-software/atk",
3
- "version": "8.0.4-dev.2",
3
+ "version": "8.1.0-dev.1",
4
4
  "description": "Agentic Tool Kit — CLI for managing AI coding tool assets.",
5
5
  "type": "module",
6
6
  "bin": {